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