dynamic d3 = new MyType? (new MyType (-7));
Assert (d3 & new MyType (6), new MyType (0), "#3a");
Assert<MyType?> (d3 + null, null, "#3b");
+
+ dynamic a = (bool?) true;
+ dynamic b = (bool?) null;
+ Assert (a & b, (bool?)null, "#4a");
+ Assert (b & a, (bool?)null, "#4b");
}
void AndAssignedTest ()
Assert (d2 >= null, false, "#3a");
}
+ void IsTest ()
+ {
+ dynamic d = 1;
+ Assert (d is long, false, "#1");
+ Assert (d is int, true, "#2");
+ Assert (d is string, false, "#3");
+ }
+
void LeftShiftTest ()
{
dynamic d = (ulong) 0x7F000;
Assert (d << v2, 0x40000000, "#2");
dynamic d2 = (int?) -2;
Assert (d2 << 1, -4, "#2a");
+
+ dynamic d3 = (int?) null;
+ Assert (d3 << (null << null), (int?)null, "#3");
}
void LeftShiftAssignTest ()
Assert (d != true, false, "#5");
Assert (d != null, true, "#5a");
Assert (d != false, true, "#5b");
+
+ d = null;
+ long? l = null;
+ Assert (d != l, false, "#6a");
+ Assert (l != d, false, "#6b");
}
void NotEqualEnumTest ()
Assert (d || d, true, "#2");
dynamic d3 = new MyType (-7);
- Assert<MyType> (d3 || new MyType (6), new MyType (-1), "#3");
+ Assert<MyType> (d3 || new MyType (6), new MyType (-7), "#3");
}
void RightShiftTest ()
Assert (d >> v2, 0, "#2");
dynamic d2 = (int?) -200;
Assert (d2 >> 1, -100, "#2a");
+
+ dynamic d3 = (int?) null;
+ Assert (d3 >> (null >> null), (int?) null, "#3");
}
void RightShiftAssignTest ()