1 2009-09-03 Jb Evain <jbevain@novell.com>
3 * ConstantExpression.cs (Emit): add support for emitting
6 2009-03-05 Jb Evain <jbevain@novell.com>
9 * ParameterExpression.cs:
10 add support for hoisted locals.
12 2009-02-24 Jb Evain <jbevain@novell.com>
14 * Expression.cs (BinaryCoreCheck): fix comparison of enums
16 2009-02-23 Jb Evain <jbevain@novell.com>
18 * Expression.cs (IsNumber): actually decimal is rather a special
19 case, and not a primitive number.
21 2009-02-23 Jb Evain <jbevain@novell.com>
23 * Expression.cs (BinaryCoreCheck): add decimal operations
24 are provided by custom operators.
26 2008-12-17 Jb Evain <jbevain@novell.com>
28 * ExpressionTransformer.cs: fix VisitList.
30 2008-11-19 Jb Evain <jbevain@novell.com>
32 * Expression.cs: protect against open generic methods.
34 2008-10-08 Atsushi Enomoto <atsushi@ximian.com>
36 * Expression.cs : give us information about which type does not
39 2008-10-03 Jb Evain <jbevain@novell.com>
41 * Expression.cs: make sure we properly test complex generic methods
44 2008-09-22 Jb Evain <jbevain@novell.com>
46 * TypeBinaryExpression.cs: protect against testing void expressions.
49 2008-09-01 Jb Evain <jbevain@novell.com>
51 * MemberBinding.cs: make .ctor protected instead of public.
53 2008-09-01 Jb Evain <jbevain@novell.com>
55 * Expression.cs: guard against null parameters passed to Lambda.
57 2008-08-30 Marek Safar <marek.safar@gmail.com>
59 * MemberBinding.cs: Made MemberBinding ctor public
61 2008-08-07 Jb Evain <jbevain@novell.com>
63 * Expression.cs (GetAssociatedProperty): strengthen accessors
66 2008-08-02 Zoltan Varga <vargaz@gmail.com>
68 * BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
69 shift amount like mcs compiled code does.
71 2008-07-19 Jb Evain <jbevain@novell.com>
73 * Expression.cs (Call, Field, Property): disallow instance arguments
74 on static members. See ms connect #339351.
76 2008-07-18 Jb Evain <jbevain@novell.com>
78 * Expression.cs, BinaryExpression.cs: fix retrieval of true and false
81 2008-06-20 Jb Evain <jbevain@novell.com>
83 * LambdaExpression.cs, EmitContext.cs: refactor the emit context to
84 handle the fact that lambdas are compiled in a general context where
85 they share globals but are also able to use parameters from parent lambdas.
86 (Although parameter sharing is not implemented yet).
88 * BinaryExpression.cs (fix converted coalesce case to use the lambda
91 2008-06-09 Jb Evain <jbevain@novell.com>
93 * Extensions.cs (Type.IsExpression): add
94 * Expression.cs (CheckMethodArguments): modify the argument list
95 to quote arguments when if necessary.
98 2008-06-09 Jb Evain <jbevain@novell.com>
100 * Expression.cs (CheckLambda): quote body if required.
102 2008-06-07 Jb Evain <jbevain@novell.com>
104 * BinaryExpression.cs (EmitConvertedCoalesce): implement.
106 2008-06-05 Jb Evain <jbevain@novell.com>
108 * Expression.cs (GetUserConversionMethod): check for convertion
109 operators on both types.
111 2008-06-05 Jb Evain <jbevain@novell.com>
113 * Expression.cs (ConditionalBinaryCheck): if a method is passed,
114 checked that the operators true and false are also defined.
116 2008-06-05 Jb Evain <jbevain@novell.com>
118 * BinaryExpression.cs (Emit): deal with binary expressions
119 where only the left is lifted.
121 2008-06-05 Jb Evain <jbevain@novell.com>
123 * Extensions.cs: Add Type.MakeNullableType helper.
124 * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
125 creat lifted/lifted to null/not lifted
126 user defined binary expressions.
127 * BinaryExpression.cs (Emit): implement compilation of
128 lifted and lifted to null user defined binary operators.
130 2008-06-05 Jb Evain <jbevain@novell.com>
132 * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
133 unary expressions with user defined operators.
134 * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
136 2008-05-30 Jb Evain <jbevain@novell.com>
138 * UnaryExpression.cs (Emit): fix convertion from nullable
141 2008-05-29 Jb Evain <jbevain@novell.com>
143 * Expression.cs (Power): allow bool?.
144 * BinaryExpression.cs: properly deal with lifted power expression.
146 2008-05-29 Jb Evain <jbevain@novell.com>
148 * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
150 2008-05-29 Jb Evain <jbevain@novell.com>
152 * BinaryExpression.cs (Emit): properly emit lifted to null
153 relational binary expressions.
155 2008-05-28 Jb Evain <jbevain@novell.com>
157 * BinaryExpression.cs (Emit): rework compilation of
158 arithmetic and relational lifted binary expressions.
160 2008-05-28 Jb Evain <jbevain@novell.com>
162 * UnaryExpression.cs (Emit): implement support for compiling
163 lifted unary expressions.
165 2008-05-27 Jb Evain <jbevain@novell.com>
167 * UnaryExpression.cs (EmitConvert): implement nullable to nullable
170 2008-05-20 Roei Erez <roeie@mainsoft.com>
172 * Extensions.cs: Add 'IsGenericImplementationOf' extension method
174 2008-05-15 Jb Evain <jbevain@novell.com>
176 * UnaryExpression.cs, EmitContext.cs: emit convert from and
179 2008-05-15 Jb Evain <jbevain@novell.com>
181 * Extensions.cs: add a few useful extensions such as
182 IsGenericInstanceOf and MakeGenericFrom.
184 2008-05-15 Roei Erez <roeie@mainsoft.com>
186 * ExpressionTransformer.cs: Add a base class for transforming Expressions.
187 In use at AsQueryable() implementation.
189 2008-05-14 Jb Evain <jbevain@novell.com>
191 * EmitContext.cs: only generate a new lambda name if we're in
194 2008-05-14 Jb Evain <jbevain@novell.com>
196 * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
197 inside an ET, compile it as a read of a global. Based on a patch
198 by Roei Erez <roeie@mainsoft.com>
200 2008-05-08 Jb Evain <jbevain@novell.com>
202 * Expression.cs, EmitContext.cs: deal with call to methods
203 with byref parameters.
205 2008-05-07 Roei Erez <roeie@mainsoft.com>
207 * Add ifdef TARGET_JVM
209 2008-05-03 Jb Evain <jbevain@novell.com>
211 * LambdaExpression.cs: move checks to Expression
212 * Expression.cs: apply check for both typed and untyped lambda
213 creation, so that the constructor does not throws exception.
214 Needed to create instances of Expression<> for untyped lambda
215 factory method. Fixes #386322.
217 2008-05-02 Jb Evain <jbevain@novell.com>
219 * Expression.cs: make Emit virtual instead of abstract,
220 to allow externals libraries to extend Expression.
221 Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
223 2008-04-29 Jb Evain <jbevain@novell.com>
225 * UnaryExpression.cs (EmitPrimitiveConversion): implement.
227 2008-04-28 Jb Evain <jbevain@novell.com>
229 * EmitContext.cs: deal with globals when encountering them while
230 compiling, and not ahead of time with a dedicated visitor.
232 2008-04-27 Jb Evain <jbevain@novell.com>
234 * ConstantExpression.cs (Emit): emit properly null nullable types.
236 2008-04-27 Jb Evain <jbevain@novell.com>
238 * Expression.cs: improve method finder.
240 2008-04-24 Jb Evain <jbevain@novell.com>
242 * UnaryExpression.cs, EmitContext.cs: implement compilation
243 of Quote as a global load.
245 2008-04-23 Jb Evain <jbevain@novell.com>
247 * UnaryExpression.cs: start implementing EmitConvert.
249 2008-04-23 Jb Evain <jbevain@novell.com>
251 * ConstantExpression.cs (Emit): properly Emit null constants.
253 2008-04-23 Jb Evain <jbevain@novell.com>
255 * Expression.cs (Constant): check for assignability, not for type
256 equality, when a type is passed.
258 2008-04-23 Jb Evain <jbevain@novell.com>
260 * ExpressionPrinter.cs: ToString convert properly.
262 2008-04-22 Jb Evain <jbevain@novell.com>
264 * UnaryExpression.cs: implement IsLiftedToNull properly.
265 * Expression.cs (Convert, ConvertChecked): implemented computing
266 of IsLifted and IsLiftedToNull for conversions.
268 2008-04-22 Jb Evain <jbevain@novell.com>
270 * Expression.cs (Convert, ConvertChecked): implement.
272 2008-04-21 Jb Evain <jbevain@novell.com>
274 * Expression.cs (Call): don't rely on the fact that if the
275 instance expression is null, then it's a static call. Explicitely
276 check on the MethodInfo for that.
277 * EmitContext.cs (EmitCall): same pattern.
279 2008-04-20 Jb Evain <jbevain@novell.com>
281 * MemberMemberBinding.cs (Emit): implement.
283 2008-04-19 Jb Evain <jbevain@novell.com>
285 * EmitContext.cs: infrastructure work to attach a compiled
286 lambda expression to an execution scope, and to detect and store
287 external globals in the scope.
288 * ConstantExpression.cs: load globals from the scope.
290 2008-04-19 Jb Evain <jbevain@novell.com>
292 * ExpressionVisitor.cs (Visit): don't die because of Power.
294 2008-04-09 Jb Evain <jbevain@novell.com>
296 * Expression.cs: check for illegal booleab unary expressions.
298 2008-04-09 Jb Evain <jbevain@novell.com>
300 * UnaryExpression.cs: implement compilation of negate.
302 2008-04-09 Jb Evain <jbevain@novell.com>
304 * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
305 to null for simple unary operators. Implement Not compilation.
307 2008-04-08 Jb Evain <jbevain@novell.com>
309 * ElementInit.cs: emit pop if the add method doesn't return void.
311 2008-03-20 Jb Evain <jbevain@novell.com>
313 * Expression.cs: use the new and more complete IsAssignableTo
314 instead of IsAssignableFrom.
316 2008-03-19 Jb Evain <jbevain@novell.com>
318 * LambdaExpression.cs: use the new standardified IsAssignableTo,
319 fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
321 2008-03-19 Jb Evain <jbevain@novell.com>
323 * Extensions.cs (Type.IsAssignableTo): deal with arrays.
325 2008-03-13 Jb Evain <jbevain@novell.com>
327 * NewArrayExpression.cs (EmitNewArrayBounds): implement.
329 2008-03-12 Jb Evain <jbevain@novell.com>
331 * NewArrayExpression.cs (Emit): naive implementation of emit support
332 for array initialization.
334 2008-03-11 Jb Evain <jbevain@novell.com>
336 * BinaryExpression.cs: very naive implementation of emitting
339 2008-03-11 Jb Evain <jbevain@novell.com>
341 * *.cs: Move the different Emit* helpers to EmitContext,
342 so that they get used more naturally by the non Expression
345 2008-03-10 Jb Evain <jbevain@novell.com>
347 * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
348 * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
350 2008-03-10 Jb Evain <jbevain@novell.com>
352 * TypeBinaryExpression.cs (Emit): implement.
354 2008-03-08 Jb Evain <jbevain@novell.com>
356 * MemberListBinding.cs (Emit): implement.
357 * MemberBinding.cs (EmitLoadMember): add helper.
359 2008-03-08 Jb Evain <jbevain@novell.com>
361 * MemberAssignment.cs (Emit): implement.
363 2008-03-08 Jb Evain <jbevain@novell.com>
365 * ElementInit.cs (Emit): implement.
367 2008-03-06 Jb Evain <jbevain@novell.com>
369 * EmitContext.cs: the DebugContext delegate the CreateDelegate
370 to a DynamicContext to avoid visibility issues in debug mode.
372 2008-03-06 Jb Evain <jbevain@novell.com>
374 * EmitContext.cs: Lambda methods bypass JIT visibility checks.
376 2008-03-06 Jb Evain <jbevain@novell.com>
378 * MethodCallExpression.cs, Expression.cs: refactor method calling
379 into a more sophisticated EmitCall in Expression.
380 * InvocationExpression.cs (Emit): implement using the previous EmitCall.
382 2008-03-06 Jb Evain <jbevain@novell.com>
384 * Expression.cs: add a EmitCall helper.
385 * MemberExpression.cs: implement property access.
387 2008-03-06 Jb Evain <jbevain@novell.com>
389 * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
390 * MemberExpression.cs: use EmitLoad to load the instance field if needed.
392 2008-03-06 Jb Evain <jbevain@novell.com>
394 * BinaryExpression.cs, Expression.cs: move EmitStored from
395 BinaryExpression to Expression.
396 * MethodCallExpression.cs: allow method calls on structs.
398 2008-03-05 Jb Evain <jbevain@novell.com>
400 * Expression.cs: Fix the Call method which takes an array
403 2008-03-05 Jb Evain <jbevain@novell.com>
405 * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
407 2008-02-26 Jb Evain <jbevain@novell.com>
409 * Expression.cs (Call): Guess the parameters type from the argument
412 2008-02-25 Jb Evain <jbevain@novell.com>
414 * NewExpression.cs (Emit): deal with value types construction.
416 2008-02-25 Jb Evain <jbevain@novell.com>
418 * Expression.cs, NewExpression.cs: deal with the fact that value types
419 don't have a parameterless constructor.
421 2008-02-24 Jb Evain <jbevain@novell.com>
423 * LambdaExpression.cs, EmitContext.cs: make compilation
424 of delegate returning void work.
426 2008-02-24 Jb Evain <jbevain@novell.com>
428 * MethodCallExpression.cs: emit call or callvirt depending
429 on the virtuality of the method.
431 2008-02-24 Jb Evain <jbevain@novell.com>
433 * LambdaExpression.cs: properly format error message.
435 2008-02-21 Jb Evain <jbevain@novell.com>
437 * BinaryExpression.cs (EmitCoalesce): fix setup_null.
439 2008-02-21 Jb Evain <jbevain@novell.com>
441 * BinaryExpression.cs (Emit): fix the both_are_null case.
443 2008-02-20 Jb Evain <jbevain@novell.com>
445 * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
447 2008-02-20 Jb Evain <jbevain@novell.com>
449 * Expression.cs, ExpressionPrinter.cs: implement ListInit.
451 2008-02-19 Jb Evain <jbevain@novell.com>
453 * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
455 2008-02-19 Jb Evain <jbevain@novell.com>
457 * Expression.cs, ExpressionPrinter.cs: implement last New
458 overload for anonymous types.
460 2008-02-08 Jb Evain <jbevain@novell.com>
462 * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
463 add support for Invoke.
465 2008-02-04 Jb Evain <jbevain@novell.com>
467 * ExpressionPrinter.cs: fix printing of MemberListBinding.
469 2008-02-04 Jb Evain <jbevain@novell.com>
471 * Expression.cs, NewExpression.cs: make New(Type) test pass.
473 2008-02-04 Jb Evain <jbevain@novell.com>
475 * ExpressionPrinter.cs: fix and clean printing of ElementInit.
477 2008-02-02 Jb Evain <jbevain@novell.com>
479 * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
481 2008-02-02 Jb Evain <jbevain@novell.com>
483 * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
485 2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
487 * Expression.cs, ExpressionPrinter.cs:Add ListBind
489 2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
491 * Expression.cs, ExpressionPrinter.cs:Add Elementinit
493 2008-01-31 Jb Evain <jbevain@novell.com>
495 * UnaryExpression.cs: emit array length.
497 2008-01-31 Jb Evain <jbevain@novell.com>
499 * MemberExpression.cs: Simple support for emitting fields.
501 2008-01-30 Jb Evain <jbevain@novell.com>
503 * MethodCallExpression.cs: very naive implementation of Emit.
505 2008-01-30 Jb Evain <jbevain@novell.com>
507 * NewExpression.cs: add Emit support for reference types.
509 2008-01-30 Jb Evain <jbevain@novell.com>
511 * LambdaExpression.cs, EmitContext.cs: small refactoring.
512 Extract the different EmitContexts to their own file.
514 2008-01-29 Jb Evain <jbevain@novell.com>
516 * MethodCallExpression.cs, Expression.cs: complete Calls.
518 2008-01-29 Jb Evain <jbevain@novell.com>
520 * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
521 implement the first flavors of New.
523 2008-01-27 Jb Evain <jbevain@novell.com>
525 * ConditionalExpression.cs: implement Emit.
527 2008-01-27 Jb Evain <jbevain@novell.com>
529 * Expression.cs: implement the last Lambda method.
531 2008-01-27 Jb Evain <jbevain@novell.com>
533 * LambdaExpression.cs: fix the Type of the LambdaExpressions.
535 2008-01-27 Olivier Dufour <olivier.duff@gmail.com>
537 * Expression.cs, InvocationExpession.cs,
538 ListInitExpression.cs, MemberInitExpression.cs
539 NewExpression.cs : Add all missing
540 constructor in Expressions and remove the base one
542 2008-01-25 Jb Evain <jbevain@novell.com>
544 * Expression.cs, ExpressionPrinter.cs: implement Bind.
546 2008-01-25 Jb Evain <jbevain@novell.com>
548 * MemberMemberBinding.cs, MemberListBinding.cs,
549 MemberAssignment.cs, MemberBinding.cs:
552 2008-01-25 Jb Evain <jbevain@novell.com>
554 * Expression.cs: implement PropertyOrField.
556 2008-01-24 Jb Evain <jbevain@novell.com>
558 * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
559 implement Field and Property.
561 2008-01-22 Miguel de Icaza <miguel@novell.com>
563 * BinaryExpression.cs: Unleash the power of cut and paste.
565 Bring a bunch of operatros from mcs/expression.cs
567 * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
568 used those from mcs, that was wrong. use the proper ones, clean
571 * BinaryExpression.cs: Add method invocations for binary methods.
573 2008-01-22 Jb Evain <jbevain@novell.com>
575 * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
577 2008-01-22 Jb Evain <jbevain@novell.com>
579 * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
580 implement Expression.NewArrayBounds.
582 2008-01-22 Jb Evain <jbevain@novell.com>
584 * ExpressionPrinter.cs: fix Lambda and Equal.
586 2008-01-22 Miguel de Icaza <miguel@novell.com>
588 * BinaryExpression.cs (EmitCoalesce): Add support for emitting
591 TODO: this does not use the "Conversion" Lambda, which am not sure
592 who generates this or what it is used for.
594 (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
596 * Expression.cs: Add support for Coalesce.
597 (BinaryCoreCheck): Move more checking here, instead of the helper
598 routines, will remove them next.
600 * LambdaExpression.cs (Compile): Create the delegate last, so we
601 manage to save the assembly while debugging in case of error
603 2008-01-21 Miguel de Icaza <miguel@novell.com>
605 * Expression.cs (BinaryCoreCheck): Add checking for a few
606 operators here (to avoid doing a second pass, handles AndAlso and
609 (AndAlso, OrElse): Add some code.
611 * BinaryExpression.cs: Instead of using GetValueOrDefault use
612 get_Value, as we already probed for the lack of value.
614 Split out support for And/Or to a separate routine as the code is
615 not very easy to share with the arithmetics code.
617 2008-01-21 Marek Safar <marek.safar@gmail.com>
619 * BinaryExpression.cs: Fixed initobj initialization.
621 2008-01-21 Jb Evain <jbevain@novell.com>
623 * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
624 Move the IsUnsigned helper from BinaryExpression to Expression,
625 so it can be used in UnaryExpression.
627 2008-01-21 Miguel de Icaza <miguel@novell.com>
629 * Start code generation for nullables, currently this generates
630 incorrect code for things like:
632 Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
633 e2.Compile ().Invoke (null, 3))
635 This should return null, but returns something else.
637 * Introduce LINQ_DBG env variable, which generates a linq file in
638 /tmp; It currently does not work as well as it should, as the
639 Func<> parameters do not mwatch the generated method.
643 2008-01-20 Miguel de Icaza <miguel@novell.com>
645 Introduce support for Nullable arguments, no code is generated for
646 these yet, its only tests + node creation behavior at this point.
648 * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
649 as operators, they must both be nullable.
651 NullableTypes in the arguments are transformed into the underlying
652 values when doing the method validation.
654 2008-01-18 Miguel de Icaza <miguel@novell.com>
656 * ParameterExpression.cs: Add emit support.
658 2008-01-18 Jb Evain <jbevain@novell.com>
660 * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
662 2008-01-18 Miguel de Icaza <miguel@novell.com>
664 * BinaryExpression.cs: Add support for emitting code for some
665 operators (ported from the Mono C# compiler).
669 2008-01-17 Miguel de Icaza <miguel@novell.com>
671 Beginning of code generation framework for Linq.Expressions.
672 Some code was borrowed by from the C# compiler
674 * Expression_T.cs: Fill in the blanks.
676 * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
679 * ConstantExpression.cs: Mostly done, need to write tests for
680 non-fundamental types and other ValueType initializations.
682 2008-01-17 Jb Evain <jbevain@novell.com>
684 * Expression.cs: implement MakeMemberAccess.
686 2008-01-17 Jb Evain <jbevain@novell.com>
688 * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
689 implement ArrayIndex.
691 2008-01-17 Jb Evain <jbevain@novell.com>
693 * Expression.cs: Use TypeCode for IsInt and IsNumber.
695 2008-01-16 Miguel de Icaza <miguel@novell.com>
697 * Expression.cs: Add support for user-defined operators.
699 Put back various binary operator tests.
701 2008-01-16 Jb Evain <jbevain@novell.com>
703 * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
705 2008-01-15 Miguel de Icaza <miguel@novell.com>
707 * Expression.cs: Do validation on the method parameters and use
708 the return type if provided.
710 2008-01-15 Jb Evain <jbevain@novell.com>
712 * MethodCallExpression.cs, Expression.cs
713 ExpressionPrinter.cs: Implement Call (Expression, ...)
715 2008-01-15 Jb Evain <jbevain@novell.com>
717 * Expression.cs, ConditionalExpressionExpression.cs
718 ExpressionPrinter.cs : implement Expression.Condition.
720 2008-01-15 Jb Evain <jbevain@novell.com>
723 ParameterExpression.cs,
724 ExpressionPrinter.cs: implement Expression.Parameter
726 2008-01-15 Jb Evain <jbevain@novell.com>
728 * ExpressionPrinter.cs (VisitBinaryExpression): simple
729 implementation (probably misses a few cases).
731 2008-01-14 Miguel de Icaza <miguel@novell.com>
733 * Expression.cs: Bring back the (most) of binary operators. Added
734 type checking as well and reorganized the source file by topic
735 instead of alphabetical sorting.
737 2008-01-14 Jb Evain <jbevain@novell.com>
739 * ExpressionPrinter.cs: print ArrayLength.
741 2008-01-14 Jb Evain <jbevain@novell.com>
743 * Expression.cs: TypeAs can't take value types.
744 * ExpressionPrinter.cs: implement TypeAs.
746 2008-01-14 Jb Evain <jbevain@novell.com>
748 * Expression.cs: implement TypeIs.
749 * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
750 * TypeBinaryExpression.cs: add proper ctor.
752 2008-01-14 Jb Evain <jbevain@novell.com>
754 * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
756 2008-01-14 Jb Evain <jbevain@novell.com>
758 * BinaryExpression.cs,
759 * Expression.cs: revert part of Miguel's last patch.
760 MakeBinary is expected to call the appropriate factory
761 methods. Whose methods that are responsible for creating
762 the good BinaryExpression, wether they use a custom method
765 2008-01-14 Jb Evain <jbevain@novell.com>
767 * Expression.cs: MakeUnary is expected to call the appropriate
770 2008-01-14 Miguel de Icaza <miguel@novell.com>
772 * Expression.cs (Constant, MakeBinary and consumers of it): Some
773 more fill-up changes.
775 MakeBinary will need much more work to support user-provided
778 2008-01-13 Jb Evain <jbevain@novell.com>
780 * *.cs: fresh implementation.