return null;
}
+ public abstract bool IsDefaultValue {
+ get;
+ }
+
public abstract bool IsNegative {
get;
}
ec.ig.Emit (OpCodes.Ldc_I4_0);
}
+ public override bool IsDefaultValue {
+ get {
+ return !Value;
+ }
+ }
+
public override bool IsNegative {
get {
return false;
return new IntConstant (Value);
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return false;
return new IntConstant (Value);
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return false;
return new IntConstant (Value);
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return Value < 0;
{
return new IntConstant (Value);
}
+
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
public override bool IsZeroInteger {
get { return Value == 0; }
return new IntConstant (Value);
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return false;
return Value;
}
- public override DecimalConstant ConvertToDecimal()\r
- {\r
- return new DecimalConstant (Value);\r
- }\r
+ public override DecimalConstant ConvertToDecimal()
+ {
+ return new DecimalConstant (Value);
+ }
public override DoubleConstant ConvertToDouble ()
{
{
return this;
}
+
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
public override bool IsNegative {
get {
return null;
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return false;
return null;
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return Value < 0;
return null;
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return false;
return null;
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return Value < 0;
return null;
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return Value < 0;
{
ILGenerator ig = ec.ig;
- if (Value <= int.MaxValue && Value >= int.MinValue)
+ int [] words = Decimal.GetBits (Value);
+ int power = (words [3] >> 16) & 0xff;
+
+ if (power == 0 && Value <= int.MaxValue && Value >= int.MinValue)
{
IntConstant.EmitInt (ig, (int)Value);
ig.Emit (OpCodes.Newobj, TypeManager.void_decimal_ctor_int_arg);
return;
}
- int [] words = Decimal.GetBits (Value);
//
// FIXME: we could optimize this, and call a better
IntConstant.EmitInt (ig, words [3] >> 31);
// power
- IntConstant.EmitInt (ig, (words [3] >> 16) & 0xff);
+ IntConstant.EmitInt (ig, power);
ig.Emit (OpCodes.Newobj, TypeManager.void_decimal_ctor_five_args);
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == 0;
+ }
+ }
+
public override bool IsNegative {
get {
return Value < 0;
ec.ig.Emit (OpCodes.Ldstr, Value);
}
+ public override bool IsDefaultValue {
+ get {
+ return Value == null;
+ }
+ }
+
public override bool IsNegative {
get {
return false;