1 2008-01-30 Jb Evain <jbevain@novell.com>
3 * LambdaExpression.cs, EmitContext.cs: small refactoring.
4 Extract the different EmitContexts to their own file.
6 2008-01-29 Jb Evain <jbevain@novell.com>
8 * MethodCallExpression.cs, Expression.cs: complete Calls.
10 2008-01-29 Jb Evain <jbevain@novell.com>
12 * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
13 implement the first flavors of New.
15 2008-01-27 Jb Evain <jbevain@novell.com>
17 * ConditionalExpression.cs: implement Emit.
19 2008-01-27 Jb Evain <jbevain@novell.com>
21 * Expression.cs: implement the last Lambda method.
23 2008-01-27 Jb Evain <jbevain@novell.com>
25 * LambdaExpression.cs: fix the Type of the LambdaExpressions.
27 2008-01-27 Olivier Dufour <olivier.duff@gmail.com>
29 * Expression.cs, InvocationExpession.cs,
30 ListInitExpression.cs, MemberInitExpression.cs
31 NewExpression.cs : Add all missing
32 constructor in Expressions and remove the base one
34 2008-01-25 Jb Evain <jbevain@novell.com>
36 * Expression.cs, ExpressionPrinter.cs: implement Bind.
38 2008-01-25 Jb Evain <jbevain@novell.com>
40 * MemberMemberBinding.cs, MemberListBinding.cs,
41 MemberAssignment.cs, MemberBinding.cs:
44 2008-01-25 Jb Evain <jbevain@novell.com>
46 * Expression.cs: implement PropertyOrField.
48 2008-01-24 Jb Evain <jbevain@novell.com>
50 * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
51 implement Field and Property.
53 2008-01-22 Miguel de Icaza <miguel@novell.com>
55 * BinaryExpression.cs: Unleash the power of cut and paste.
57 Bring a bunch of operatros from mcs/expression.cs
59 * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
60 used those from mcs, that was wrong. use the proper ones, clean
63 * BinaryExpression.cs: Add method invocations for binary methods.
65 2008-01-22 Jb Evain <jbevain@novell.com>
67 * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
69 2008-01-22 Jb Evain <jbevain@novell.com>
71 * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
72 implement Expression.NewArrayBounds.
74 2008-01-22 Jb Evain <jbevain@novell.com>
76 * ExpressionPrinter.cs: fix Lambda and Equal.
78 2008-01-22 Miguel de Icaza <miguel@novell.com>
80 * BinaryExpression.cs (EmitCoalesce): Add support for emitting
83 TODO: this does not use the "Conversion" Lambda, which am not sure
84 who generates this or what it is used for.
86 (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
88 * Expression.cs: Add support for Coalesce.
89 (BinaryCoreCheck): Move more checking here, instead of the helper
90 routines, will remove them next.
92 * LambdaExpression.cs (Compile): Create the delegate last, so we
93 manage to save the assembly while debugging in case of error
95 2008-01-21 Miguel de Icaza <miguel@novell.com>
97 * Expression.cs (BinaryCoreCheck): Add checking for a few
98 operators here (to avoid doing a second pass, handles AndAlso and
101 (AndAlso, OrElse): Add some code.
103 * BinaryExpression.cs: Instead of using GetValueOrDefault use
104 get_Value, as we already probed for the lack of value.
106 Split out support for And/Or to a separate routine as the code is
107 not very easy to share with the arithmetics code.
109 2008-01-21 Marek Safar <marek.safar@gmail.com>
111 * BinaryExpression.cs: Fixed initobj initialization.
113 2008-01-21 Jb Evain <jbevain@novell.com>
115 * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
116 Move the IsUnsigned helper from BinaryExpression to Expression,
117 so it can be used in UnaryExpression.
119 2008-01-21 Miguel de Icaza <miguel@novell.com>
121 * Start code generation for nullables, currently this generates
122 incorrect code for things like:
124 Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
125 e2.Compile ().Invoke (null, 3))
127 This should return null, but returns something else.
129 * Introduce LINQ_DBG env variable, which generates a linq file in
130 /tmp; It currently does not work as well as it should, as the
131 Func<> parameters do not mwatch the generated method.
135 2008-01-20 Miguel de Icaza <miguel@novell.com>
137 Introduce support for Nullable arguments, no code is generated for
138 these yet, its only tests + node creation behavior at this point.
140 * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
141 as operators, they must both be nullable.
143 NullableTypes in the arguments are transformed into the underlying
144 values when doing the method validation.
146 2008-01-18 Miguel de Icaza <miguel@novell.com>
148 * ParameterExpression.cs: Add emit support.
150 2008-01-18 Jb Evain <jbevain@novell.com>
152 * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
154 2008-01-18 Miguel de Icaza <miguel@novell.com>
156 * BinaryExpression.cs: Add support for emitting code for some
157 operators (ported from the Mono C# compiler).
161 2008-01-17 Miguel de Icaza <miguel@novell.com>
163 Beginning of code generation framework for Linq.Expressions.
164 Some code was borrowed by from the C# compiler
166 * Expression_T.cs: Fill in the blanks.
168 * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
171 * ConstantExpression.cs: Mostly done, need to write tests for
172 non-fundamental types and other ValueType initializations.
174 2008-01-17 Jb Evain <jbevain@novell.com>
176 * Expression.cs: implement MakeMemberAccess.
178 2008-01-17 Jb Evain <jbevain@novell.com>
180 * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
181 implement ArrayIndex.
183 2008-01-17 Jb Evain <jbevain@novell.com>
185 * Expression.cs: Use TypeCode for IsInt and IsNumber.
187 2008-01-16 Miguel de Icaza <miguel@novell.com>
189 * Expression.cs: Add support for user-defined operators.
191 Put back various binary operator tests.
193 2008-01-16 Jb Evain <jbevain@novell.com>
195 * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
197 2008-01-15 Miguel de Icaza <miguel@novell.com>
199 * Expression.cs: Do validation on the method parameters and use
200 the return type if provided.
202 2008-01-15 Jb Evain <jbevain@novell.com>
204 * MethodCallExpression.cs, Expression.cs
205 ExpressionPrinter.cs: Implement Call (Expression, ...)
207 2008-01-15 Jb Evain <jbevain@novell.com>
209 * Expression.cs, ConditionalExpressionExpression.cs
210 ExpressionPrinter.cs : implement Expression.Condition.
212 2008-01-15 Jb Evain <jbevain@novell.com>
215 ParameterExpression.cs,
216 ExpressionPrinter.cs: implement Expression.Parameter
218 2008-01-15 Jb Evain <jbevain@novell.com>
220 * ExpressionPrinter.cs (VisitBinaryExpression): simple
221 implementation (probably misses a few cases).
223 2008-01-14 Miguel de Icaza <miguel@novell.com>
225 * Expression.cs: Bring back the (most) of binary operators. Added
226 type checking as well and reorganized the source file by topic
227 instead of alphabetical sorting.
229 2008-01-14 Jb Evain <jbevain@novell.com>
231 * ExpressionPrinter.cs: print ArrayLength.
233 2008-01-14 Jb Evain <jbevain@novell.com>
235 * Expression.cs: TypeAs can't take value types.
236 * ExpressionPrinter.cs: implement TypeAs.
238 2008-01-14 Jb Evain <jbevain@novell.com>
240 * Expression.cs: implement TypeIs.
241 * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
242 * TypeBinaryExpression.cs: add proper ctor.
244 2008-01-14 Jb Evain <jbevain@novell.com>
246 * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
248 2008-01-14 Jb Evain <jbevain@novell.com>
250 * BinaryExpression.cs,
251 * Expression.cs: revert part of Miguel's last patch.
252 MakeBinary is expected to call the appropriate factory
253 methods. Whose methods that are responsible for creating
254 the good BinaryExpression, wether they use a custom method
257 2008-01-14 Jb Evain <jbevain@novell.com>
259 * Expression.cs: MakeUnary is expected to call the appropriate
262 2008-01-14 Miguel de Icaza <miguel@novell.com>
264 * Expression.cs (Constant, MakeBinary and consumers of it): Some
265 more fill-up changes.
267 MakeBinary will need much more work to support user-provided
270 2008-01-13 Jb Evain <jbevain@novell.com>
272 * *.cs: fresh implementation.