2010-05-19 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System.Core / System.Linq.Expressions / ChangeLog
blob4ceca3602536597baa763255f2e987577c4241bd
1 2010-05-19  Jb Evain  <jbevain@novell.com>
3         * ConstantExpression.cs: fix emission of nullable constants.
5 2010-01-08  Jb Evain  <jbevain@novell.com>
7         * Expression.cs (Call): properly deal with zero length array
8         of type arguments for non generic methods. Fixes #568989.
10 2009-12-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
12         * Expression.cs: expression can be null for static getters. Patch from
13         Miguel de Icaza (miguel@novell.com).
15 2009-11-15  Jb Evain  <jbevain@novell.com>
17         * Expression (Call): deal with lambda expression <> delegate
18         comparison when filtering methods.
19         Fixes #536637.
21 2009-11-15  Jb Evain  <jbevain@novell.com>
23         * Expression (Call): better filtering of generic methods.
24         Fixes #537768.
26 2009-11-14  Jb Evain  <jbevain@novell.com>
28         * UnaryExpression.cs: isolate quoted expressions.
29         * EmitContext.cs (ParameterReplacer): new helper type
30         to replace the parameters of isolated expressions.
31         Fix #550722.
33 2009-11-14  Jb Evain  <jbevain@novell.com>
35         * ExpressionTransformer.cs: adjust return type of all
36          tranformation methods to make the transformer actually
37          useful.
39 2009-10-08  Jb Evain  <jbevain@novell.com>
41         * LambdaExpression.cs (Compile): use the interpreter on MonoTouch.
43 2009-09-03  Jb Evain  <jbevain@novell.com>
45         * ConstantExpression.cs (Emit): add support to emit DBNull values.
47 2009-09-03  Jb Evain  <jbevain@novell.com>
49         * ConstantExpression.cs (Emit): add support for emitting
50         DateTime constants.
52 2009-03-05  Jb Evain  <jbevain@novell.com>
54         * EmitContext.cs
55         * ParameterExpression.cs:
56                 add support for hoisted locals.
58 2009-02-24  Jb Evain  <jbevain@novell.com>
60         * Expression.cs (BinaryCoreCheck): fix comparison of enums
62 2009-02-23  Jb Evain  <jbevain@novell.com>
64         * Expression.cs (IsNumber): actually decimal is rather a special
65         case, and not a primitive number.
67 2009-02-23  Jb Evain  <jbevain@novell.com>
69         * Expression.cs (BinaryCoreCheck): add decimal operations
70         are provided by custom operators.
72 2008-12-17  Jb Evain  <jbevain@novell.com>
74         * ExpressionTransformer.cs: fix VisitList.
76 2008-11-19  Jb Evain  <jbevain@novell.com>
78         * Expression.cs: protect against open generic methods.
80 2008-10-08  Atsushi Enomoto  <atsushi@ximian.com>
82         * Expression.cs : give us information about which type does not
83           implement Emit().
85 2008-10-03  Jb Evain  <jbevain@novell.com>
87         * Expression.cs: make sure we properly test complex generic methods
88         as a Call candidate.
90 2008-09-22  Jb Evain  <jbevain@novell.com>
92         * TypeBinaryExpression.cs: protect against testing void expressions.
93         Fixes bug #428309.
95 2008-09-01  Jb Evain  <jbevain@novell.com>
97         * MemberBinding.cs: make .ctor protected instead of public.
99 2008-09-01  Jb Evain  <jbevain@novell.com>
101         * Expression.cs: guard against null parameters passed to Lambda.
103 2008-08-30  Marek Safar  <marek.safar@gmail.com>
105         * MemberBinding.cs: Made MemberBinding ctor public
107 2008-08-07  Jb Evain  <jbevain@novell.com>
109         * Expression.cs (GetAssociatedProperty): strengthen accessors
110         comparisons.
112 2008-08-02  Zoltan Varga  <vargaz@gmail.com>
114         * BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
115         shift amount like mcs compiled code does.
117 2008-07-19  Jb Evain  <jbevain@novell.com>
119         * Expression.cs (Call, Field, Property): disallow instance arguments
120         on static members. See ms connect #339351.
122 2008-07-18  Jb Evain  <jbevain@novell.com>
124         * Expression.cs, BinaryExpression.cs: fix retrieval of true and false
125         operators.
127 2008-06-20  Jb Evain  <jbevain@novell.com>
129         * LambdaExpression.cs, EmitContext.cs: refactor the emit context to
130         handle the fact that lambdas are compiled in a general context where
131         they share globals but are also able to use parameters from parent lambdas.
132         (Although parameter sharing is not implemented yet).
134         * BinaryExpression.cs (fix converted coalesce case to use the lambda
135         compilation code).
137 2008-06-09  Jb Evain  <jbevain@novell.com>
139         * Extensions.cs (Type.IsExpression): add
140         * Expression.cs (CheckMethodArguments): modify the argument list
141         to quote arguments when if necessary.
144 2008-06-09  Jb Evain  <jbevain@novell.com>
146         * Expression.cs (CheckLambda): quote body if required.
148 2008-06-07  Jb Evain  <jbevain@novell.com>
150         * BinaryExpression.cs (EmitConvertedCoalesce): implement.
152 2008-06-05  Jb Evain  <jbevain@novell.com>
154         * Expression.cs (GetUserConversionMethod): check for convertion
155         operators on both types.
157 2008-06-05  Jb Evain  <jbevain@novell.com>
159         * Expression.cs (ConditionalBinaryCheck): if a method is passed,
160         checked that the operators true and false are also defined.
162 2008-06-05  Jb Evain  <jbevain@novell.com>
164         * BinaryExpression.cs (Emit): deal with binary expressions
165         where only the left is lifted.
167 2008-06-05  Jb Evain  <jbevain@novell.com>
169         * Extensions.cs: Add Type.MakeNullableType helper.
170         * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
171         creat lifted/lifted to null/not lifted
172         user defined binary expressions.
173         * BinaryExpression.cs (Emit): implement compilation of
174         lifted and lifted to null user defined binary operators.
176 2008-06-05  Jb Evain  <jbevain@novell.com>
178         * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
179         unary expressions with user defined operators.
180         * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
182 2008-05-30  Jb Evain  <jbevain@novell.com>
184         * UnaryExpression.cs (Emit): fix convertion from nullable
185         to nullable types.
187 2008-05-29  Jb Evain  <jbevain@novell.com>
189         * Expression.cs (Power): allow bool?.
190         * BinaryExpression.cs: properly deal with lifted power expression.
192 2008-05-29  Jb Evain  <jbevain@novell.com>
194         * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
196 2008-05-29  Jb Evain  <jbevain@novell.com>
198         * BinaryExpression.cs (Emit): properly emit lifted to null
199         relational binary expressions.
201 2008-05-28  Jb Evain  <jbevain@novell.com>
203         * BinaryExpression.cs (Emit): rework compilation of
204         arithmetic and relational lifted binary expressions.
206 2008-05-28  Jb Evain  <jbevain@novell.com>
208         * UnaryExpression.cs (Emit): implement support for compiling
209         lifted unary expressions.
211 2008-05-27  Jb Evain  <jbevain@novell.com>
213         * UnaryExpression.cs (EmitConvert): implement nullable to nullable
214         convert.
216 2008-05-20  Roei Erez  <roeie@mainsoft.com>
218         * Extensions.cs: Add 'IsGenericImplementationOf' extension method
220 2008-05-15  Jb Evain  <jbevain@novell.com>
222         * UnaryExpression.cs, EmitContext.cs: emit convert from and
223         to nullable types.
225 2008-05-15  Jb Evain  <jbevain@novell.com>
227         * Extensions.cs: add a few useful extensions such as
228         IsGenericInstanceOf and MakeGenericFrom.
230 2008-05-15  Roei Erez  <roeie@mainsoft.com>
232         * ExpressionTransformer.cs: Add a base class for transforming Expressions.
233         In use at AsQueryable() implementation.
235 2008-05-14  Jb Evain  <jbevain@novell.com>
237         * EmitContext.cs: only generate a new lambda name if we're in
238         a debug context.
240 2008-05-14  Jb Evain  <jbevain@novell.com>
242         * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
243         inside an ET, compile it as a read of a global. Based on a patch
244         by Roei Erez <roeie@mainsoft.com>
246 2008-05-08  Jb Evain  <jbevain@novell.com>
248         * Expression.cs, EmitContext.cs: deal with call to methods
249         with byref parameters.
251 2008-05-07  Roei Erez  <roeie@mainsoft.com>
253         * Add ifdef TARGET_JVM
255 2008-05-03  Jb Evain  <jbevain@novell.com>
257         * LambdaExpression.cs: move checks to Expression
258         * Expression.cs: apply check for both typed and untyped lambda
259         creation, so that the constructor does not throws exception.
260         Needed to create instances of Expression<> for untyped lambda
261         factory method. Fixes #386322.
263 2008-05-02  Jb Evain  <jbevain@novell.com>
265         * Expression.cs: make Emit virtual instead of abstract,
266         to allow externals libraries to extend Expression.
267         Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
269 2008-04-29  Jb Evain  <jbevain@novell.com>
271         * UnaryExpression.cs (EmitPrimitiveConversion): implement.
273 2008-04-28  Jb Evain  <jbevain@novell.com>
275         * EmitContext.cs: deal with globals when encountering them while
276         compiling, and not ahead of time with a dedicated visitor.
278 2008-04-27  Jb Evain  <jbevain@novell.com>
280         * ConstantExpression.cs (Emit): emit properly null nullable types.
282 2008-04-27  Jb Evain  <jbevain@novell.com>
284         * Expression.cs: improve method finder.
286 2008-04-24  Jb Evain  <jbevain@novell.com>
288         * UnaryExpression.cs, EmitContext.cs: implement compilation
289         of Quote as a global load.
291 2008-04-23  Jb Evain  <jbevain@novell.com>
293         * UnaryExpression.cs: start implementing EmitConvert.
295 2008-04-23  Jb Evain  <jbevain@novell.com>
297         * ConstantExpression.cs (Emit): properly Emit null constants.
299 2008-04-23  Jb Evain  <jbevain@novell.com>
301         * Expression.cs (Constant): check for assignability, not for type
302         equality, when a type is passed.
304 2008-04-23  Jb Evain  <jbevain@novell.com>
306         * ExpressionPrinter.cs: ToString convert properly.
308 2008-04-22  Jb Evain  <jbevain@novell.com>
310         * UnaryExpression.cs: implement IsLiftedToNull properly.
311         * Expression.cs (Convert, ConvertChecked): implemented computing
312         of IsLifted and IsLiftedToNull for conversions.
314 2008-04-22  Jb Evain  <jbevain@novell.com>
316         * Expression.cs (Convert, ConvertChecked): implement.
318 2008-04-21  Jb Evain  <jbevain@novell.com>
320         * Expression.cs (Call): don't rely on the fact that if the
321         instance expression is null, then it's a static call. Explicitely
322         check on the MethodInfo for that.
323         * EmitContext.cs (EmitCall): same pattern.
325 2008-04-20  Jb Evain  <jbevain@novell.com>
327         * MemberMemberBinding.cs (Emit): implement.
329 2008-04-19  Jb Evain  <jbevain@novell.com>
331         * EmitContext.cs: infrastructure work to attach a compiled
332         lambda expression to an execution scope, and to detect and store
333         external globals in the scope.
334         * ConstantExpression.cs: load globals from the scope.
336 2008-04-19  Jb Evain  <jbevain@novell.com>
338         * ExpressionVisitor.cs (Visit): don't die because of Power.
340 2008-04-09  Jb Evain  <jbevain@novell.com>
342         * Expression.cs: check for illegal booleab unary expressions.
344 2008-04-09  Jb Evain  <jbevain@novell.com>
346         * UnaryExpression.cs: implement compilation of negate.
348 2008-04-09  Jb Evain  <jbevain@novell.com>
350         * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
351         to null for simple unary operators. Implement Not compilation.
353 2008-04-08  Jb Evain  <jbevain@novell.com>
355         * ElementInit.cs: emit pop if the add method doesn't return void.
357 2008-03-20  Jb Evain  <jbevain@novell.com>
359         * Expression.cs: use the new and more complete IsAssignableTo
360         instead of IsAssignableFrom.
362 2008-03-19  Jb Evain  <jbevain@novell.com>
364         * LambdaExpression.cs: use the new standardified IsAssignableTo,
365         fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
367 2008-03-19  Jb Evain  <jbevain@novell.com>
369         * Extensions.cs (Type.IsAssignableTo): deal with arrays.
371 2008-03-13  Jb Evain  <jbevain@novell.com>
373         * NewArrayExpression.cs (EmitNewArrayBounds): implement.
375 2008-03-12  Jb Evain  <jbevain@novell.com>
377         * NewArrayExpression.cs (Emit): naive implementation of emit support
378         for array initialization.
380 2008-03-11  Jb Evain  <jbevain@novell.com>
382         * BinaryExpression.cs: very naive implementation of emitting
383         array accesses.
385 2008-03-11  Jb Evain  <jbevain@novell.com>
387         * *.cs: Move the different Emit* helpers to EmitContext,
388         so that they get used more naturally by the non Expression
389         types.
391 2008-03-10  Jb Evain  <jbevain@novell.com>
393         * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
394         * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
396 2008-03-10  Jb Evain  <jbevain@novell.com>
398         * TypeBinaryExpression.cs (Emit): implement.
400 2008-03-08  Jb Evain  <jbevain@novell.com>
402         * MemberListBinding.cs (Emit): implement.
403         * MemberBinding.cs (EmitLoadMember): add helper.
405 2008-03-08  Jb Evain  <jbevain@novell.com>
407         * MemberAssignment.cs (Emit): implement.
409 2008-03-08  Jb Evain  <jbevain@novell.com>
411         * ElementInit.cs (Emit): implement.
413 2008-03-06  Jb Evain  <jbevain@novell.com>
415         * EmitContext.cs: the DebugContext delegate the CreateDelegate
416         to a DynamicContext to avoid visibility issues in debug mode.
418 2008-03-06  Jb Evain  <jbevain@novell.com>
420         * EmitContext.cs: Lambda methods bypass JIT visibility checks.
422 2008-03-06  Jb Evain  <jbevain@novell.com>
424         * MethodCallExpression.cs, Expression.cs: refactor method calling
425         into a more sophisticated EmitCall in Expression.
426         * InvocationExpression.cs (Emit): implement using the previous EmitCall.
428 2008-03-06  Jb Evain  <jbevain@novell.com>
430         * Expression.cs: add a EmitCall helper.
431         * MemberExpression.cs: implement property access.
433 2008-03-06  Jb Evain  <jbevain@novell.com>
435         * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
436         * MemberExpression.cs: use EmitLoad to load the instance field if needed.
438 2008-03-06  Jb Evain  <jbevain@novell.com>
440         * BinaryExpression.cs, Expression.cs: move EmitStored from
441         BinaryExpression to Expression.
442         * MethodCallExpression.cs: allow method calls on structs.
444 2008-03-05  Jb Evain  <jbevain@novell.com>
446         * Expression.cs: Fix the Call method which takes an array
447         of type arguments.
449 2008-03-05  Jb Evain  <jbevain@novell.com>
451         * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
453 2008-02-26  Jb Evain  <jbevain@novell.com>
455         * Expression.cs (Call): Guess the parameters type from the argument
456         types if needed.
458 2008-02-25  Jb Evain  <jbevain@novell.com>
460         * NewExpression.cs (Emit): deal with value types construction.
462 2008-02-25  Jb Evain  <jbevain@novell.com>
464         * Expression.cs, NewExpression.cs: deal with the fact that value types
465         don't have a parameterless constructor.
467 2008-02-24  Jb Evain  <jbevain@novell.com>
469         * LambdaExpression.cs, EmitContext.cs: make compilation
470         of delegate returning void work.
472 2008-02-24  Jb Evain  <jbevain@novell.com>
474         * MethodCallExpression.cs: emit call or callvirt depending
475         on the virtuality of the method.
477 2008-02-24  Jb Evain  <jbevain@novell.com>
479         * LambdaExpression.cs: properly format error message.
481 2008-02-21  Jb Evain  <jbevain@novell.com>
483         * BinaryExpression.cs (EmitCoalesce): fix setup_null.
485 2008-02-21  Jb Evain  <jbevain@novell.com>
487         * BinaryExpression.cs (Emit): fix the both_are_null case.
489 2008-02-20  Jb Evain  <jbevain@novell.com>
491         * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
493 2008-02-20  Jb Evain  <jbevain@novell.com>
495         * Expression.cs, ExpressionPrinter.cs: implement ListInit.
497 2008-02-19  Jb Evain  <jbevain@novell.com>
499         * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
501 2008-02-19  Jb Evain  <jbevain@novell.com>
503         * Expression.cs, ExpressionPrinter.cs: implement last New
504         overload for anonymous types.
506 2008-02-08  Jb Evain  <jbevain@novell.com>
508         * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
509                 add support for Invoke.
511 2008-02-04  Jb Evain  <jbevain@novell.com>
513         * ExpressionPrinter.cs: fix printing of MemberListBinding.
515 2008-02-04  Jb Evain  <jbevain@novell.com>
517         * Expression.cs, NewExpression.cs: make New(Type) test pass.
519 2008-02-04  Jb Evain  <jbevain@novell.com>
521         * ExpressionPrinter.cs: fix and clean printing of ElementInit.
523 2008-02-02  Jb Evain  <jbevain@novell.com>
525         * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
527 2008-02-02  Jb Evain  <jbevain@novell.com>
529         * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
531 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
533         * Expression.cs, ExpressionPrinter.cs:Add ListBind
535 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
537         * Expression.cs, ExpressionPrinter.cs:Add Elementinit
539 2008-01-31  Jb Evain  <jbevain@novell.com>
541         * UnaryExpression.cs: emit array length.
543 2008-01-31  Jb Evain  <jbevain@novell.com>
545         * MemberExpression.cs: Simple support for emitting fields.
547 2008-01-30  Jb Evain  <jbevain@novell.com>
549         * MethodCallExpression.cs: very naive implementation of Emit.
551 2008-01-30  Jb Evain  <jbevain@novell.com>
553         * NewExpression.cs: add Emit support for reference types.
555 2008-01-30  Jb Evain  <jbevain@novell.com>
557         * LambdaExpression.cs, EmitContext.cs: small refactoring.
558         Extract the different EmitContexts to their own file.
560 2008-01-29  Jb Evain  <jbevain@novell.com>
562         * MethodCallExpression.cs, Expression.cs: complete Calls.
564 2008-01-29  Jb Evain  <jbevain@novell.com>
566         * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
567         implement the first flavors of New.
569 2008-01-27  Jb Evain  <jbevain@novell.com>
571         * ConditionalExpression.cs: implement Emit.
573 2008-01-27  Jb Evain  <jbevain@novell.com>
575         * Expression.cs: implement the last Lambda method.
577 2008-01-27  Jb Evain  <jbevain@novell.com>
579         * LambdaExpression.cs: fix the Type of the LambdaExpressions.
581 2008-01-27  Olivier Dufour  <olivier.duff@gmail.com>
583         * Expression.cs, InvocationExpession.cs,
584         ListInitExpression.cs, MemberInitExpression.cs
585         NewExpression.cs : Add all missing
586         constructor in Expressions and remove the base one
588 2008-01-25  Jb Evain  <jbevain@novell.com>
590         * Expression.cs, ExpressionPrinter.cs: implement Bind.
592 2008-01-25  Jb Evain  <jbevain@novell.com>
594         * MemberMemberBinding.cs, MemberListBinding.cs,
595         MemberAssignment.cs, MemberBinding.cs:
596         add constructors.
598 2008-01-25  Jb Evain  <jbevain@novell.com>
600         * Expression.cs: implement PropertyOrField.
602 2008-01-24  Jb Evain  <jbevain@novell.com>
604         * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
605         implement Field and Property.
607 2008-01-22  Miguel de Icaza  <miguel@novell.com>
609         * BinaryExpression.cs: Unleash the power of cut and paste.
611         Bring a bunch of operatros from mcs/expression.cs
613         * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
614         used those from mcs, that was wrong.   use the proper ones, clean
615         up the result.
617         * BinaryExpression.cs: Add method invocations for binary methods.
619 2008-01-22  Jb Evain  <jbevain@novell.com>
621         * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
623 2008-01-22  Jb Evain  <jbevain@novell.com>
625         * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
626         implement Expression.NewArrayBounds.
628 2008-01-22  Jb Evain  <jbevain@novell.com>
630         * ExpressionPrinter.cs: fix Lambda and Equal.
632 2008-01-22  Miguel de Icaza  <miguel@novell.com>
634         * BinaryExpression.cs (EmitCoalesce): Add support for emitting
635         code for Coalesce.
637         TODO: this does not use the "Conversion" Lambda, which am not sure
638         who generates this or what it is used for.
640         (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
642         * Expression.cs: Add support for Coalesce.
643         (BinaryCoreCheck): Move more checking here, instead of the helper
644         routines, will remove them next.
646         * LambdaExpression.cs (Compile): Create the delegate last, so we
647         manage to save the assembly while debugging in case of error
649 2008-01-21  Miguel de Icaza  <miguel@novell.com>
651         * Expression.cs (BinaryCoreCheck): Add checking for a few
652         operators here (to avoid doing a second pass, handles AndAlso and
653         OrElse).
655         (AndAlso, OrElse): Add some code.
657         * BinaryExpression.cs: Instead of using GetValueOrDefault use
658         get_Value, as we already probed for the lack of value.
660         Split out support for And/Or to a separate routine as the code is
661         not very easy to share with the arithmetics code.
663 2008-01-21  Marek Safar  <marek.safar@gmail.com>
665         * BinaryExpression.cs: Fixed initobj initialization.
667 2008-01-21  Jb Evain  <jbevain@novell.com>
669         * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
670         Move the IsUnsigned helper from BinaryExpression to Expression,
671         so it can be used in UnaryExpression.
673 2008-01-21  Miguel de Icaza  <miguel@novell.com>
675         * Start code generation for nullables, currently this generates
676         incorrect code for things like:
678         Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
679         e2.Compile ().Invoke (null, 3))
681         This should return null, but returns something else.
683         * Introduce LINQ_DBG env variable, which generates a linq file in
684         /tmp;   It currently does not work as well as it should, as the
685         Func<> parameters do not mwatch the generated method.
686         Investigate.
689 2008-01-20  Miguel de Icaza  <miguel@novell.com>
691         Introduce support for Nullable arguments, no code is generated for
692         these yet, its only tests + node creation behavior at this point.
694         * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
695         as operators, they must both be nullable.
697         NullableTypes in the arguments are transformed into the underlying
698         values when doing the method validation.
700 2008-01-18  Miguel de Icaza  <miguel@novell.com>
702         * ParameterExpression.cs: Add emit support.
704 2008-01-18  Jb Evain  <jbevain@novell.com>
706         * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
708 2008-01-18  Miguel de Icaza  <miguel@novell.com>
710         * BinaryExpression.cs: Add support for emitting code for some
711         operators (ported from the Mono C# compiler).
713         Add tests.
715 2008-01-17  Miguel de Icaza  <miguel@novell.com>
717         Beginning of code generation framework for Linq.Expressions.
718         Some code was borrowed by from the C# compiler
720         * Expression_T.cs: Fill in the blanks.
722         * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
723         of codegen.
725         * ConstantExpression.cs: Mostly done, need to write tests for
726         non-fundamental types and other ValueType initializations.
728 2008-01-17  Jb Evain  <jbevain@novell.com>
730         * Expression.cs: implement MakeMemberAccess.
732 2008-01-17  Jb Evain  <jbevain@novell.com>
734         * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
735         implement ArrayIndex.
737 2008-01-17  Jb Evain  <jbevain@novell.com>
739         * Expression.cs: Use TypeCode for IsInt and IsNumber.
741 2008-01-16  Miguel de Icaza  <miguel@novell.com>
743         * Expression.cs: Add support for user-defined operators.
745         Put back various binary operator tests.
747 2008-01-16  Jb Evain  <jbevain@novell.com>
749         * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
751 2008-01-15  Miguel de Icaza  <miguel@novell.com>
753         * Expression.cs: Do validation on the method parameters and use
754         the return type if provided.
756 2008-01-15  Jb Evain  <jbevain@novell.com>
758         * MethodCallExpression.cs, Expression.cs
759         ExpressionPrinter.cs: Implement Call (Expression, ...)
761 2008-01-15  Jb Evain  <jbevain@novell.com>
763         * Expression.cs, ConditionalExpressionExpression.cs
764         ExpressionPrinter.cs : implement Expression.Condition.
766 2008-01-15  Jb Evain  <jbevain@novell.com>
768         * Expression.cs,
769         ParameterExpression.cs,
770         ExpressionPrinter.cs: implement Expression.Parameter
772 2008-01-15  Jb Evain  <jbevain@novell.com>
774         * ExpressionPrinter.cs (VisitBinaryExpression): simple
775         implementation (probably misses a few cases).
777 2008-01-14  Miguel de Icaza  <miguel@novell.com>
779         * Expression.cs: Bring back the (most) of binary operators.  Added
780         type checking as well and reorganized the source file by topic
781         instead of alphabetical sorting.
783 2008-01-14  Jb Evain  <jbevain@novell.com>
785         * ExpressionPrinter.cs: print ArrayLength.
787 2008-01-14  Jb Evain  <jbevain@novell.com>
789         * Expression.cs: TypeAs can't take value types.
790         * ExpressionPrinter.cs: implement TypeAs.
792 2008-01-14  Jb Evain  <jbevain@novell.com>
794         * Expression.cs: implement TypeIs.
795         * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
796         * TypeBinaryExpression.cs: add proper ctor.
798 2008-01-14  Jb Evain  <jbevain@novell.com>
800         * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
802 2008-01-14  Jb Evain  <jbevain@novell.com>
804         * BinaryExpression.cs,
805         * Expression.cs: revert part of Miguel's last patch.
806         MakeBinary is expected to call the appropriate factory
807         methods. Whose methods that are responsible for creating
808         the good BinaryExpression, wether they use a custom method
809         or not.
811 2008-01-14  Jb Evain  <jbevain@novell.com>
813         * Expression.cs: MakeUnary is expected to call the appropriate
814         factory methods.
816 2008-01-14  Miguel de Icaza  <miguel@novell.com>
818         * Expression.cs (Constant, MakeBinary and consumers of it): Some
819         more fill-up changes.
821         MakeBinary will need much more work to support user-provided
822         types.
824 2008-01-13  Jb Evain  <jbevain@novell.com>
826         * *.cs: fresh implementation.