2009-02-23 Jb Evain <jbevain@novell.com>
[mono.git] / mcs / class / System.Core / System.Linq.Expressions / ChangeLog
1 2009-02-23  Jb Evain  <jbevain@novell.com>
2
3         * Expression.cs (IsNumber): actually decimal is rather a special
4         case, and not a primitive number.
5
6 2009-02-23  Jb Evain  <jbevain@novell.com>
7
8         * Expression.cs (BinaryCoreCheck): add decimal operations
9         are provided by custom operators.
10
11 2008-12-17  Jb Evain  <jbevain@novell.com>
12
13         * ExpressionTransformer.cs: fix VisitList.
14
15 2008-11-19  Jb Evain  <jbevain@novell.com>
16
17         * Expression.cs: protect against open generic methods.
18
19 2008-10-08  Atsushi Enomoto  <atsushi@ximian.com>
20
21         * Expression.cs : give us information about which type does not
22           implement Emit().
23
24 2008-10-03  Jb Evain  <jbevain@novell.com>
25
26         * Expression.cs: make sure we properly test complex generic methods
27         as a Call candidate.
28
29 2008-09-22  Jb Evain  <jbevain@novell.com>
30
31         * TypeBinaryExpression.cs: protect against testing void expressions.
32         Fixes bug #428309.
33
34 2008-09-01  Jb Evain  <jbevain@novell.com>
35
36         * MemberBinding.cs: make .ctor protected instead of public.
37
38 2008-09-01  Jb Evain  <jbevain@novell.com>
39
40         * Expression.cs: guard against null parameters passed to Lambda.
41
42 2008-08-30  Marek Safar  <marek.safar@gmail.com>
43
44         * MemberBinding.cs: Made MemberBinding ctor public
45
46 2008-08-07  Jb Evain  <jbevain@novell.com>
47
48         * Expression.cs (GetAssociatedProperty): strengthen accessors
49         comparisons.
50
51 2008-08-02  Zoltan Varga  <vargaz@gmail.com>
52
53         * BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
54         shift amount like mcs compiled code does.
55
56 2008-07-19  Jb Evain  <jbevain@novell.com>
57
58         * Expression.cs (Call, Field, Property): disallow instance arguments
59         on static members. See ms connect #339351.
60
61 2008-07-18  Jb Evain  <jbevain@novell.com>
62
63         * Expression.cs, BinaryExpression.cs: fix retrieval of true and false
64         operators.
65
66 2008-06-20  Jb Evain  <jbevain@novell.com>
67
68         * LambdaExpression.cs, EmitContext.cs: refactor the emit context to
69         handle the fact that lambdas are compiled in a general context where
70         they share globals but are also able to use parameters from parent lambdas.
71         (Although parameter sharing is not implemented yet).
72
73         * BinaryExpression.cs (fix converted coalesce case to use the lambda
74         compilation code).
75
76 2008-06-09  Jb Evain  <jbevain@novell.com>
77
78         * Extensions.cs (Type.IsExpression): add
79         * Expression.cs (CheckMethodArguments): modify the argument list
80         to quote arguments when if necessary.
81
82
83 2008-06-09  Jb Evain  <jbevain@novell.com>
84
85         * Expression.cs (CheckLambda): quote body if required.
86
87 2008-06-07  Jb Evain  <jbevain@novell.com>
88
89         * BinaryExpression.cs (EmitConvertedCoalesce): implement.
90
91 2008-06-05  Jb Evain  <jbevain@novell.com>
92
93         * Expression.cs (GetUserConversionMethod): check for convertion
94         operators on both types.
95
96 2008-06-05  Jb Evain  <jbevain@novell.com>
97
98         * Expression.cs (ConditionalBinaryCheck): if a method is passed,
99         checked that the operators true and false are also defined.
100
101 2008-06-05  Jb Evain  <jbevain@novell.com>
102
103         * BinaryExpression.cs (Emit): deal with binary expressions
104         where only the left is lifted.
105
106 2008-06-05  Jb Evain  <jbevain@novell.com>
107
108         * Extensions.cs: Add Type.MakeNullableType helper.
109         * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
110         creat lifted/lifted to null/not lifted
111         user defined binary expressions.
112         * BinaryExpression.cs (Emit): implement compilation of
113         lifted and lifted to null user defined binary operators.
114
115 2008-06-05  Jb Evain  <jbevain@novell.com>
116
117         * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
118         unary expressions with user defined operators.
119         * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
120
121 2008-05-30  Jb Evain  <jbevain@novell.com>
122
123         * UnaryExpression.cs (Emit): fix convertion from nullable
124         to nullable types.
125
126 2008-05-29  Jb Evain  <jbevain@novell.com>
127
128         * Expression.cs (Power): allow bool?.
129         * BinaryExpression.cs: properly deal with lifted power expression.
130
131 2008-05-29  Jb Evain  <jbevain@novell.com>
132
133         * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
134
135 2008-05-29  Jb Evain  <jbevain@novell.com>
136
137         * BinaryExpression.cs (Emit): properly emit lifted to null
138         relational binary expressions.
139
140 2008-05-28  Jb Evain  <jbevain@novell.com>
141
142         * BinaryExpression.cs (Emit): rework compilation of
143         arithmetic and relational lifted binary expressions.
144
145 2008-05-28  Jb Evain  <jbevain@novell.com>
146
147         * UnaryExpression.cs (Emit): implement support for compiling
148         lifted unary expressions.
149
150 2008-05-27  Jb Evain  <jbevain@novell.com>
151
152         * UnaryExpression.cs (EmitConvert): implement nullable to nullable
153         convert.
154
155 2008-05-20  Roei Erez  <roeie@mainsoft.com>
156
157         * Extensions.cs: Add 'IsGenericImplementationOf' extension method
158
159 2008-05-15  Jb Evain  <jbevain@novell.com>
160
161         * UnaryExpression.cs, EmitContext.cs: emit convert from and
162         to nullable types.
163
164 2008-05-15  Jb Evain  <jbevain@novell.com>
165
166         * Extensions.cs: add a few useful extensions such as
167         IsGenericInstanceOf and MakeGenericFrom.
168
169 2008-05-15  Roei Erez  <roeie@mainsoft.com>
170
171         * ExpressionTransformer.cs: Add a base class for transforming Expressions.
172         In use at AsQueryable() implementation.
173
174 2008-05-14  Jb Evain  <jbevain@novell.com>
175
176         * EmitContext.cs: only generate a new lambda name if we're in
177         a debug context.
178
179 2008-05-14  Jb Evain  <jbevain@novell.com>
180
181         * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
182         inside an ET, compile it as a read of a global. Based on a patch
183         by Roei Erez <roeie@mainsoft.com>
184
185 2008-05-08  Jb Evain  <jbevain@novell.com>
186
187         * Expression.cs, EmitContext.cs: deal with call to methods
188         with byref parameters.
189
190 2008-05-07  Roei Erez  <roeie@mainsoft.com>
191
192         * Add ifdef TARGET_JVM
193
194 2008-05-03  Jb Evain  <jbevain@novell.com>
195
196         * LambdaExpression.cs: move checks to Expression
197         * Expression.cs: apply check for both typed and untyped lambda
198         creation, so that the constructor does not throws exception.
199         Needed to create instances of Expression<> for untyped lambda
200         factory method. Fixes #386322.
201
202 2008-05-02  Jb Evain  <jbevain@novell.com>
203
204         * Expression.cs: make Emit virtual instead of abstract,
205         to allow externals libraries to extend Expression.
206         Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
207
208 2008-04-29  Jb Evain  <jbevain@novell.com>
209
210         * UnaryExpression.cs (EmitPrimitiveConversion): implement.
211
212 2008-04-28  Jb Evain  <jbevain@novell.com>
213
214         * EmitContext.cs: deal with globals when encountering them while
215         compiling, and not ahead of time with a dedicated visitor.
216
217 2008-04-27  Jb Evain  <jbevain@novell.com>
218
219         * ConstantExpression.cs (Emit): emit properly null nullable types.
220
221 2008-04-27  Jb Evain  <jbevain@novell.com>
222
223         * Expression.cs: improve method finder.
224
225 2008-04-24  Jb Evain  <jbevain@novell.com>
226
227         * UnaryExpression.cs, EmitContext.cs: implement compilation
228         of Quote as a global load.
229
230 2008-04-23  Jb Evain  <jbevain@novell.com>
231
232         * UnaryExpression.cs: start implementing EmitConvert.
233
234 2008-04-23  Jb Evain  <jbevain@novell.com>
235
236         * ConstantExpression.cs (Emit): properly Emit null constants.
237
238 2008-04-23  Jb Evain  <jbevain@novell.com>
239
240         * Expression.cs (Constant): check for assignability, not for type
241         equality, when a type is passed.
242
243 2008-04-23  Jb Evain  <jbevain@novell.com>
244
245         * ExpressionPrinter.cs: ToString convert properly.
246
247 2008-04-22  Jb Evain  <jbevain@novell.com>
248
249         * UnaryExpression.cs: implement IsLiftedToNull properly.
250         * Expression.cs (Convert, ConvertChecked): implemented computing
251         of IsLifted and IsLiftedToNull for conversions.
252
253 2008-04-22  Jb Evain  <jbevain@novell.com>
254
255         * Expression.cs (Convert, ConvertChecked): implement.
256
257 2008-04-21  Jb Evain  <jbevain@novell.com>
258
259         * Expression.cs (Call): don't rely on the fact that if the
260         instance expression is null, then it's a static call. Explicitely
261         check on the MethodInfo for that.
262         * EmitContext.cs (EmitCall): same pattern.
263
264 2008-04-20  Jb Evain  <jbevain@novell.com>
265
266         * MemberMemberBinding.cs (Emit): implement.
267
268 2008-04-19  Jb Evain  <jbevain@novell.com>
269
270         * EmitContext.cs: infrastructure work to attach a compiled
271         lambda expression to an execution scope, and to detect and store
272         external globals in the scope.
273         * ConstantExpression.cs: load globals from the scope.
274
275 2008-04-19  Jb Evain  <jbevain@novell.com>
276
277         * ExpressionVisitor.cs (Visit): don't die because of Power.
278
279 2008-04-09  Jb Evain  <jbevain@novell.com>
280
281         * Expression.cs: check for illegal booleab unary expressions.
282
283 2008-04-09  Jb Evain  <jbevain@novell.com>
284
285         * UnaryExpression.cs: implement compilation of negate.
286
287 2008-04-09  Jb Evain  <jbevain@novell.com>
288
289         * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
290         to null for simple unary operators. Implement Not compilation.
291
292 2008-04-08  Jb Evain  <jbevain@novell.com>
293
294         * ElementInit.cs: emit pop if the add method doesn't return void.
295
296 2008-03-20  Jb Evain  <jbevain@novell.com>
297
298         * Expression.cs: use the new and more complete IsAssignableTo
299         instead of IsAssignableFrom.
300
301 2008-03-19  Jb Evain  <jbevain@novell.com>
302
303         * LambdaExpression.cs: use the new standardified IsAssignableTo,
304         fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
305
306 2008-03-19  Jb Evain  <jbevain@novell.com>
307
308         * Extensions.cs (Type.IsAssignableTo): deal with arrays.
309
310 2008-03-13  Jb Evain  <jbevain@novell.com>
311
312         * NewArrayExpression.cs (EmitNewArrayBounds): implement.
313
314 2008-03-12  Jb Evain  <jbevain@novell.com>
315
316         * NewArrayExpression.cs (Emit): naive implementation of emit support
317         for array initialization.
318
319 2008-03-11  Jb Evain  <jbevain@novell.com>
320
321         * BinaryExpression.cs: very naive implementation of emitting
322         array accesses.
323
324 2008-03-11  Jb Evain  <jbevain@novell.com>
325
326         * *.cs: Move the different Emit* helpers to EmitContext,
327         so that they get used more naturally by the non Expression
328         types.
329
330 2008-03-10  Jb Evain  <jbevain@novell.com>
331
332         * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
333         * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
334
335 2008-03-10  Jb Evain  <jbevain@novell.com>
336
337         * TypeBinaryExpression.cs (Emit): implement.
338
339 2008-03-08  Jb Evain  <jbevain@novell.com>
340
341         * MemberListBinding.cs (Emit): implement.
342         * MemberBinding.cs (EmitLoadMember): add helper.
343
344 2008-03-08  Jb Evain  <jbevain@novell.com>
345
346         * MemberAssignment.cs (Emit): implement.
347
348 2008-03-08  Jb Evain  <jbevain@novell.com>
349
350         * ElementInit.cs (Emit): implement.
351
352 2008-03-06  Jb Evain  <jbevain@novell.com>
353
354         * EmitContext.cs: the DebugContext delegate the CreateDelegate
355         to a DynamicContext to avoid visibility issues in debug mode.
356
357 2008-03-06  Jb Evain  <jbevain@novell.com>
358
359         * EmitContext.cs: Lambda methods bypass JIT visibility checks.
360
361 2008-03-06  Jb Evain  <jbevain@novell.com>
362
363         * MethodCallExpression.cs, Expression.cs: refactor method calling
364         into a more sophisticated EmitCall in Expression.
365         * InvocationExpression.cs (Emit): implement using the previous EmitCall.
366
367 2008-03-06  Jb Evain  <jbevain@novell.com>
368
369         * Expression.cs: add a EmitCall helper.
370         * MemberExpression.cs: implement property access.
371
372 2008-03-06  Jb Evain  <jbevain@novell.com>
373
374         * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
375         * MemberExpression.cs: use EmitLoad to load the instance field if needed.
376
377 2008-03-06  Jb Evain  <jbevain@novell.com>
378
379         * BinaryExpression.cs, Expression.cs: move EmitStored from
380         BinaryExpression to Expression.
381         * MethodCallExpression.cs: allow method calls on structs.
382
383 2008-03-05  Jb Evain  <jbevain@novell.com>
384
385         * Expression.cs: Fix the Call method which takes an array
386         of type arguments.
387
388 2008-03-05  Jb Evain  <jbevain@novell.com>
389
390         * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
391
392 2008-02-26  Jb Evain  <jbevain@novell.com>
393
394         * Expression.cs (Call): Guess the parameters type from the argument
395         types if needed.
396
397 2008-02-25  Jb Evain  <jbevain@novell.com>
398
399         * NewExpression.cs (Emit): deal with value types construction.
400
401 2008-02-25  Jb Evain  <jbevain@novell.com>
402
403         * Expression.cs, NewExpression.cs: deal with the fact that value types
404         don't have a parameterless constructor.
405
406 2008-02-24  Jb Evain  <jbevain@novell.com>
407
408         * LambdaExpression.cs, EmitContext.cs: make compilation
409         of delegate returning void work.
410
411 2008-02-24  Jb Evain  <jbevain@novell.com>
412
413         * MethodCallExpression.cs: emit call or callvirt depending
414         on the virtuality of the method.
415
416 2008-02-24  Jb Evain  <jbevain@novell.com>
417
418         * LambdaExpression.cs: properly format error message.
419
420 2008-02-21  Jb Evain  <jbevain@novell.com>
421
422         * BinaryExpression.cs (EmitCoalesce): fix setup_null.
423
424 2008-02-21  Jb Evain  <jbevain@novell.com>
425
426         * BinaryExpression.cs (Emit): fix the both_are_null case.
427
428 2008-02-20  Jb Evain  <jbevain@novell.com>
429
430         * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
431
432 2008-02-20  Jb Evain  <jbevain@novell.com>
433
434         * Expression.cs, ExpressionPrinter.cs: implement ListInit.
435
436 2008-02-19  Jb Evain  <jbevain@novell.com>
437
438         * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
439
440 2008-02-19  Jb Evain  <jbevain@novell.com>
441
442         * Expression.cs, ExpressionPrinter.cs: implement last New
443         overload for anonymous types.
444
445 2008-02-08  Jb Evain  <jbevain@novell.com>
446
447         * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
448                 add support for Invoke.
449
450 2008-02-04  Jb Evain  <jbevain@novell.com>
451
452         * ExpressionPrinter.cs: fix printing of MemberListBinding.
453
454 2008-02-04  Jb Evain  <jbevain@novell.com>
455
456         * Expression.cs, NewExpression.cs: make New(Type) test pass.
457
458 2008-02-04  Jb Evain  <jbevain@novell.com>
459
460         * ExpressionPrinter.cs: fix and clean printing of ElementInit.
461
462 2008-02-02  Jb Evain  <jbevain@novell.com>
463
464         * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
465
466 2008-02-02  Jb Evain  <jbevain@novell.com>
467
468         * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
469
470 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
471
472         * Expression.cs, ExpressionPrinter.cs:Add ListBind
473
474 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
475
476         * Expression.cs, ExpressionPrinter.cs:Add Elementinit
477
478 2008-01-31  Jb Evain  <jbevain@novell.com>
479
480         * UnaryExpression.cs: emit array length.
481
482 2008-01-31  Jb Evain  <jbevain@novell.com>
483
484         * MemberExpression.cs: Simple support for emitting fields.
485
486 2008-01-30  Jb Evain  <jbevain@novell.com>
487
488         * MethodCallExpression.cs: very naive implementation of Emit.
489
490 2008-01-30  Jb Evain  <jbevain@novell.com>
491
492         * NewExpression.cs: add Emit support for reference types.
493
494 2008-01-30  Jb Evain  <jbevain@novell.com>
495
496         * LambdaExpression.cs, EmitContext.cs: small refactoring.
497         Extract the different EmitContexts to their own file.
498
499 2008-01-29  Jb Evain  <jbevain@novell.com>
500
501         * MethodCallExpression.cs, Expression.cs: complete Calls.
502
503 2008-01-29  Jb Evain  <jbevain@novell.com>
504
505         * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
506         implement the first flavors of New.
507
508 2008-01-27  Jb Evain  <jbevain@novell.com>
509
510         * ConditionalExpression.cs: implement Emit.
511
512 2008-01-27  Jb Evain  <jbevain@novell.com>
513
514         * Expression.cs: implement the last Lambda method.
515
516 2008-01-27  Jb Evain  <jbevain@novell.com>
517
518         * LambdaExpression.cs: fix the Type of the LambdaExpressions.
519
520 2008-01-27  Olivier Dufour  <olivier.duff@gmail.com>
521
522         * Expression.cs, InvocationExpession.cs,
523         ListInitExpression.cs, MemberInitExpression.cs
524         NewExpression.cs : Add all missing
525         constructor in Expressions and remove the base one
526
527 2008-01-25  Jb Evain  <jbevain@novell.com>
528
529         * Expression.cs, ExpressionPrinter.cs: implement Bind.
530
531 2008-01-25  Jb Evain  <jbevain@novell.com>
532
533         * MemberMemberBinding.cs, MemberListBinding.cs,
534         MemberAssignment.cs, MemberBinding.cs:
535         add constructors.
536
537 2008-01-25  Jb Evain  <jbevain@novell.com>
538
539         * Expression.cs: implement PropertyOrField.
540
541 2008-01-24  Jb Evain  <jbevain@novell.com>
542
543         * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
544         implement Field and Property.
545
546 2008-01-22  Miguel de Icaza  <miguel@novell.com>
547
548         * BinaryExpression.cs: Unleash the power of cut and paste.
549
550         Bring a bunch of operatros from mcs/expression.cs
551
552         * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
553         used those from mcs, that was wrong.   use the proper ones, clean
554         up the result.
555
556         * BinaryExpression.cs: Add method invocations for binary methods.
557
558 2008-01-22  Jb Evain  <jbevain@novell.com>
559
560         * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
561
562 2008-01-22  Jb Evain  <jbevain@novell.com>
563
564         * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
565         implement Expression.NewArrayBounds.
566
567 2008-01-22  Jb Evain  <jbevain@novell.com>
568
569         * ExpressionPrinter.cs: fix Lambda and Equal.
570
571 2008-01-22  Miguel de Icaza  <miguel@novell.com>
572
573         * BinaryExpression.cs (EmitCoalesce): Add support for emitting
574         code for Coalesce.
575
576         TODO: this does not use the "Conversion" Lambda, which am not sure
577         who generates this or what it is used for.
578
579         (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
580
581         * Expression.cs: Add support for Coalesce.
582         (BinaryCoreCheck): Move more checking here, instead of the helper
583         routines, will remove them next.
584
585         * LambdaExpression.cs (Compile): Create the delegate last, so we
586         manage to save the assembly while debugging in case of error
587
588 2008-01-21  Miguel de Icaza  <miguel@novell.com>
589
590         * Expression.cs (BinaryCoreCheck): Add checking for a few
591         operators here (to avoid doing a second pass, handles AndAlso and
592         OrElse).
593
594         (AndAlso, OrElse): Add some code.
595
596         * BinaryExpression.cs: Instead of using GetValueOrDefault use
597         get_Value, as we already probed for the lack of value.
598
599         Split out support for And/Or to a separate routine as the code is
600         not very easy to share with the arithmetics code.
601
602 2008-01-21  Marek Safar  <marek.safar@gmail.com>
603
604         * BinaryExpression.cs: Fixed initobj initialization.
605
606 2008-01-21  Jb Evain  <jbevain@novell.com>
607
608         * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
609         Move the IsUnsigned helper from BinaryExpression to Expression,
610         so it can be used in UnaryExpression.
611
612 2008-01-21  Miguel de Icaza  <miguel@novell.com>
613
614         * Start code generation for nullables, currently this generates
615         incorrect code for things like:
616
617         Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
618         e2.Compile ().Invoke (null, 3))
619
620         This should return null, but returns something else.
621
622         * Introduce LINQ_DBG env variable, which generates a linq file in
623         /tmp;   It currently does not work as well as it should, as the
624         Func<> parameters do not mwatch the generated method.
625         Investigate.
626
627
628 2008-01-20  Miguel de Icaza  <miguel@novell.com>
629
630         Introduce support for Nullable arguments, no code is generated for
631         these yet, its only tests + node creation behavior at this point.
632
633         * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
634         as operators, they must both be nullable.
635
636         NullableTypes in the arguments are transformed into the underlying
637         values when doing the method validation.
638
639 2008-01-18  Miguel de Icaza  <miguel@novell.com>
640
641         * ParameterExpression.cs: Add emit support.
642
643 2008-01-18  Jb Evain  <jbevain@novell.com>
644
645         * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
646
647 2008-01-18  Miguel de Icaza  <miguel@novell.com>
648
649         * BinaryExpression.cs: Add support for emitting code for some
650         operators (ported from the Mono C# compiler).
651
652         Add tests.
653
654 2008-01-17  Miguel de Icaza  <miguel@novell.com>
655
656         Beginning of code generation framework for Linq.Expressions.
657         Some code was borrowed by from the C# compiler
658
659         * Expression_T.cs: Fill in the blanks.
660
661         * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
662         of codegen.
663
664         * ConstantExpression.cs: Mostly done, need to write tests for
665         non-fundamental types and other ValueType initializations.
666
667 2008-01-17  Jb Evain  <jbevain@novell.com>
668
669         * Expression.cs: implement MakeMemberAccess.
670
671 2008-01-17  Jb Evain  <jbevain@novell.com>
672
673         * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
674         implement ArrayIndex.
675
676 2008-01-17  Jb Evain  <jbevain@novell.com>
677
678         * Expression.cs: Use TypeCode for IsInt and IsNumber.
679
680 2008-01-16  Miguel de Icaza  <miguel@novell.com>
681
682         * Expression.cs: Add support for user-defined operators.
683
684         Put back various binary operator tests.
685
686 2008-01-16  Jb Evain  <jbevain@novell.com>
687
688         * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
689
690 2008-01-15  Miguel de Icaza  <miguel@novell.com>
691
692         * Expression.cs: Do validation on the method parameters and use
693         the return type if provided.
694
695 2008-01-15  Jb Evain  <jbevain@novell.com>
696
697         * MethodCallExpression.cs, Expression.cs
698         ExpressionPrinter.cs: Implement Call (Expression, ...)
699
700 2008-01-15  Jb Evain  <jbevain@novell.com>
701
702         * Expression.cs, ConditionalExpressionExpression.cs
703         ExpressionPrinter.cs : implement Expression.Condition.
704
705 2008-01-15  Jb Evain  <jbevain@novell.com>
706
707         * Expression.cs,
708         ParameterExpression.cs,
709         ExpressionPrinter.cs: implement Expression.Parameter
710
711 2008-01-15  Jb Evain  <jbevain@novell.com>
712
713         * ExpressionPrinter.cs (VisitBinaryExpression): simple
714         implementation (probably misses a few cases).
715
716 2008-01-14  Miguel de Icaza  <miguel@novell.com>
717
718         * Expression.cs: Bring back the (most) of binary operators.  Added
719         type checking as well and reorganized the source file by topic
720         instead of alphabetical sorting.
721
722 2008-01-14  Jb Evain  <jbevain@novell.com>
723
724         * ExpressionPrinter.cs: print ArrayLength.
725
726 2008-01-14  Jb Evain  <jbevain@novell.com>
727
728         * Expression.cs: TypeAs can't take value types.
729         * ExpressionPrinter.cs: implement TypeAs.
730
731 2008-01-14  Jb Evain  <jbevain@novell.com>
732
733         * Expression.cs: implement TypeIs.
734         * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
735         * TypeBinaryExpression.cs: add proper ctor.
736
737 2008-01-14  Jb Evain  <jbevain@novell.com>
738
739         * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
740
741 2008-01-14  Jb Evain  <jbevain@novell.com>
742
743         * BinaryExpression.cs,
744         * Expression.cs: revert part of Miguel's last patch.
745         MakeBinary is expected to call the appropriate factory
746         methods. Whose methods that are responsible for creating
747         the good BinaryExpression, wether they use a custom method
748         or not.
749
750 2008-01-14  Jb Evain  <jbevain@novell.com>
751
752         * Expression.cs: MakeUnary is expected to call the appropriate
753         factory methods.
754
755 2008-01-14  Miguel de Icaza  <miguel@novell.com>
756
757         * Expression.cs (Constant, MakeBinary and consumers of it): Some
758         more fill-up changes.
759
760         MakeBinary will need much more work to support user-provided
761         types.
762
763 2008-01-13  Jb Evain  <jbevain@novell.com>
764
765         * *.cs: fresh implementation.