2006-11-30 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Thu, 30 Nov 2006 23:33:07 +0000 (23:33 -0000)
committerMarek Safar <marek.safar@gmail.com>
Thu, 30 Nov 2006 23:33:07 +0000 (23:33 -0000)
commit288d2d8ecfdbc62a9b8f956020eca7fa8131f5f8
tree5e9909607535770f82f3081222aa6a45d0f07c8e
parent27985ed08ef7053aacb2ec905f431efaf132cdc4
2006-11-30  Marek Safar  <marek.safar@gmail.com>

Correct unary operators implementation (part I)
Also fixes #80026

* cfold.cs (Error_CompileTimeOverflow): Made internal

* const.cs (IConstant): Changed to use reference to constant and
not constant itself.
Updated IConstant implementations.

* constant.cs (CreateConstant): New factory method.
Updated IConstant implementation.

* convert.cs (ImplicitStandardConversionExists): Uses compiler Equals.

* ecore.cs: Updated to use CreateConstantReference.

* enum.cs: Reflects IConstant changes.

* expression.cs (Unary): Reimplemented +,-,~ to conform C# standard.

* literal.cs (NullConstant): Change to be independently usable.

Second try :-(

svn path=/trunk/mcs/; revision=68785
mcs/mcs/ChangeLog
mcs/mcs/cfold.cs
mcs/mcs/const.cs
mcs/mcs/constant.cs
mcs/mcs/convert.cs
mcs/mcs/ecore.cs
mcs/mcs/enum.cs
mcs/mcs/expression.cs
mcs/mcs/literal.cs