// Marek Safar (marek.safar@seznam.cz)
//
// Copyright 2002, 2003 Ximian, Inc.
-// Copyright 2003-2008, Novell, Inc.
+// Copyright 2003-2011, Novell, Inc.
//
using System;
}
if (left is NullLiteral && right is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
case Binary.Operator.Multiply:
if (left is NullLiteral && right is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
case Binary.Operator.Division:
if (left is NullLiteral && right is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
case Binary.Operator.Modulus:
if (left is NullLiteral && right is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
//
case Binary.Operator.LeftShift:
if (left is NullLiteral && right is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
//
case Binary.Operator.RightShift:
if (left is NullLiteral && right is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
break;
case Binary.Operator.Equality:
- if (TypeManager.IsReferenceType (lt) && TypeManager.IsReferenceType (rt) ||
+ if (TypeSpec.IsReferenceType (lt) && TypeSpec.IsReferenceType (rt) ||
(left is Nullable.LiftedNull && right.IsNull) ||
(right is Nullable.LiftedNull && left.IsNull)) {
if (left.IsNull || right.IsNull) {
return new BoolConstant (ec.BuiltinTypes, bool_res, left.Location);
case Binary.Operator.Inequality:
- if (TypeManager.IsReferenceType (lt) && TypeManager.IsReferenceType (rt) ||
+ if (TypeSpec.IsReferenceType (lt) && TypeSpec.IsReferenceType (rt) ||
(left is Nullable.LiftedNull && right.IsNull) ||
(right is Nullable.LiftedNull && left.IsNull)) {
if (left.IsNull || right.IsNull) {
case Binary.Operator.LessThan:
if (right is NullLiteral) {
if (left is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
case Binary.Operator.GreaterThan:
if (right is NullLiteral) {
if (left is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
case Binary.Operator.GreaterThanOrEqual:
if (right is NullLiteral) {
if (left is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}
case Binary.Operator.LessThanOrEqual:
if (right is NullLiteral) {
if (left is NullLiteral) {
- var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc).ResolveAsTypeTerminal (ec, false);
+ var lifted_int = new Nullable.NullableType (ec.BuiltinTypes.Int, loc);
+ lifted_int.ResolveAsType (ec);
return (Constant) new Nullable.LiftedBinaryOperator (oper, lifted_int, right, loc).Resolve (ec);
}