1 2010-07-26 Jb Evain <jbevain@novell.com>
3 * EmitContext.cs: Properly call methods on enumerations.
6 2010-05-19 Jb Evain <jbevain@novell.com>
8 * ConstantExpression.cs: fix emission of nullable constants.
10 2010-01-08 Jb Evain <jbevain@novell.com>
12 * Expression.cs (Call): properly deal with zero length array
13 of type arguments for non generic methods. Fixes #568989.
15 2009-12-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
17 * Expression.cs: expression can be null for static getters. Patch from
18 Miguel de Icaza (miguel@novell.com).
20 2009-11-15 Jb Evain <jbevain@novell.com>
22 * Expression (Call): deal with lambda expression <> delegate
23 comparison when filtering methods.
26 2009-11-15 Jb Evain <jbevain@novell.com>
28 * Expression (Call): better filtering of generic methods.
31 2009-11-14 Jb Evain <jbevain@novell.com>
33 * UnaryExpression.cs: isolate quoted expressions.
34 * EmitContext.cs (ParameterReplacer): new helper type
35 to replace the parameters of isolated expressions.
38 2009-11-14 Jb Evain <jbevain@novell.com>
40 * ExpressionTransformer.cs: adjust return type of all
41 tranformation methods to make the transformer actually
44 2009-10-08 Jb Evain <jbevain@novell.com>
46 * LambdaExpression.cs (Compile): use the interpreter on MonoTouch.
48 2009-09-03 Jb Evain <jbevain@novell.com>
50 * ConstantExpression.cs (Emit): add support to emit DBNull values.
52 2009-09-03 Jb Evain <jbevain@novell.com>
54 * ConstantExpression.cs (Emit): add support for emitting
57 2009-03-05 Jb Evain <jbevain@novell.com>
60 * ParameterExpression.cs:
61 add support for hoisted locals.
63 2009-02-24 Jb Evain <jbevain@novell.com>
65 * Expression.cs (BinaryCoreCheck): fix comparison of enums
67 2009-02-23 Jb Evain <jbevain@novell.com>
69 * Expression.cs (IsNumber): actually decimal is rather a special
70 case, and not a primitive number.
72 2009-02-23 Jb Evain <jbevain@novell.com>
74 * Expression.cs (BinaryCoreCheck): add decimal operations
75 are provided by custom operators.
77 2008-12-17 Jb Evain <jbevain@novell.com>
79 * ExpressionTransformer.cs: fix VisitList.
81 2008-11-19 Jb Evain <jbevain@novell.com>
83 * Expression.cs: protect against open generic methods.
85 2008-10-08 Atsushi Enomoto <atsushi@ximian.com>
87 * Expression.cs : give us information about which type does not
90 2008-10-03 Jb Evain <jbevain@novell.com>
92 * Expression.cs: make sure we properly test complex generic methods
95 2008-09-22 Jb Evain <jbevain@novell.com>
97 * TypeBinaryExpression.cs: protect against testing void expressions.
100 2008-09-01 Jb Evain <jbevain@novell.com>
102 * MemberBinding.cs: make .ctor protected instead of public.
104 2008-09-01 Jb Evain <jbevain@novell.com>
106 * Expression.cs: guard against null parameters passed to Lambda.
108 2008-08-30 Marek Safar <marek.safar@gmail.com>
110 * MemberBinding.cs: Made MemberBinding ctor public
112 2008-08-07 Jb Evain <jbevain@novell.com>
114 * Expression.cs (GetAssociatedProperty): strengthen accessors
117 2008-08-02 Zoltan Varga <vargaz@gmail.com>
119 * BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
120 shift amount like mcs compiled code does.
122 2008-07-19 Jb Evain <jbevain@novell.com>
124 * Expression.cs (Call, Field, Property): disallow instance arguments
125 on static members. See ms connect #339351.
127 2008-07-18 Jb Evain <jbevain@novell.com>
129 * Expression.cs, BinaryExpression.cs: fix retrieval of true and false
132 2008-06-20 Jb Evain <jbevain@novell.com>
134 * LambdaExpression.cs, EmitContext.cs: refactor the emit context to
135 handle the fact that lambdas are compiled in a general context where
136 they share globals but are also able to use parameters from parent lambdas.
137 (Although parameter sharing is not implemented yet).
139 * BinaryExpression.cs (fix converted coalesce case to use the lambda
142 2008-06-09 Jb Evain <jbevain@novell.com>
144 * Extensions.cs (Type.IsExpression): add
145 * Expression.cs (CheckMethodArguments): modify the argument list
146 to quote arguments when if necessary.
149 2008-06-09 Jb Evain <jbevain@novell.com>
151 * Expression.cs (CheckLambda): quote body if required.
153 2008-06-07 Jb Evain <jbevain@novell.com>
155 * BinaryExpression.cs (EmitConvertedCoalesce): implement.
157 2008-06-05 Jb Evain <jbevain@novell.com>
159 * Expression.cs (GetUserConversionMethod): check for convertion
160 operators on both types.
162 2008-06-05 Jb Evain <jbevain@novell.com>
164 * Expression.cs (ConditionalBinaryCheck): if a method is passed,
165 checked that the operators true and false are also defined.
167 2008-06-05 Jb Evain <jbevain@novell.com>
169 * BinaryExpression.cs (Emit): deal with binary expressions
170 where only the left is lifted.
172 2008-06-05 Jb Evain <jbevain@novell.com>
174 * Extensions.cs: Add Type.MakeNullableType helper.
175 * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
176 creat lifted/lifted to null/not lifted
177 user defined binary expressions.
178 * BinaryExpression.cs (Emit): implement compilation of
179 lifted and lifted to null user defined binary operators.
181 2008-06-05 Jb Evain <jbevain@novell.com>
183 * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
184 unary expressions with user defined operators.
185 * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
187 2008-05-30 Jb Evain <jbevain@novell.com>
189 * UnaryExpression.cs (Emit): fix convertion from nullable
192 2008-05-29 Jb Evain <jbevain@novell.com>
194 * Expression.cs (Power): allow bool?.
195 * BinaryExpression.cs: properly deal with lifted power expression.
197 2008-05-29 Jb Evain <jbevain@novell.com>
199 * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
201 2008-05-29 Jb Evain <jbevain@novell.com>
203 * BinaryExpression.cs (Emit): properly emit lifted to null
204 relational binary expressions.
206 2008-05-28 Jb Evain <jbevain@novell.com>
208 * BinaryExpression.cs (Emit): rework compilation of
209 arithmetic and relational lifted binary expressions.
211 2008-05-28 Jb Evain <jbevain@novell.com>
213 * UnaryExpression.cs (Emit): implement support for compiling
214 lifted unary expressions.
216 2008-05-27 Jb Evain <jbevain@novell.com>
218 * UnaryExpression.cs (EmitConvert): implement nullable to nullable
221 2008-05-20 Roei Erez <roeie@mainsoft.com>
223 * Extensions.cs: Add 'IsGenericImplementationOf' extension method
225 2008-05-15 Jb Evain <jbevain@novell.com>
227 * UnaryExpression.cs, EmitContext.cs: emit convert from and
230 2008-05-15 Jb Evain <jbevain@novell.com>
232 * Extensions.cs: add a few useful extensions such as
233 IsGenericInstanceOf and MakeGenericFrom.
235 2008-05-15 Roei Erez <roeie@mainsoft.com>
237 * ExpressionTransformer.cs: Add a base class for transforming Expressions.
238 In use at AsQueryable() implementation.
240 2008-05-14 Jb Evain <jbevain@novell.com>
242 * EmitContext.cs: only generate a new lambda name if we're in
245 2008-05-14 Jb Evain <jbevain@novell.com>
247 * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
248 inside an ET, compile it as a read of a global. Based on a patch
249 by Roei Erez <roeie@mainsoft.com>
251 2008-05-08 Jb Evain <jbevain@novell.com>
253 * Expression.cs, EmitContext.cs: deal with call to methods
254 with byref parameters.
256 2008-05-07 Roei Erez <roeie@mainsoft.com>
258 * Add ifdef TARGET_JVM
260 2008-05-03 Jb Evain <jbevain@novell.com>
262 * LambdaExpression.cs: move checks to Expression
263 * Expression.cs: apply check for both typed and untyped lambda
264 creation, so that the constructor does not throws exception.
265 Needed to create instances of Expression<> for untyped lambda
266 factory method. Fixes #386322.
268 2008-05-02 Jb Evain <jbevain@novell.com>
270 * Expression.cs: make Emit virtual instead of abstract,
271 to allow externals libraries to extend Expression.
272 Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
274 2008-04-29 Jb Evain <jbevain@novell.com>
276 * UnaryExpression.cs (EmitPrimitiveConversion): implement.
278 2008-04-28 Jb Evain <jbevain@novell.com>
280 * EmitContext.cs: deal with globals when encountering them while
281 compiling, and not ahead of time with a dedicated visitor.
283 2008-04-27 Jb Evain <jbevain@novell.com>
285 * ConstantExpression.cs (Emit): emit properly null nullable types.
287 2008-04-27 Jb Evain <jbevain@novell.com>
289 * Expression.cs: improve method finder.
291 2008-04-24 Jb Evain <jbevain@novell.com>
293 * UnaryExpression.cs, EmitContext.cs: implement compilation
294 of Quote as a global load.
296 2008-04-23 Jb Evain <jbevain@novell.com>
298 * UnaryExpression.cs: start implementing EmitConvert.
300 2008-04-23 Jb Evain <jbevain@novell.com>
302 * ConstantExpression.cs (Emit): properly Emit null constants.
304 2008-04-23 Jb Evain <jbevain@novell.com>
306 * Expression.cs (Constant): check for assignability, not for type
307 equality, when a type is passed.
309 2008-04-23 Jb Evain <jbevain@novell.com>
311 * ExpressionPrinter.cs: ToString convert properly.
313 2008-04-22 Jb Evain <jbevain@novell.com>
315 * UnaryExpression.cs: implement IsLiftedToNull properly.
316 * Expression.cs (Convert, ConvertChecked): implemented computing
317 of IsLifted and IsLiftedToNull for conversions.
319 2008-04-22 Jb Evain <jbevain@novell.com>
321 * Expression.cs (Convert, ConvertChecked): implement.
323 2008-04-21 Jb Evain <jbevain@novell.com>
325 * Expression.cs (Call): don't rely on the fact that if the
326 instance expression is null, then it's a static call. Explicitely
327 check on the MethodInfo for that.
328 * EmitContext.cs (EmitCall): same pattern.
330 2008-04-20 Jb Evain <jbevain@novell.com>
332 * MemberMemberBinding.cs (Emit): implement.
334 2008-04-19 Jb Evain <jbevain@novell.com>
336 * EmitContext.cs: infrastructure work to attach a compiled
337 lambda expression to an execution scope, and to detect and store
338 external globals in the scope.
339 * ConstantExpression.cs: load globals from the scope.
341 2008-04-19 Jb Evain <jbevain@novell.com>
343 * ExpressionVisitor.cs (Visit): don't die because of Power.
345 2008-04-09 Jb Evain <jbevain@novell.com>
347 * Expression.cs: check for illegal booleab unary expressions.
349 2008-04-09 Jb Evain <jbevain@novell.com>
351 * UnaryExpression.cs: implement compilation of negate.
353 2008-04-09 Jb Evain <jbevain@novell.com>
355 * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
356 to null for simple unary operators. Implement Not compilation.
358 2008-04-08 Jb Evain <jbevain@novell.com>
360 * ElementInit.cs: emit pop if the add method doesn't return void.
362 2008-03-20 Jb Evain <jbevain@novell.com>
364 * Expression.cs: use the new and more complete IsAssignableTo
365 instead of IsAssignableFrom.
367 2008-03-19 Jb Evain <jbevain@novell.com>
369 * LambdaExpression.cs: use the new standardified IsAssignableTo,
370 fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
372 2008-03-19 Jb Evain <jbevain@novell.com>
374 * Extensions.cs (Type.IsAssignableTo): deal with arrays.
376 2008-03-13 Jb Evain <jbevain@novell.com>
378 * NewArrayExpression.cs (EmitNewArrayBounds): implement.
380 2008-03-12 Jb Evain <jbevain@novell.com>
382 * NewArrayExpression.cs (Emit): naive implementation of emit support
383 for array initialization.
385 2008-03-11 Jb Evain <jbevain@novell.com>
387 * BinaryExpression.cs: very naive implementation of emitting
390 2008-03-11 Jb Evain <jbevain@novell.com>
392 * *.cs: Move the different Emit* helpers to EmitContext,
393 so that they get used more naturally by the non Expression
396 2008-03-10 Jb Evain <jbevain@novell.com>
398 * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
399 * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
401 2008-03-10 Jb Evain <jbevain@novell.com>
403 * TypeBinaryExpression.cs (Emit): implement.
405 2008-03-08 Jb Evain <jbevain@novell.com>
407 * MemberListBinding.cs (Emit): implement.
408 * MemberBinding.cs (EmitLoadMember): add helper.
410 2008-03-08 Jb Evain <jbevain@novell.com>
412 * MemberAssignment.cs (Emit): implement.
414 2008-03-08 Jb Evain <jbevain@novell.com>
416 * ElementInit.cs (Emit): implement.
418 2008-03-06 Jb Evain <jbevain@novell.com>
420 * EmitContext.cs: the DebugContext delegate the CreateDelegate
421 to a DynamicContext to avoid visibility issues in debug mode.
423 2008-03-06 Jb Evain <jbevain@novell.com>
425 * EmitContext.cs: Lambda methods bypass JIT visibility checks.
427 2008-03-06 Jb Evain <jbevain@novell.com>
429 * MethodCallExpression.cs, Expression.cs: refactor method calling
430 into a more sophisticated EmitCall in Expression.
431 * InvocationExpression.cs (Emit): implement using the previous EmitCall.
433 2008-03-06 Jb Evain <jbevain@novell.com>
435 * Expression.cs: add a EmitCall helper.
436 * MemberExpression.cs: implement property access.
438 2008-03-06 Jb Evain <jbevain@novell.com>
440 * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
441 * MemberExpression.cs: use EmitLoad to load the instance field if needed.
443 2008-03-06 Jb Evain <jbevain@novell.com>
445 * BinaryExpression.cs, Expression.cs: move EmitStored from
446 BinaryExpression to Expression.
447 * MethodCallExpression.cs: allow method calls on structs.
449 2008-03-05 Jb Evain <jbevain@novell.com>
451 * Expression.cs: Fix the Call method which takes an array
454 2008-03-05 Jb Evain <jbevain@novell.com>
456 * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
458 2008-02-26 Jb Evain <jbevain@novell.com>
460 * Expression.cs (Call): Guess the parameters type from the argument
463 2008-02-25 Jb Evain <jbevain@novell.com>
465 * NewExpression.cs (Emit): deal with value types construction.
467 2008-02-25 Jb Evain <jbevain@novell.com>
469 * Expression.cs, NewExpression.cs: deal with the fact that value types
470 don't have a parameterless constructor.
472 2008-02-24 Jb Evain <jbevain@novell.com>
474 * LambdaExpression.cs, EmitContext.cs: make compilation
475 of delegate returning void work.
477 2008-02-24 Jb Evain <jbevain@novell.com>
479 * MethodCallExpression.cs: emit call or callvirt depending
480 on the virtuality of the method.
482 2008-02-24 Jb Evain <jbevain@novell.com>
484 * LambdaExpression.cs: properly format error message.
486 2008-02-21 Jb Evain <jbevain@novell.com>
488 * BinaryExpression.cs (EmitCoalesce): fix setup_null.
490 2008-02-21 Jb Evain <jbevain@novell.com>
492 * BinaryExpression.cs (Emit): fix the both_are_null case.
494 2008-02-20 Jb Evain <jbevain@novell.com>
496 * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
498 2008-02-20 Jb Evain <jbevain@novell.com>
500 * Expression.cs, ExpressionPrinter.cs: implement ListInit.
502 2008-02-19 Jb Evain <jbevain@novell.com>
504 * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
506 2008-02-19 Jb Evain <jbevain@novell.com>
508 * Expression.cs, ExpressionPrinter.cs: implement last New
509 overload for anonymous types.
511 2008-02-08 Jb Evain <jbevain@novell.com>
513 * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
514 add support for Invoke.
516 2008-02-04 Jb Evain <jbevain@novell.com>
518 * ExpressionPrinter.cs: fix printing of MemberListBinding.
520 2008-02-04 Jb Evain <jbevain@novell.com>
522 * Expression.cs, NewExpression.cs: make New(Type) test pass.
524 2008-02-04 Jb Evain <jbevain@novell.com>
526 * ExpressionPrinter.cs: fix and clean printing of ElementInit.
528 2008-02-02 Jb Evain <jbevain@novell.com>
530 * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
532 2008-02-02 Jb Evain <jbevain@novell.com>
534 * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
536 2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
538 * Expression.cs, ExpressionPrinter.cs:Add ListBind
540 2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
542 * Expression.cs, ExpressionPrinter.cs:Add Elementinit
544 2008-01-31 Jb Evain <jbevain@novell.com>
546 * UnaryExpression.cs: emit array length.
548 2008-01-31 Jb Evain <jbevain@novell.com>
550 * MemberExpression.cs: Simple support for emitting fields.
552 2008-01-30 Jb Evain <jbevain@novell.com>
554 * MethodCallExpression.cs: very naive implementation of Emit.
556 2008-01-30 Jb Evain <jbevain@novell.com>
558 * NewExpression.cs: add Emit support for reference types.
560 2008-01-30 Jb Evain <jbevain@novell.com>
562 * LambdaExpression.cs, EmitContext.cs: small refactoring.
563 Extract the different EmitContexts to their own file.
565 2008-01-29 Jb Evain <jbevain@novell.com>
567 * MethodCallExpression.cs, Expression.cs: complete Calls.
569 2008-01-29 Jb Evain <jbevain@novell.com>
571 * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
572 implement the first flavors of New.
574 2008-01-27 Jb Evain <jbevain@novell.com>
576 * ConditionalExpression.cs: implement Emit.
578 2008-01-27 Jb Evain <jbevain@novell.com>
580 * Expression.cs: implement the last Lambda method.
582 2008-01-27 Jb Evain <jbevain@novell.com>
584 * LambdaExpression.cs: fix the Type of the LambdaExpressions.
586 2008-01-27 Olivier Dufour <olivier.duff@gmail.com>
588 * Expression.cs, InvocationExpession.cs,
589 ListInitExpression.cs, MemberInitExpression.cs
590 NewExpression.cs : Add all missing
591 constructor in Expressions and remove the base one
593 2008-01-25 Jb Evain <jbevain@novell.com>
595 * Expression.cs, ExpressionPrinter.cs: implement Bind.
597 2008-01-25 Jb Evain <jbevain@novell.com>
599 * MemberMemberBinding.cs, MemberListBinding.cs,
600 MemberAssignment.cs, MemberBinding.cs:
603 2008-01-25 Jb Evain <jbevain@novell.com>
605 * Expression.cs: implement PropertyOrField.
607 2008-01-24 Jb Evain <jbevain@novell.com>
609 * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
610 implement Field and Property.
612 2008-01-22 Miguel de Icaza <miguel@novell.com>
614 * BinaryExpression.cs: Unleash the power of cut and paste.
616 Bring a bunch of operatros from mcs/expression.cs
618 * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
619 used those from mcs, that was wrong. use the proper ones, clean
622 * BinaryExpression.cs: Add method invocations for binary methods.
624 2008-01-22 Jb Evain <jbevain@novell.com>
626 * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
628 2008-01-22 Jb Evain <jbevain@novell.com>
630 * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
631 implement Expression.NewArrayBounds.
633 2008-01-22 Jb Evain <jbevain@novell.com>
635 * ExpressionPrinter.cs: fix Lambda and Equal.
637 2008-01-22 Miguel de Icaza <miguel@novell.com>
639 * BinaryExpression.cs (EmitCoalesce): Add support for emitting
642 TODO: this does not use the "Conversion" Lambda, which am not sure
643 who generates this or what it is used for.
645 (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
647 * Expression.cs: Add support for Coalesce.
648 (BinaryCoreCheck): Move more checking here, instead of the helper
649 routines, will remove them next.
651 * LambdaExpression.cs (Compile): Create the delegate last, so we
652 manage to save the assembly while debugging in case of error
654 2008-01-21 Miguel de Icaza <miguel@novell.com>
656 * Expression.cs (BinaryCoreCheck): Add checking for a few
657 operators here (to avoid doing a second pass, handles AndAlso and
660 (AndAlso, OrElse): Add some code.
662 * BinaryExpression.cs: Instead of using GetValueOrDefault use
663 get_Value, as we already probed for the lack of value.
665 Split out support for And/Or to a separate routine as the code is
666 not very easy to share with the arithmetics code.
668 2008-01-21 Marek Safar <marek.safar@gmail.com>
670 * BinaryExpression.cs: Fixed initobj initialization.
672 2008-01-21 Jb Evain <jbevain@novell.com>
674 * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
675 Move the IsUnsigned helper from BinaryExpression to Expression,
676 so it can be used in UnaryExpression.
678 2008-01-21 Miguel de Icaza <miguel@novell.com>
680 * Start code generation for nullables, currently this generates
681 incorrect code for things like:
683 Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
684 e2.Compile ().Invoke (null, 3))
686 This should return null, but returns something else.
688 * Introduce LINQ_DBG env variable, which generates a linq file in
689 /tmp; It currently does not work as well as it should, as the
690 Func<> parameters do not mwatch the generated method.
694 2008-01-20 Miguel de Icaza <miguel@novell.com>
696 Introduce support for Nullable arguments, no code is generated for
697 these yet, its only tests + node creation behavior at this point.
699 * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
700 as operators, they must both be nullable.
702 NullableTypes in the arguments are transformed into the underlying
703 values when doing the method validation.
705 2008-01-18 Miguel de Icaza <miguel@novell.com>
707 * ParameterExpression.cs: Add emit support.
709 2008-01-18 Jb Evain <jbevain@novell.com>
711 * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
713 2008-01-18 Miguel de Icaza <miguel@novell.com>
715 * BinaryExpression.cs: Add support for emitting code for some
716 operators (ported from the Mono C# compiler).
720 2008-01-17 Miguel de Icaza <miguel@novell.com>
722 Beginning of code generation framework for Linq.Expressions.
723 Some code was borrowed by from the C# compiler
725 * Expression_T.cs: Fill in the blanks.
727 * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
730 * ConstantExpression.cs: Mostly done, need to write tests for
731 non-fundamental types and other ValueType initializations.
733 2008-01-17 Jb Evain <jbevain@novell.com>
735 * Expression.cs: implement MakeMemberAccess.
737 2008-01-17 Jb Evain <jbevain@novell.com>
739 * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
740 implement ArrayIndex.
742 2008-01-17 Jb Evain <jbevain@novell.com>
744 * Expression.cs: Use TypeCode for IsInt and IsNumber.
746 2008-01-16 Miguel de Icaza <miguel@novell.com>
748 * Expression.cs: Add support for user-defined operators.
750 Put back various binary operator tests.
752 2008-01-16 Jb Evain <jbevain@novell.com>
754 * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
756 2008-01-15 Miguel de Icaza <miguel@novell.com>
758 * Expression.cs: Do validation on the method parameters and use
759 the return type if provided.
761 2008-01-15 Jb Evain <jbevain@novell.com>
763 * MethodCallExpression.cs, Expression.cs
764 ExpressionPrinter.cs: Implement Call (Expression, ...)
766 2008-01-15 Jb Evain <jbevain@novell.com>
768 * Expression.cs, ConditionalExpressionExpression.cs
769 ExpressionPrinter.cs : implement Expression.Condition.
771 2008-01-15 Jb Evain <jbevain@novell.com>
774 ParameterExpression.cs,
775 ExpressionPrinter.cs: implement Expression.Parameter
777 2008-01-15 Jb Evain <jbevain@novell.com>
779 * ExpressionPrinter.cs (VisitBinaryExpression): simple
780 implementation (probably misses a few cases).
782 2008-01-14 Miguel de Icaza <miguel@novell.com>
784 * Expression.cs: Bring back the (most) of binary operators. Added
785 type checking as well and reorganized the source file by topic
786 instead of alphabetical sorting.
788 2008-01-14 Jb Evain <jbevain@novell.com>
790 * ExpressionPrinter.cs: print ArrayLength.
792 2008-01-14 Jb Evain <jbevain@novell.com>
794 * Expression.cs: TypeAs can't take value types.
795 * ExpressionPrinter.cs: implement TypeAs.
797 2008-01-14 Jb Evain <jbevain@novell.com>
799 * Expression.cs: implement TypeIs.
800 * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
801 * TypeBinaryExpression.cs: add proper ctor.
803 2008-01-14 Jb Evain <jbevain@novell.com>
805 * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
807 2008-01-14 Jb Evain <jbevain@novell.com>
809 * BinaryExpression.cs,
810 * Expression.cs: revert part of Miguel's last patch.
811 MakeBinary is expected to call the appropriate factory
812 methods. Whose methods that are responsible for creating
813 the good BinaryExpression, wether they use a custom method
816 2008-01-14 Jb Evain <jbevain@novell.com>
818 * Expression.cs: MakeUnary is expected to call the appropriate
821 2008-01-14 Miguel de Icaza <miguel@novell.com>
823 * Expression.cs (Constant, MakeBinary and consumers of it): Some
824 more fill-up changes.
826 MakeBinary will need much more work to support user-provided
829 2008-01-13 Jb Evain <jbevain@novell.com>
831 * *.cs: fresh implementation.