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