1 2008-01-29 Jb Evain <jbevain@novell.com>
3 * MethodCallExpression.cs, Expression.cs: complete Calls.
5 2008-01-29 Jb Evain <jbevain@novell.com>
7 * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
8 implement the first flavors of New.
10 2008-01-27 Jb Evain <jbevain@novell.com>
12 * ConditionalExpression.cs: implement Emit.
14 2008-01-27 Jb Evain <jbevain@novell.com>
16 * Expression.cs: implement the last Lambda method.
18 2008-01-27 Jb Evain <jbevain@novell.com>
20 * LambdaExpression.cs: fix the Type of the LambdaExpressions.
22 2008-01-27 Olivier Dufour <olivier.duff@gmail.com>
24 * Expression.cs, InvocationExpession.cs,
25 ListInitExpression.cs, MemberInitExpression.cs
26 NewExpression.cs : Add all missing
27 constructor in Expressions and remove the base one
29 2008-01-25 Jb Evain <jbevain@novell.com>
31 * Expression.cs, ExpressionPrinter.cs: implement Bind.
33 2008-01-25 Jb Evain <jbevain@novell.com>
35 * MemberMemberBinding.cs, MemberListBinding.cs,
36 MemberAssignment.cs, MemberBinding.cs:
39 2008-01-25 Jb Evain <jbevain@novell.com>
41 * Expression.cs: implement PropertyOrField.
43 2008-01-24 Jb Evain <jbevain@novell.com>
45 * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
46 implement Field and Property.
48 2008-01-22 Miguel de Icaza <miguel@novell.com>
50 * BinaryExpression.cs: Unleash the power of cut and paste.
52 Bring a bunch of operatros from mcs/expression.cs
54 * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
55 used those from mcs, that was wrong. use the proper ones, clean
58 * BinaryExpression.cs: Add method invocations for binary methods.
60 2008-01-22 Jb Evain <jbevain@novell.com>
62 * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
64 2008-01-22 Jb Evain <jbevain@novell.com>
66 * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
67 implement Expression.NewArrayBounds.
69 2008-01-22 Jb Evain <jbevain@novell.com>
71 * ExpressionPrinter.cs: fix Lambda and Equal.
73 2008-01-22 Miguel de Icaza <miguel@novell.com>
75 * BinaryExpression.cs (EmitCoalesce): Add support for emitting
78 TODO: this does not use the "Conversion" Lambda, which am not sure
79 who generates this or what it is used for.
81 (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
83 * Expression.cs: Add support for Coalesce.
84 (BinaryCoreCheck): Move more checking here, instead of the helper
85 routines, will remove them next.
87 * LambdaExpression.cs (Compile): Create the delegate last, so we
88 manage to save the assembly while debugging in case of error
90 2008-01-21 Miguel de Icaza <miguel@novell.com>
92 * Expression.cs (BinaryCoreCheck): Add checking for a few
93 operators here (to avoid doing a second pass, handles AndAlso and
96 (AndAlso, OrElse): Add some code.
98 * BinaryExpression.cs: Instead of using GetValueOrDefault use
99 get_Value, as we already probed for the lack of value.
101 Split out support for And/Or to a separate routine as the code is
102 not very easy to share with the arithmetics code.
104 2008-01-21 Marek Safar <marek.safar@gmail.com>
106 * BinaryExpression.cs: Fixed initobj initialization.
108 2008-01-21 Jb Evain <jbevain@novell.com>
110 * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
111 Move the IsUnsigned helper from BinaryExpression to Expression,
112 so it can be used in UnaryExpression.
114 2008-01-21 Miguel de Icaza <miguel@novell.com>
116 * Start code generation for nullables, currently this generates
117 incorrect code for things like:
119 Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
120 e2.Compile ().Invoke (null, 3))
122 This should return null, but returns something else.
124 * Introduce LINQ_DBG env variable, which generates a linq file in
125 /tmp; It currently does not work as well as it should, as the
126 Func<> parameters do not mwatch the generated method.
130 2008-01-20 Miguel de Icaza <miguel@novell.com>
132 Introduce support for Nullable arguments, no code is generated for
133 these yet, its only tests + node creation behavior at this point.
135 * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
136 as operators, they must both be nullable.
138 NullableTypes in the arguments are transformed into the underlying
139 values when doing the method validation.
141 2008-01-18 Miguel de Icaza <miguel@novell.com>
143 * ParameterExpression.cs: Add emit support.
145 2008-01-18 Jb Evain <jbevain@novell.com>
147 * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
149 2008-01-18 Miguel de Icaza <miguel@novell.com>
151 * BinaryExpression.cs: Add support for emitting code for some
152 operators (ported from the Mono C# compiler).
156 2008-01-17 Miguel de Icaza <miguel@novell.com>
158 Beginning of code generation framework for Linq.Expressions.
159 Some code was borrowed by from the C# compiler
161 * Expression_T.cs: Fill in the blanks.
163 * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
166 * ConstantExpression.cs: Mostly done, need to write tests for
167 non-fundamental types and other ValueType initializations.
169 2008-01-17 Jb Evain <jbevain@novell.com>
171 * Expression.cs: implement MakeMemberAccess.
173 2008-01-17 Jb Evain <jbevain@novell.com>
175 * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
176 implement ArrayIndex.
178 2008-01-17 Jb Evain <jbevain@novell.com>
180 * Expression.cs: Use TypeCode for IsInt and IsNumber.
182 2008-01-16 Miguel de Icaza <miguel@novell.com>
184 * Expression.cs: Add support for user-defined operators.
186 Put back various binary operator tests.
188 2008-01-16 Jb Evain <jbevain@novell.com>
190 * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
192 2008-01-15 Miguel de Icaza <miguel@novell.com>
194 * Expression.cs: Do validation on the method parameters and use
195 the return type if provided.
197 2008-01-15 Jb Evain <jbevain@novell.com>
199 * MethodCallExpression.cs, Expression.cs
200 ExpressionPrinter.cs: Implement Call (Expression, ...)
202 2008-01-15 Jb Evain <jbevain@novell.com>
204 * Expression.cs, ConditionalExpressionExpression.cs
205 ExpressionPrinter.cs : implement Expression.Condition.
207 2008-01-15 Jb Evain <jbevain@novell.com>
210 ParameterExpression.cs,
211 ExpressionPrinter.cs: implement Expression.Parameter
213 2008-01-15 Jb Evain <jbevain@novell.com>
215 * ExpressionPrinter.cs (VisitBinaryExpression): simple
216 implementation (probably misses a few cases).
218 2008-01-14 Miguel de Icaza <miguel@novell.com>
220 * Expression.cs: Bring back the (most) of binary operators. Added
221 type checking as well and reorganized the source file by topic
222 instead of alphabetical sorting.
224 2008-01-14 Jb Evain <jbevain@novell.com>
226 * ExpressionPrinter.cs: print ArrayLength.
228 2008-01-14 Jb Evain <jbevain@novell.com>
230 * Expression.cs: TypeAs can't take value types.
231 * ExpressionPrinter.cs: implement TypeAs.
233 2008-01-14 Jb Evain <jbevain@novell.com>
235 * Expression.cs: implement TypeIs.
236 * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
237 * TypeBinaryExpression.cs: add proper ctor.
239 2008-01-14 Jb Evain <jbevain@novell.com>
241 * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
243 2008-01-14 Jb Evain <jbevain@novell.com>
245 * BinaryExpression.cs,
246 * Expression.cs: revert part of Miguel's last patch.
247 MakeBinary is expected to call the appropriate factory
248 methods. Whose methods that are responsible for creating
249 the good BinaryExpression, wether they use a custom method
252 2008-01-14 Jb Evain <jbevain@novell.com>
254 * Expression.cs: MakeUnary is expected to call the appropriate
257 2008-01-14 Miguel de Icaza <miguel@novell.com>
259 * Expression.cs (Constant, MakeBinary and consumers of it): Some
260 more fill-up changes.
262 MakeBinary will need much more work to support user-provided
265 2008-01-13 Jb Evain <jbevain@novell.com>
267 * *.cs: fresh implementation.