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