2010-01-08 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System.Core / System.Linq.Expressions / ChangeLog
blob8c1d3dd217ecb4e4fa13474f1fa36f4d88bda6d6
1 2010-01-08  Jb Evain  <jbevain@novell.com>
3         * Expression.cs (Call): properly deal with zero length array
4         of type arguments for non generic methods. Fixes #568989.
6 2009-12-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
8         * Expression.cs: expression can be null for static getters. Patch from
9         Miguel de Icaza (miguel@novell.com).
11 2009-11-15  Jb Evain  <jbevain@novell.com>
13         * Expression (Call): deal with lambda expression <> delegate
14         comparison when filtering methods.
15         Fixes #536637.
17 2009-11-15  Jb Evain  <jbevain@novell.com>
19         * Expression (Call): better filtering of generic methods.
20         Fixes #537768.
22 2009-11-14  Jb Evain  <jbevain@novell.com>
24         * UnaryExpression.cs: isolate quoted expressions.
25         * EmitContext.cs (ParameterReplacer): new helper type
26         to replace the parameters of isolated expressions.
27         Fix #550722.
29 2009-11-14  Jb Evain  <jbevain@novell.com>
31         * ExpressionTransformer.cs: adjust return type of all
32          tranformation methods to make the transformer actually
33          useful.
35 2009-10-08  Jb Evain  <jbevain@novell.com>
37         * LambdaExpression.cs (Compile): use the interpreter on MonoTouch.
39 2009-09-03  Jb Evain  <jbevain@novell.com>
41         * ConstantExpression.cs (Emit): add support to emit DBNull values.
43 2009-09-03  Jb Evain  <jbevain@novell.com>
45         * ConstantExpression.cs (Emit): add support for emitting
46         DateTime constants.
48 2009-03-05  Jb Evain  <jbevain@novell.com>
50         * EmitContext.cs
51         * ParameterExpression.cs:
52                 add support for hoisted locals.
54 2009-02-24  Jb Evain  <jbevain@novell.com>
56         * Expression.cs (BinaryCoreCheck): fix comparison of enums
58 2009-02-23  Jb Evain  <jbevain@novell.com>
60         * Expression.cs (IsNumber): actually decimal is rather a special
61         case, and not a primitive number.
63 2009-02-23  Jb Evain  <jbevain@novell.com>
65         * Expression.cs (BinaryCoreCheck): add decimal operations
66         are provided by custom operators.
68 2008-12-17  Jb Evain  <jbevain@novell.com>
70         * ExpressionTransformer.cs: fix VisitList.
72 2008-11-19  Jb Evain  <jbevain@novell.com>
74         * Expression.cs: protect against open generic methods.
76 2008-10-08  Atsushi Enomoto  <atsushi@ximian.com>
78         * Expression.cs : give us information about which type does not
79           implement Emit().
81 2008-10-03  Jb Evain  <jbevain@novell.com>
83         * Expression.cs: make sure we properly test complex generic methods
84         as a Call candidate.
86 2008-09-22  Jb Evain  <jbevain@novell.com>
88         * TypeBinaryExpression.cs: protect against testing void expressions.
89         Fixes bug #428309.
91 2008-09-01  Jb Evain  <jbevain@novell.com>
93         * MemberBinding.cs: make .ctor protected instead of public.
95 2008-09-01  Jb Evain  <jbevain@novell.com>
97         * Expression.cs: guard against null parameters passed to Lambda.
99 2008-08-30  Marek Safar  <marek.safar@gmail.com>
101         * MemberBinding.cs: Made MemberBinding ctor public
103 2008-08-07  Jb Evain  <jbevain@novell.com>
105         * Expression.cs (GetAssociatedProperty): strengthen accessors
106         comparisons.
108 2008-08-02  Zoltan Varga  <vargaz@gmail.com>
110         * BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
111         shift amount like mcs compiled code does.
113 2008-07-19  Jb Evain  <jbevain@novell.com>
115         * Expression.cs (Call, Field, Property): disallow instance arguments
116         on static members. See ms connect #339351.
118 2008-07-18  Jb Evain  <jbevain@novell.com>
120         * Expression.cs, BinaryExpression.cs: fix retrieval of true and false
121         operators.
123 2008-06-20  Jb Evain  <jbevain@novell.com>
125         * LambdaExpression.cs, EmitContext.cs: refactor the emit context to
126         handle the fact that lambdas are compiled in a general context where
127         they share globals but are also able to use parameters from parent lambdas.
128         (Although parameter sharing is not implemented yet).
130         * BinaryExpression.cs (fix converted coalesce case to use the lambda
131         compilation code).
133 2008-06-09  Jb Evain  <jbevain@novell.com>
135         * Extensions.cs (Type.IsExpression): add
136         * Expression.cs (CheckMethodArguments): modify the argument list
137         to quote arguments when if necessary.
140 2008-06-09  Jb Evain  <jbevain@novell.com>
142         * Expression.cs (CheckLambda): quote body if required.
144 2008-06-07  Jb Evain  <jbevain@novell.com>
146         * BinaryExpression.cs (EmitConvertedCoalesce): implement.
148 2008-06-05  Jb Evain  <jbevain@novell.com>
150         * Expression.cs (GetUserConversionMethod): check for convertion
151         operators on both types.
153 2008-06-05  Jb Evain  <jbevain@novell.com>
155         * Expression.cs (ConditionalBinaryCheck): if a method is passed,
156         checked that the operators true and false are also defined.
158 2008-06-05  Jb Evain  <jbevain@novell.com>
160         * BinaryExpression.cs (Emit): deal with binary expressions
161         where only the left is lifted.
163 2008-06-05  Jb Evain  <jbevain@novell.com>
165         * Extensions.cs: Add Type.MakeNullableType helper.
166         * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
167         creat lifted/lifted to null/not lifted
168         user defined binary expressions.
169         * BinaryExpression.cs (Emit): implement compilation of
170         lifted and lifted to null user defined binary operators.
172 2008-06-05  Jb Evain  <jbevain@novell.com>
174         * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
175         unary expressions with user defined operators.
176         * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
178 2008-05-30  Jb Evain  <jbevain@novell.com>
180         * UnaryExpression.cs (Emit): fix convertion from nullable
181         to nullable types.
183 2008-05-29  Jb Evain  <jbevain@novell.com>
185         * Expression.cs (Power): allow bool?.
186         * BinaryExpression.cs: properly deal with lifted power expression.
188 2008-05-29  Jb Evain  <jbevain@novell.com>
190         * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
192 2008-05-29  Jb Evain  <jbevain@novell.com>
194         * BinaryExpression.cs (Emit): properly emit lifted to null
195         relational binary expressions.
197 2008-05-28  Jb Evain  <jbevain@novell.com>
199         * BinaryExpression.cs (Emit): rework compilation of
200         arithmetic and relational lifted binary expressions.
202 2008-05-28  Jb Evain  <jbevain@novell.com>
204         * UnaryExpression.cs (Emit): implement support for compiling
205         lifted unary expressions.
207 2008-05-27  Jb Evain  <jbevain@novell.com>
209         * UnaryExpression.cs (EmitConvert): implement nullable to nullable
210         convert.
212 2008-05-20  Roei Erez  <roeie@mainsoft.com>
214         * Extensions.cs: Add 'IsGenericImplementationOf' extension method
216 2008-05-15  Jb Evain  <jbevain@novell.com>
218         * UnaryExpression.cs, EmitContext.cs: emit convert from and
219         to nullable types.
221 2008-05-15  Jb Evain  <jbevain@novell.com>
223         * Extensions.cs: add a few useful extensions such as
224         IsGenericInstanceOf and MakeGenericFrom.
226 2008-05-15  Roei Erez  <roeie@mainsoft.com>
228         * ExpressionTransformer.cs: Add a base class for transforming Expressions.
229         In use at AsQueryable() implementation.
231 2008-05-14  Jb Evain  <jbevain@novell.com>
233         * EmitContext.cs: only generate a new lambda name if we're in
234         a debug context.
236 2008-05-14  Jb Evain  <jbevain@novell.com>
238         * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
239         inside an ET, compile it as a read of a global. Based on a patch
240         by Roei Erez <roeie@mainsoft.com>
242 2008-05-08  Jb Evain  <jbevain@novell.com>
244         * Expression.cs, EmitContext.cs: deal with call to methods
245         with byref parameters.
247 2008-05-07  Roei Erez  <roeie@mainsoft.com>
249         * Add ifdef TARGET_JVM
251 2008-05-03  Jb Evain  <jbevain@novell.com>
253         * LambdaExpression.cs: move checks to Expression
254         * Expression.cs: apply check for both typed and untyped lambda
255         creation, so that the constructor does not throws exception.
256         Needed to create instances of Expression<> for untyped lambda
257         factory method. Fixes #386322.
259 2008-05-02  Jb Evain  <jbevain@novell.com>
261         * Expression.cs: make Emit virtual instead of abstract,
262         to allow externals libraries to extend Expression.
263         Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
265 2008-04-29  Jb Evain  <jbevain@novell.com>
267         * UnaryExpression.cs (EmitPrimitiveConversion): implement.
269 2008-04-28  Jb Evain  <jbevain@novell.com>
271         * EmitContext.cs: deal with globals when encountering them while
272         compiling, and not ahead of time with a dedicated visitor.
274 2008-04-27  Jb Evain  <jbevain@novell.com>
276         * ConstantExpression.cs (Emit): emit properly null nullable types.
278 2008-04-27  Jb Evain  <jbevain@novell.com>
280         * Expression.cs: improve method finder.
282 2008-04-24  Jb Evain  <jbevain@novell.com>
284         * UnaryExpression.cs, EmitContext.cs: implement compilation
285         of Quote as a global load.
287 2008-04-23  Jb Evain  <jbevain@novell.com>
289         * UnaryExpression.cs: start implementing EmitConvert.
291 2008-04-23  Jb Evain  <jbevain@novell.com>
293         * ConstantExpression.cs (Emit): properly Emit null constants.
295 2008-04-23  Jb Evain  <jbevain@novell.com>
297         * Expression.cs (Constant): check for assignability, not for type
298         equality, when a type is passed.
300 2008-04-23  Jb Evain  <jbevain@novell.com>
302         * ExpressionPrinter.cs: ToString convert properly.
304 2008-04-22  Jb Evain  <jbevain@novell.com>
306         * UnaryExpression.cs: implement IsLiftedToNull properly.
307         * Expression.cs (Convert, ConvertChecked): implemented computing
308         of IsLifted and IsLiftedToNull for conversions.
310 2008-04-22  Jb Evain  <jbevain@novell.com>
312         * Expression.cs (Convert, ConvertChecked): implement.
314 2008-04-21  Jb Evain  <jbevain@novell.com>
316         * Expression.cs (Call): don't rely on the fact that if the
317         instance expression is null, then it's a static call. Explicitely
318         check on the MethodInfo for that.
319         * EmitContext.cs (EmitCall): same pattern.
321 2008-04-20  Jb Evain  <jbevain@novell.com>
323         * MemberMemberBinding.cs (Emit): implement.
325 2008-04-19  Jb Evain  <jbevain@novell.com>
327         * EmitContext.cs: infrastructure work to attach a compiled
328         lambda expression to an execution scope, and to detect and store
329         external globals in the scope.
330         * ConstantExpression.cs: load globals from the scope.
332 2008-04-19  Jb Evain  <jbevain@novell.com>
334         * ExpressionVisitor.cs (Visit): don't die because of Power.
336 2008-04-09  Jb Evain  <jbevain@novell.com>
338         * Expression.cs: check for illegal booleab unary expressions.
340 2008-04-09  Jb Evain  <jbevain@novell.com>
342         * UnaryExpression.cs: implement compilation of negate.
344 2008-04-09  Jb Evain  <jbevain@novell.com>
346         * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
347         to null for simple unary operators. Implement Not compilation.
349 2008-04-08  Jb Evain  <jbevain@novell.com>
351         * ElementInit.cs: emit pop if the add method doesn't return void.
353 2008-03-20  Jb Evain  <jbevain@novell.com>
355         * Expression.cs: use the new and more complete IsAssignableTo
356         instead of IsAssignableFrom.
358 2008-03-19  Jb Evain  <jbevain@novell.com>
360         * LambdaExpression.cs: use the new standardified IsAssignableTo,
361         fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
363 2008-03-19  Jb Evain  <jbevain@novell.com>
365         * Extensions.cs (Type.IsAssignableTo): deal with arrays.
367 2008-03-13  Jb Evain  <jbevain@novell.com>
369         * NewArrayExpression.cs (EmitNewArrayBounds): implement.
371 2008-03-12  Jb Evain  <jbevain@novell.com>
373         * NewArrayExpression.cs (Emit): naive implementation of emit support
374         for array initialization.
376 2008-03-11  Jb Evain  <jbevain@novell.com>
378         * BinaryExpression.cs: very naive implementation of emitting
379         array accesses.
381 2008-03-11  Jb Evain  <jbevain@novell.com>
383         * *.cs: Move the different Emit* helpers to EmitContext,
384         so that they get used more naturally by the non Expression
385         types.
387 2008-03-10  Jb Evain  <jbevain@novell.com>
389         * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
390         * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
392 2008-03-10  Jb Evain  <jbevain@novell.com>
394         * TypeBinaryExpression.cs (Emit): implement.
396 2008-03-08  Jb Evain  <jbevain@novell.com>
398         * MemberListBinding.cs (Emit): implement.
399         * MemberBinding.cs (EmitLoadMember): add helper.
401 2008-03-08  Jb Evain  <jbevain@novell.com>
403         * MemberAssignment.cs (Emit): implement.
405 2008-03-08  Jb Evain  <jbevain@novell.com>
407         * ElementInit.cs (Emit): implement.
409 2008-03-06  Jb Evain  <jbevain@novell.com>
411         * EmitContext.cs: the DebugContext delegate the CreateDelegate
412         to a DynamicContext to avoid visibility issues in debug mode.
414 2008-03-06  Jb Evain  <jbevain@novell.com>
416         * EmitContext.cs: Lambda methods bypass JIT visibility checks.
418 2008-03-06  Jb Evain  <jbevain@novell.com>
420         * MethodCallExpression.cs, Expression.cs: refactor method calling
421         into a more sophisticated EmitCall in Expression.
422         * InvocationExpression.cs (Emit): implement using the previous EmitCall.
424 2008-03-06  Jb Evain  <jbevain@novell.com>
426         * Expression.cs: add a EmitCall helper.
427         * MemberExpression.cs: implement property access.
429 2008-03-06  Jb Evain  <jbevain@novell.com>
431         * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
432         * MemberExpression.cs: use EmitLoad to load the instance field if needed.
434 2008-03-06  Jb Evain  <jbevain@novell.com>
436         * BinaryExpression.cs, Expression.cs: move EmitStored from
437         BinaryExpression to Expression.
438         * MethodCallExpression.cs: allow method calls on structs.
440 2008-03-05  Jb Evain  <jbevain@novell.com>
442         * Expression.cs: Fix the Call method which takes an array
443         of type arguments.
445 2008-03-05  Jb Evain  <jbevain@novell.com>
447         * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
449 2008-02-26  Jb Evain  <jbevain@novell.com>
451         * Expression.cs (Call): Guess the parameters type from the argument
452         types if needed.
454 2008-02-25  Jb Evain  <jbevain@novell.com>
456         * NewExpression.cs (Emit): deal with value types construction.
458 2008-02-25  Jb Evain  <jbevain@novell.com>
460         * Expression.cs, NewExpression.cs: deal with the fact that value types
461         don't have a parameterless constructor.
463 2008-02-24  Jb Evain  <jbevain@novell.com>
465         * LambdaExpression.cs, EmitContext.cs: make compilation
466         of delegate returning void work.
468 2008-02-24  Jb Evain  <jbevain@novell.com>
470         * MethodCallExpression.cs: emit call or callvirt depending
471         on the virtuality of the method.
473 2008-02-24  Jb Evain  <jbevain@novell.com>
475         * LambdaExpression.cs: properly format error message.
477 2008-02-21  Jb Evain  <jbevain@novell.com>
479         * BinaryExpression.cs (EmitCoalesce): fix setup_null.
481 2008-02-21  Jb Evain  <jbevain@novell.com>
483         * BinaryExpression.cs (Emit): fix the both_are_null case.
485 2008-02-20  Jb Evain  <jbevain@novell.com>
487         * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
489 2008-02-20  Jb Evain  <jbevain@novell.com>
491         * Expression.cs, ExpressionPrinter.cs: implement ListInit.
493 2008-02-19  Jb Evain  <jbevain@novell.com>
495         * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
497 2008-02-19  Jb Evain  <jbevain@novell.com>
499         * Expression.cs, ExpressionPrinter.cs: implement last New
500         overload for anonymous types.
502 2008-02-08  Jb Evain  <jbevain@novell.com>
504         * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
505                 add support for Invoke.
507 2008-02-04  Jb Evain  <jbevain@novell.com>
509         * ExpressionPrinter.cs: fix printing of MemberListBinding.
511 2008-02-04  Jb Evain  <jbevain@novell.com>
513         * Expression.cs, NewExpression.cs: make New(Type) test pass.
515 2008-02-04  Jb Evain  <jbevain@novell.com>
517         * ExpressionPrinter.cs: fix and clean printing of ElementInit.
519 2008-02-02  Jb Evain  <jbevain@novell.com>
521         * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
523 2008-02-02  Jb Evain  <jbevain@novell.com>
525         * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
527 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
529         * Expression.cs, ExpressionPrinter.cs:Add ListBind
531 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
533         * Expression.cs, ExpressionPrinter.cs:Add Elementinit
535 2008-01-31  Jb Evain  <jbevain@novell.com>
537         * UnaryExpression.cs: emit array length.
539 2008-01-31  Jb Evain  <jbevain@novell.com>
541         * MemberExpression.cs: Simple support for emitting fields.
543 2008-01-30  Jb Evain  <jbevain@novell.com>
545         * MethodCallExpression.cs: very naive implementation of Emit.
547 2008-01-30  Jb Evain  <jbevain@novell.com>
549         * NewExpression.cs: add Emit support for reference types.
551 2008-01-30  Jb Evain  <jbevain@novell.com>
553         * LambdaExpression.cs, EmitContext.cs: small refactoring.
554         Extract the different EmitContexts to their own file.
556 2008-01-29  Jb Evain  <jbevain@novell.com>
558         * MethodCallExpression.cs, Expression.cs: complete Calls.
560 2008-01-29  Jb Evain  <jbevain@novell.com>
562         * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
563         implement the first flavors of New.
565 2008-01-27  Jb Evain  <jbevain@novell.com>
567         * ConditionalExpression.cs: implement Emit.
569 2008-01-27  Jb Evain  <jbevain@novell.com>
571         * Expression.cs: implement the last Lambda method.
573 2008-01-27  Jb Evain  <jbevain@novell.com>
575         * LambdaExpression.cs: fix the Type of the LambdaExpressions.
577 2008-01-27  Olivier Dufour  <olivier.duff@gmail.com>
579         * Expression.cs, InvocationExpession.cs,
580         ListInitExpression.cs, MemberInitExpression.cs
581         NewExpression.cs : Add all missing
582         constructor in Expressions and remove the base one
584 2008-01-25  Jb Evain  <jbevain@novell.com>
586         * Expression.cs, ExpressionPrinter.cs: implement Bind.
588 2008-01-25  Jb Evain  <jbevain@novell.com>
590         * MemberMemberBinding.cs, MemberListBinding.cs,
591         MemberAssignment.cs, MemberBinding.cs:
592         add constructors.
594 2008-01-25  Jb Evain  <jbevain@novell.com>
596         * Expression.cs: implement PropertyOrField.
598 2008-01-24  Jb Evain  <jbevain@novell.com>
600         * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
601         implement Field and Property.
603 2008-01-22  Miguel de Icaza  <miguel@novell.com>
605         * BinaryExpression.cs: Unleash the power of cut and paste.
607         Bring a bunch of operatros from mcs/expression.cs
609         * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
610         used those from mcs, that was wrong.   use the proper ones, clean
611         up the result.
613         * BinaryExpression.cs: Add method invocations for binary methods.
615 2008-01-22  Jb Evain  <jbevain@novell.com>
617         * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
619 2008-01-22  Jb Evain  <jbevain@novell.com>
621         * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
622         implement Expression.NewArrayBounds.
624 2008-01-22  Jb Evain  <jbevain@novell.com>
626         * ExpressionPrinter.cs: fix Lambda and Equal.
628 2008-01-22  Miguel de Icaza  <miguel@novell.com>
630         * BinaryExpression.cs (EmitCoalesce): Add support for emitting
631         code for Coalesce.
633         TODO: this does not use the "Conversion" Lambda, which am not sure
634         who generates this or what it is used for.
636         (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
638         * Expression.cs: Add support for Coalesce.
639         (BinaryCoreCheck): Move more checking here, instead of the helper
640         routines, will remove them next.
642         * LambdaExpression.cs (Compile): Create the delegate last, so we
643         manage to save the assembly while debugging in case of error
645 2008-01-21  Miguel de Icaza  <miguel@novell.com>
647         * Expression.cs (BinaryCoreCheck): Add checking for a few
648         operators here (to avoid doing a second pass, handles AndAlso and
649         OrElse).
651         (AndAlso, OrElse): Add some code.
653         * BinaryExpression.cs: Instead of using GetValueOrDefault use
654         get_Value, as we already probed for the lack of value.
656         Split out support for And/Or to a separate routine as the code is
657         not very easy to share with the arithmetics code.
659 2008-01-21  Marek Safar  <marek.safar@gmail.com>
661         * BinaryExpression.cs: Fixed initobj initialization.
663 2008-01-21  Jb Evain  <jbevain@novell.com>
665         * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
666         Move the IsUnsigned helper from BinaryExpression to Expression,
667         so it can be used in UnaryExpression.
669 2008-01-21  Miguel de Icaza  <miguel@novell.com>
671         * Start code generation for nullables, currently this generates
672         incorrect code for things like:
674         Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
675         e2.Compile ().Invoke (null, 3))
677         This should return null, but returns something else.
679         * Introduce LINQ_DBG env variable, which generates a linq file in
680         /tmp;   It currently does not work as well as it should, as the
681         Func<> parameters do not mwatch the generated method.
682         Investigate.
685 2008-01-20  Miguel de Icaza  <miguel@novell.com>
687         Introduce support for Nullable arguments, no code is generated for
688         these yet, its only tests + node creation behavior at this point.
690         * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
691         as operators, they must both be nullable.
693         NullableTypes in the arguments are transformed into the underlying
694         values when doing the method validation.
696 2008-01-18  Miguel de Icaza  <miguel@novell.com>
698         * ParameterExpression.cs: Add emit support.
700 2008-01-18  Jb Evain  <jbevain@novell.com>
702         * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
704 2008-01-18  Miguel de Icaza  <miguel@novell.com>
706         * BinaryExpression.cs: Add support for emitting code for some
707         operators (ported from the Mono C# compiler).
709         Add tests.
711 2008-01-17  Miguel de Icaza  <miguel@novell.com>
713         Beginning of code generation framework for Linq.Expressions.
714         Some code was borrowed by from the C# compiler
716         * Expression_T.cs: Fill in the blanks.
718         * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
719         of codegen.
721         * ConstantExpression.cs: Mostly done, need to write tests for
722         non-fundamental types and other ValueType initializations.
724 2008-01-17  Jb Evain  <jbevain@novell.com>
726         * Expression.cs: implement MakeMemberAccess.
728 2008-01-17  Jb Evain  <jbevain@novell.com>
730         * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
731         implement ArrayIndex.
733 2008-01-17  Jb Evain  <jbevain@novell.com>
735         * Expression.cs: Use TypeCode for IsInt and IsNumber.
737 2008-01-16  Miguel de Icaza  <miguel@novell.com>
739         * Expression.cs: Add support for user-defined operators.
741         Put back various binary operator tests.
743 2008-01-16  Jb Evain  <jbevain@novell.com>
745         * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
747 2008-01-15  Miguel de Icaza  <miguel@novell.com>
749         * Expression.cs: Do validation on the method parameters and use
750         the return type if provided.
752 2008-01-15  Jb Evain  <jbevain@novell.com>
754         * MethodCallExpression.cs, Expression.cs
755         ExpressionPrinter.cs: Implement Call (Expression, ...)
757 2008-01-15  Jb Evain  <jbevain@novell.com>
759         * Expression.cs, ConditionalExpressionExpression.cs
760         ExpressionPrinter.cs : implement Expression.Condition.
762 2008-01-15  Jb Evain  <jbevain@novell.com>
764         * Expression.cs,
765         ParameterExpression.cs,
766         ExpressionPrinter.cs: implement Expression.Parameter
768 2008-01-15  Jb Evain  <jbevain@novell.com>
770         * ExpressionPrinter.cs (VisitBinaryExpression): simple
771         implementation (probably misses a few cases).
773 2008-01-14  Miguel de Icaza  <miguel@novell.com>
775         * Expression.cs: Bring back the (most) of binary operators.  Added
776         type checking as well and reorganized the source file by topic
777         instead of alphabetical sorting.
779 2008-01-14  Jb Evain  <jbevain@novell.com>
781         * ExpressionPrinter.cs: print ArrayLength.
783 2008-01-14  Jb Evain  <jbevain@novell.com>
785         * Expression.cs: TypeAs can't take value types.
786         * ExpressionPrinter.cs: implement TypeAs.
788 2008-01-14  Jb Evain  <jbevain@novell.com>
790         * Expression.cs: implement TypeIs.
791         * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
792         * TypeBinaryExpression.cs: add proper ctor.
794 2008-01-14  Jb Evain  <jbevain@novell.com>
796         * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
798 2008-01-14  Jb Evain  <jbevain@novell.com>
800         * BinaryExpression.cs,
801         * Expression.cs: revert part of Miguel's last patch.
802         MakeBinary is expected to call the appropriate factory
803         methods. Whose methods that are responsible for creating
804         the good BinaryExpression, wether they use a custom method
805         or not.
807 2008-01-14  Jb Evain  <jbevain@novell.com>
809         * Expression.cs: MakeUnary is expected to call the appropriate
810         factory methods.
812 2008-01-14  Miguel de Icaza  <miguel@novell.com>
814         * Expression.cs (Constant, MakeBinary and consumers of it): Some
815         more fill-up changes.
817         MakeBinary will need much more work to support user-provided
818         types.
820 2008-01-13  Jb Evain  <jbevain@novell.com>
822         * *.cs: fresh implementation.