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.
