a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
832 lines
24 KiB
Plaintext
832 lines
24 KiB
Plaintext
2010-07-26 Jb Evain <jbevain@novell.com>
|
|
|
|
* EmitContext.cs: Properly call methods on enumerations.
|
|
Fixes #625367.
|
|
|
|
2010-05-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* ConstantExpression.cs: fix emission of nullable constants.
|
|
|
|
2010-01-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (Call): properly deal with zero length array
|
|
of type arguments for non generic methods. Fixes #568989.
|
|
|
|
2009-12-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
|
|
|
|
* Expression.cs: expression can be null for static getters. Patch from
|
|
Miguel de Icaza (miguel@novell.com).
|
|
|
|
2009-11-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression (Call): deal with lambda expression <> delegate
|
|
comparison when filtering methods.
|
|
Fixes #536637.
|
|
|
|
2009-11-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression (Call): better filtering of generic methods.
|
|
Fixes #537768.
|
|
|
|
2009-11-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs: isolate quoted expressions.
|
|
* EmitContext.cs (ParameterReplacer): new helper type
|
|
to replace the parameters of isolated expressions.
|
|
Fix #550722.
|
|
|
|
2009-11-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionTransformer.cs: adjust return type of all
|
|
tranformation methods to make the transformer actually
|
|
useful.
|
|
|
|
2009-10-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs (Compile): use the interpreter on MonoTouch.
|
|
|
|
2009-09-03 Jb Evain <jbevain@novell.com>
|
|
|
|
* ConstantExpression.cs (Emit): add support to emit DBNull values.
|
|
|
|
2009-09-03 Jb Evain <jbevain@novell.com>
|
|
|
|
* ConstantExpression.cs (Emit): add support for emitting
|
|
DateTime constants.
|
|
|
|
2009-03-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* EmitContext.cs
|
|
* ParameterExpression.cs:
|
|
add support for hoisted locals.
|
|
|
|
2009-02-24 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (BinaryCoreCheck): fix comparison of enums
|
|
|
|
2009-02-23 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (IsNumber): actually decimal is rather a special
|
|
case, and not a primitive number.
|
|
|
|
2009-02-23 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (BinaryCoreCheck): add decimal operations
|
|
are provided by custom operators.
|
|
|
|
2008-12-17 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionTransformer.cs: fix VisitList.
|
|
|
|
2008-11-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: protect against open generic methods.
|
|
|
|
2008-10-08 Atsushi Enomoto <atsushi@ximian.com>
|
|
|
|
* Expression.cs : give us information about which type does not
|
|
implement Emit().
|
|
|
|
2008-10-03 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: make sure we properly test complex generic methods
|
|
as a Call candidate.
|
|
|
|
2008-09-22 Jb Evain <jbevain@novell.com>
|
|
|
|
* TypeBinaryExpression.cs: protect against testing void expressions.
|
|
Fixes bug #428309.
|
|
|
|
2008-09-01 Jb Evain <jbevain@novell.com>
|
|
|
|
* MemberBinding.cs: make .ctor protected instead of public.
|
|
|
|
2008-09-01 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: guard against null parameters passed to Lambda.
|
|
|
|
2008-08-30 Marek Safar <marek.safar@gmail.com>
|
|
|
|
* MemberBinding.cs: Made MemberBinding ctor public
|
|
|
|
2008-08-07 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (GetAssociatedProperty): strengthen accessors
|
|
comparisons.
|
|
|
|
2008-08-02 Zoltan Varga <vargaz@gmail.com>
|
|
|
|
* BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
|
|
shift amount like mcs compiled code does.
|
|
|
|
2008-07-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (Call, Field, Property): disallow instance arguments
|
|
on static members. See ms connect #339351.
|
|
|
|
2008-07-18 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, BinaryExpression.cs: fix retrieval of true and false
|
|
operators.
|
|
|
|
2008-06-20 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs, EmitContext.cs: refactor the emit context to
|
|
handle the fact that lambdas are compiled in a general context where
|
|
they share globals but are also able to use parameters from parent lambdas.
|
|
(Although parameter sharing is not implemented yet).
|
|
|
|
* BinaryExpression.cs (fix converted coalesce case to use the lambda
|
|
compilation code).
|
|
|
|
2008-06-09 Jb Evain <jbevain@novell.com>
|
|
|
|
* Extensions.cs (Type.IsExpression): add
|
|
* Expression.cs (CheckMethodArguments): modify the argument list
|
|
to quote arguments when if necessary.
|
|
|
|
|
|
2008-06-09 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (CheckLambda): quote body if required.
|
|
|
|
2008-06-07 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs (EmitConvertedCoalesce): implement.
|
|
|
|
2008-06-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (GetUserConversionMethod): check for convertion
|
|
operators on both types.
|
|
|
|
2008-06-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (ConditionalBinaryCheck): if a method is passed,
|
|
checked that the operators true and false are also defined.
|
|
|
|
2008-06-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs (Emit): deal with binary expressions
|
|
where only the left is lifted.
|
|
|
|
2008-06-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* Extensions.cs: Add Type.MakeNullableType helper.
|
|
* Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
|
|
creat lifted/lifted to null/not lifted
|
|
user defined binary expressions.
|
|
* BinaryExpression.cs (Emit): implement compilation of
|
|
lifted and lifted to null user defined binary operators.
|
|
|
|
2008-06-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
|
|
unary expressions with user defined operators.
|
|
* UnaryExpression.cs (Emit): fix compilation of lifted user operators.
|
|
|
|
2008-05-30 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs (Emit): fix convertion from nullable
|
|
to nullable types.
|
|
|
|
2008-05-29 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (Power): allow bool?.
|
|
* BinaryExpression.cs: properly deal with lifted power expression.
|
|
|
|
2008-05-29 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs (Emit): fix lifted andalso and orelse.
|
|
|
|
2008-05-29 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs (Emit): properly emit lifted to null
|
|
relational binary expressions.
|
|
|
|
2008-05-28 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs (Emit): rework compilation of
|
|
arithmetic and relational lifted binary expressions.
|
|
|
|
2008-05-28 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs (Emit): implement support for compiling
|
|
lifted unary expressions.
|
|
|
|
2008-05-27 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs (EmitConvert): implement nullable to nullable
|
|
convert.
|
|
|
|
2008-05-20 Roei Erez <roeie@mainsoft.com>
|
|
|
|
* Extensions.cs: Add 'IsGenericImplementationOf' extension method
|
|
|
|
2008-05-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs, EmitContext.cs: emit convert from and
|
|
to nullable types.
|
|
|
|
2008-05-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* Extensions.cs: add a few useful extensions such as
|
|
IsGenericInstanceOf and MakeGenericFrom.
|
|
|
|
2008-05-15 Roei Erez <roeie@mainsoft.com>
|
|
|
|
* ExpressionTransformer.cs: Add a base class for transforming Expressions.
|
|
In use at AsQueryable() implementation.
|
|
|
|
2008-05-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* EmitContext.cs: only generate a new lambda name if we're in
|
|
a debug context.
|
|
|
|
2008-05-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs, EmitContext.cs: When encountering a lambda
|
|
inside an ET, compile it as a read of a global. Based on a patch
|
|
by Roei Erez <roeie@mainsoft.com>
|
|
|
|
2008-05-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, EmitContext.cs: deal with call to methods
|
|
with byref parameters.
|
|
|
|
2008-05-07 Roei Erez <roeie@mainsoft.com>
|
|
|
|
* Add ifdef TARGET_JVM
|
|
|
|
2008-05-03 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs: move checks to Expression
|
|
* Expression.cs: apply check for both typed and untyped lambda
|
|
creation, so that the constructor does not throws exception.
|
|
Needed to create instances of Expression<> for untyped lambda
|
|
factory method. Fixes #386322.
|
|
|
|
2008-05-02 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: make Emit virtual instead of abstract,
|
|
to allow externals libraries to extend Expression.
|
|
Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
|
|
|
|
2008-04-29 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs (EmitPrimitiveConversion): implement.
|
|
|
|
2008-04-28 Jb Evain <jbevain@novell.com>
|
|
|
|
* EmitContext.cs: deal with globals when encountering them while
|
|
compiling, and not ahead of time with a dedicated visitor.
|
|
|
|
2008-04-27 Jb Evain <jbevain@novell.com>
|
|
|
|
* ConstantExpression.cs (Emit): emit properly null nullable types.
|
|
|
|
2008-04-27 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: improve method finder.
|
|
|
|
2008-04-24 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs, EmitContext.cs: implement compilation
|
|
of Quote as a global load.
|
|
|
|
2008-04-23 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs: start implementing EmitConvert.
|
|
|
|
2008-04-23 Jb Evain <jbevain@novell.com>
|
|
|
|
* ConstantExpression.cs (Emit): properly Emit null constants.
|
|
|
|
2008-04-23 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (Constant): check for assignability, not for type
|
|
equality, when a type is passed.
|
|
|
|
2008-04-23 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionPrinter.cs: ToString convert properly.
|
|
|
|
2008-04-22 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs: implement IsLiftedToNull properly.
|
|
* Expression.cs (Convert, ConvertChecked): implemented computing
|
|
of IsLifted and IsLiftedToNull for conversions.
|
|
|
|
2008-04-22 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (Convert, ConvertChecked): implement.
|
|
|
|
2008-04-21 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (Call): don't rely on the fact that if the
|
|
instance expression is null, then it's a static call. Explicitely
|
|
check on the MethodInfo for that.
|
|
* EmitContext.cs (EmitCall): same pattern.
|
|
|
|
2008-04-20 Jb Evain <jbevain@novell.com>
|
|
|
|
* MemberMemberBinding.cs (Emit): implement.
|
|
|
|
2008-04-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* EmitContext.cs: infrastructure work to attach a compiled
|
|
lambda expression to an execution scope, and to detect and store
|
|
external globals in the scope.
|
|
* ConstantExpression.cs: load globals from the scope.
|
|
|
|
2008-04-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionVisitor.cs (Visit): don't die because of Power.
|
|
|
|
2008-04-09 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: check for illegal booleab unary expressions.
|
|
|
|
2008-04-09 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs: implement compilation of negate.
|
|
|
|
2008-04-09 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
|
|
to null for simple unary operators. Implement Not compilation.
|
|
|
|
2008-04-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* ElementInit.cs: emit pop if the add method doesn't return void.
|
|
|
|
2008-03-20 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: use the new and more complete IsAssignableTo
|
|
instead of IsAssignableFrom.
|
|
|
|
2008-03-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs: use the new standardified IsAssignableTo,
|
|
fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
|
|
|
|
2008-03-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* Extensions.cs (Type.IsAssignableTo): deal with arrays.
|
|
|
|
2008-03-13 Jb Evain <jbevain@novell.com>
|
|
|
|
* NewArrayExpression.cs (EmitNewArrayBounds): implement.
|
|
|
|
2008-03-12 Jb Evain <jbevain@novell.com>
|
|
|
|
* NewArrayExpression.cs (Emit): naive implementation of emit support
|
|
for array initialization.
|
|
|
|
2008-03-11 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs: very naive implementation of emitting
|
|
array accesses.
|
|
|
|
2008-03-11 Jb Evain <jbevain@novell.com>
|
|
|
|
* *.cs: Move the different Emit* helpers to EmitContext,
|
|
so that they get used more naturally by the non Expression
|
|
types.
|
|
|
|
2008-03-10 Jb Evain <jbevain@novell.com>
|
|
|
|
* TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
|
|
* UnaryExpression.cs: implement TypeAs using the EmitIsInst.
|
|
|
|
2008-03-10 Jb Evain <jbevain@novell.com>
|
|
|
|
* TypeBinaryExpression.cs (Emit): implement.
|
|
|
|
2008-03-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* MemberListBinding.cs (Emit): implement.
|
|
* MemberBinding.cs (EmitLoadMember): add helper.
|
|
|
|
2008-03-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* MemberAssignment.cs (Emit): implement.
|
|
|
|
2008-03-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* ElementInit.cs (Emit): implement.
|
|
|
|
2008-03-06 Jb Evain <jbevain@novell.com>
|
|
|
|
* EmitContext.cs: the DebugContext delegate the CreateDelegate
|
|
to a DynamicContext to avoid visibility issues in debug mode.
|
|
|
|
2008-03-06 Jb Evain <jbevain@novell.com>
|
|
|
|
* EmitContext.cs: Lambda methods bypass JIT visibility checks.
|
|
|
|
2008-03-06 Jb Evain <jbevain@novell.com>
|
|
|
|
* MethodCallExpression.cs, Expression.cs: refactor method calling
|
|
into a more sophisticated EmitCall in Expression.
|
|
* InvocationExpression.cs (Emit): implement using the previous EmitCall.
|
|
|
|
2008-03-06 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: add a EmitCall helper.
|
|
* MemberExpression.cs: implement property access.
|
|
|
|
2008-03-06 Jb Evain <jbevain@novell.com>
|
|
|
|
* MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
|
|
* MemberExpression.cs: use EmitLoad to load the instance field if needed.
|
|
|
|
2008-03-06 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs, Expression.cs: move EmitStored from
|
|
BinaryExpression to Expression.
|
|
* MethodCallExpression.cs: allow method calls on structs.
|
|
|
|
2008-03-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: Fix the Call method which takes an array
|
|
of type arguments.
|
|
|
|
2008-03-05 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: fix for a good chunk of lifted/liftToNull tests.
|
|
|
|
2008-02-26 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs (Call): Guess the parameters type from the argument
|
|
types if needed.
|
|
|
|
2008-02-25 Jb Evain <jbevain@novell.com>
|
|
|
|
* NewExpression.cs (Emit): deal with value types construction.
|
|
|
|
2008-02-25 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, NewExpression.cs: deal with the fact that value types
|
|
don't have a parameterless constructor.
|
|
|
|
2008-02-24 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs, EmitContext.cs: make compilation
|
|
of delegate returning void work.
|
|
|
|
2008-02-24 Jb Evain <jbevain@novell.com>
|
|
|
|
* MethodCallExpression.cs: emit call or callvirt depending
|
|
on the virtuality of the method.
|
|
|
|
2008-02-24 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs: properly format error message.
|
|
|
|
2008-02-21 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs (EmitCoalesce): fix setup_null.
|
|
|
|
2008-02-21 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs (Emit): fix the both_are_null case.
|
|
|
|
2008-02-20 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: implement MemberBind.
|
|
|
|
2008-02-20 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: implement ListInit.
|
|
|
|
2008-02-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: implement MemberInit.
|
|
|
|
2008-02-19 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: implement last New
|
|
overload for anonymous types.
|
|
|
|
2008-02-08 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
|
|
add support for Invoke.
|
|
|
|
2008-02-04 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionPrinter.cs: fix printing of MemberListBinding.
|
|
|
|
2008-02-04 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, NewExpression.cs: make New(Type) test pass.
|
|
|
|
2008-02-04 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionPrinter.cs: fix and clean printing of ElementInit.
|
|
|
|
2008-02-02 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
|
|
|
|
2008-02-02 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
|
|
|
|
2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs:Add ListBind
|
|
|
|
2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs:Add Elementinit
|
|
|
|
2008-01-31 Jb Evain <jbevain@novell.com>
|
|
|
|
* UnaryExpression.cs: emit array length.
|
|
|
|
2008-01-31 Jb Evain <jbevain@novell.com>
|
|
|
|
* MemberExpression.cs: Simple support for emitting fields.
|
|
|
|
2008-01-30 Jb Evain <jbevain@novell.com>
|
|
|
|
* MethodCallExpression.cs: very naive implementation of Emit.
|
|
|
|
2008-01-30 Jb Evain <jbevain@novell.com>
|
|
|
|
* NewExpression.cs: add Emit support for reference types.
|
|
|
|
2008-01-30 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs, EmitContext.cs: small refactoring.
|
|
Extract the different EmitContexts to their own file.
|
|
|
|
2008-01-29 Jb Evain <jbevain@novell.com>
|
|
|
|
* MethodCallExpression.cs, Expression.cs: complete Calls.
|
|
|
|
2008-01-29 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
|
|
implement the first flavors of New.
|
|
|
|
2008-01-27 Jb Evain <jbevain@novell.com>
|
|
|
|
* ConditionalExpression.cs: implement Emit.
|
|
|
|
2008-01-27 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: implement the last Lambda method.
|
|
|
|
2008-01-27 Jb Evain <jbevain@novell.com>
|
|
|
|
* LambdaExpression.cs: fix the Type of the LambdaExpressions.
|
|
|
|
2008-01-27 Olivier Dufour <olivier.duff@gmail.com>
|
|
|
|
* Expression.cs, InvocationExpession.cs,
|
|
ListInitExpression.cs, MemberInitExpression.cs
|
|
NewExpression.cs : Add all missing
|
|
constructor in Expressions and remove the base one
|
|
|
|
2008-01-25 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: implement Bind.
|
|
|
|
2008-01-25 Jb Evain <jbevain@novell.com>
|
|
|
|
* MemberMemberBinding.cs, MemberListBinding.cs,
|
|
MemberAssignment.cs, MemberBinding.cs:
|
|
add constructors.
|
|
|
|
2008-01-25 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: implement PropertyOrField.
|
|
|
|
2008-01-24 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
|
|
implement Field and Property.
|
|
|
|
2008-01-22 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* BinaryExpression.cs: Unleash the power of cut and paste.
|
|
|
|
Bring a bunch of operatros from mcs/expression.cs
|
|
|
|
* Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
|
|
used those from mcs, that was wrong. use the proper ones, clean
|
|
up the result.
|
|
|
|
* BinaryExpression.cs: Add method invocations for binary methods.
|
|
|
|
2008-01-22 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
|
|
|
|
2008-01-22 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
|
|
implement Expression.NewArrayBounds.
|
|
|
|
2008-01-22 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionPrinter.cs: fix Lambda and Equal.
|
|
|
|
2008-01-22 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* BinaryExpression.cs (EmitCoalesce): Add support for emitting
|
|
code for Coalesce.
|
|
|
|
TODO: this does not use the "Conversion" Lambda, which am not sure
|
|
who generates this or what it is used for.
|
|
|
|
(EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
|
|
|
|
* Expression.cs: Add support for Coalesce.
|
|
(BinaryCoreCheck): Move more checking here, instead of the helper
|
|
routines, will remove them next.
|
|
|
|
* LambdaExpression.cs (Compile): Create the delegate last, so we
|
|
manage to save the assembly while debugging in case of error
|
|
|
|
2008-01-21 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* Expression.cs (BinaryCoreCheck): Add checking for a few
|
|
operators here (to avoid doing a second pass, handles AndAlso and
|
|
OrElse).
|
|
|
|
(AndAlso, OrElse): Add some code.
|
|
|
|
* BinaryExpression.cs: Instead of using GetValueOrDefault use
|
|
get_Value, as we already probed for the lack of value.
|
|
|
|
Split out support for And/Or to a separate routine as the code is
|
|
not very easy to share with the arithmetics code.
|
|
|
|
2008-01-21 Marek Safar <marek.safar@gmail.com>
|
|
|
|
* BinaryExpression.cs: Fixed initobj initialization.
|
|
|
|
2008-01-21 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
|
|
Move the IsUnsigned helper from BinaryExpression to Expression,
|
|
so it can be used in UnaryExpression.
|
|
|
|
2008-01-21 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* Start code generation for nullables, currently this generates
|
|
incorrect code for things like:
|
|
|
|
Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
|
|
e2.Compile ().Invoke (null, 3))
|
|
|
|
This should return null, but returns something else.
|
|
|
|
* Introduce LINQ_DBG env variable, which generates a linq file in
|
|
/tmp; It currently does not work as well as it should, as the
|
|
Func<> parameters do not mwatch the generated method.
|
|
Investigate.
|
|
|
|
|
|
2008-01-20 Miguel de Icaza <miguel@novell.com>
|
|
|
|
Introduce support for Nullable arguments, no code is generated for
|
|
these yet, its only tests + node creation behavior at this point.
|
|
|
|
* Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
|
|
as operators, they must both be nullable.
|
|
|
|
NullableTypes in the arguments are transformed into the underlying
|
|
values when doing the method validation.
|
|
|
|
2008-01-18 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* ParameterExpression.cs: Add emit support.
|
|
|
|
2008-01-18 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
|
|
|
|
2008-01-18 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* BinaryExpression.cs: Add support for emitting code for some
|
|
operators (ported from the Mono C# compiler).
|
|
|
|
Add tests.
|
|
|
|
2008-01-17 Miguel de Icaza <miguel@novell.com>
|
|
|
|
Beginning of code generation framework for Linq.Expressions.
|
|
Some code was borrowed by from the C# compiler
|
|
|
|
* Expression_T.cs: Fill in the blanks.
|
|
|
|
* LambdaExpression.cs: Validation of parameters mostly, a tiny bit
|
|
of codegen.
|
|
|
|
* ConstantExpression.cs: Mostly done, need to write tests for
|
|
non-fundamental types and other ValueType initializations.
|
|
|
|
2008-01-17 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: implement MakeMemberAccess.
|
|
|
|
2008-01-17 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
|
|
implement ArrayIndex.
|
|
|
|
2008-01-17 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: Use TypeCode for IsInt and IsNumber.
|
|
|
|
2008-01-16 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* Expression.cs: Add support for user-defined operators.
|
|
|
|
Put back various binary operator tests.
|
|
|
|
2008-01-16 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: fix call for static methods.
|
|
|
|
2008-01-15 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* Expression.cs: Do validation on the method parameters and use
|
|
the return type if provided.
|
|
|
|
2008-01-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* MethodCallExpression.cs, Expression.cs
|
|
ExpressionPrinter.cs: Implement Call (Expression, ...)
|
|
|
|
2008-01-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ConditionalExpressionExpression.cs
|
|
ExpressionPrinter.cs : implement Expression.Condition.
|
|
|
|
2008-01-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs,
|
|
ParameterExpression.cs,
|
|
ExpressionPrinter.cs: implement Expression.Parameter
|
|
|
|
2008-01-15 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionPrinter.cs (VisitBinaryExpression): simple
|
|
implementation (probably misses a few cases).
|
|
|
|
2008-01-14 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* Expression.cs: Bring back the (most) of binary operators. Added
|
|
type checking as well and reorganized the source file by topic
|
|
instead of alphabetical sorting.
|
|
|
|
2008-01-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* ExpressionPrinter.cs: print ArrayLength.
|
|
|
|
2008-01-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: TypeAs can't take value types.
|
|
* ExpressionPrinter.cs: implement TypeAs.
|
|
|
|
2008-01-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: implement TypeIs.
|
|
* ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
|
|
* TypeBinaryExpression.cs: add proper ctor.
|
|
|
|
2008-01-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
|
|
|
|
2008-01-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* BinaryExpression.cs,
|
|
* Expression.cs: revert part of Miguel's last patch.
|
|
MakeBinary is expected to call the appropriate factory
|
|
methods. Whose methods that are responsible for creating
|
|
the good BinaryExpression, wether they use a custom method
|
|
or not.
|
|
|
|
2008-01-14 Jb Evain <jbevain@novell.com>
|
|
|
|
* Expression.cs: MakeUnary is expected to call the appropriate
|
|
factory methods.
|
|
|
|
2008-01-14 Miguel de Icaza <miguel@novell.com>
|
|
|
|
* Expression.cs (Constant, MakeBinary and consumers of it): Some
|
|
more fill-up changes.
|
|
|
|
MakeBinary will need much more work to support user-provided
|
|
types.
|
|
|
|
2008-01-13 Jb Evain <jbevain@novell.com>
|
|
|
|
* *.cs: fresh implementation.
|