2008-01-21 Marek Safar <marek.safar@gmail.com>
[mono.git] / mcs / class / System.Core / System.Linq.Expressions / ChangeLog
1 2008-01-21  Marek Safar  <marek.safar@gmail.com>
2
3         * BinaryExpression.cs: Fixed initobj initialization.
4
5 2008-01-21  Jb Evain  <jbevain@novell.com>
6
7         * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
8         Move the IsUnsigned helper from BinaryExpression to Expression,
9         so it can be used in UnaryExpression.
10
11 2008-01-21  Miguel de Icaza  <miguel@novell.com>
12
13         * Start code generation for nullables, currently this generates
14         incorrect code for things like:
15         
16         Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
17         e2.Compile ().Invoke (null, 3))
18
19         This should return null, but returns something else.
20
21         * Introduce LINQ_DBG env variable, which generates a linq file in
22         /tmp;   It currently does not work as well as it should, as the
23         Func<> parameters do not mwatch the generated method.
24         Investigate. 
25         
26
27 2008-01-20  Miguel de Icaza  <miguel@novell.com>
28
29         Introduce support for Nullable arguments, no code is generated for
30         these yet, its only tests + node creation behavior at this point.
31         
32         * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
33         as operators, they must both be nullable.
34
35         NullableTypes in the arguments are transformed into the underlying
36         values when doing the method validation.  
37
38 2008-01-18  Miguel de Icaza  <miguel@novell.com>
39
40         * ParameterExpression.cs: Add emit support.
41
42 2008-01-18  Jb Evain  <jbevain@novell.com>
43
44         * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
45
46 2008-01-18  Miguel de Icaza  <miguel@novell.com>
47
48         * BinaryExpression.cs: Add support for emitting code for some
49         operators (ported from the Mono C# compiler).   
50
51         Add tests.
52
53 2008-01-17  Miguel de Icaza  <miguel@novell.com>
54
55         Beginning of code generation framework for Linq.Expressions.
56         Some code was borrowed by from the C# compiler
57         
58         * Expression_T.cs: Fill in the blanks.
59         
60         * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
61         of codegen.
62
63         * ConstantExpression.cs: Mostly done, need to write tests for
64         non-fundamental types and other ValueType initializations. 
65
66 2008-01-17  Jb Evain  <jbevain@novell.com>
67
68         * Expression.cs: implement MakeMemberAccess.
69
70 2008-01-17  Jb Evain  <jbevain@novell.com>
71
72         * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
73         implement ArrayIndex.
74
75 2008-01-17  Jb Evain  <jbevain@novell.com>
76
77         * Expression.cs: Use TypeCode for IsInt and IsNumber.
78
79 2008-01-16  Miguel de Icaza  <miguel@novell.com>
80
81         * Expression.cs: Add support for user-defined operators. 
82
83         Put back various binary operator tests.
84
85 2008-01-16  Jb Evain  <jbevain@novell.com>
86
87         * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
88
89 2008-01-15  Miguel de Icaza  <miguel@novell.com>
90
91         * Expression.cs: Do validation on the method parameters and use
92         the return type if provided.
93
94 2008-01-15  Jb Evain  <jbevain@novell.com>
95
96         * MethodCallExpression.cs, Expression.cs
97         ExpressionPrinter.cs: Implement Call (Expression, ...)
98
99 2008-01-15  Jb Evain  <jbevain@novell.com>
100
101         * Expression.cs, ConditionalExpressionExpression.cs
102         ExpressionPrinter.cs : implement Expression.Condition.
103
104 2008-01-15  Jb Evain  <jbevain@novell.com>
105
106         * Expression.cs,
107         ParameterExpression.cs,
108         ExpressionPrinter.cs: implement Expression.Parameter
109
110 2008-01-15  Jb Evain  <jbevain@novell.com>
111
112         * ExpressionPrinter.cs (VisitBinaryExpression): simple
113         implementation (probably misses a few cases).
114
115 2008-01-14  Miguel de Icaza  <miguel@novell.com>
116
117         * Expression.cs: Bring back the (most) of binary operators.  Added
118         type checking as well and reorganized the source file by topic
119         instead of alphabetical sorting.
120
121 2008-01-14  Jb Evain  <jbevain@novell.com>
122
123         * ExpressionPrinter.cs: print ArrayLength.
124
125 2008-01-14  Jb Evain  <jbevain@novell.com>
126
127         * Expression.cs: TypeAs can't take value types.
128         * ExpressionPrinter.cs: implement TypeAs.
129
130 2008-01-14  Jb Evain  <jbevain@novell.com>
131
132         * Expression.cs: implement TypeIs.
133         * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
134         * TypeBinaryExpression.cs: add proper ctor.
135
136 2008-01-14  Jb Evain  <jbevain@novell.com>
137
138         * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
139
140 2008-01-14  Jb Evain  <jbevain@novell.com>
141
142         * BinaryExpression.cs,
143         * Expression.cs: revert part of Miguel's last patch.
144         MakeBinary is expected to call the appropriate factory
145         methods. Whose methods that are responsible for creating
146         the good BinaryExpression, wether they use a custom method
147         or not.
148
149 2008-01-14  Jb Evain  <jbevain@novell.com>
150
151         * Expression.cs: MakeUnary is expected to call the appropriate
152         factory methods.
153
154 2008-01-14  Miguel de Icaza  <miguel@novell.com>
155
156         * Expression.cs (Constant, MakeBinary and consumers of it): Some
157         more fill-up changes.
158
159         MakeBinary will need much more work to support user-provided
160         types.
161
162 2008-01-13  Jb Evain  <jbevain@novell.com>
163
164         * *.cs: fresh implementation.