this.mock = mock;
}
- DynamicMetaObject GetFakeMetaObject ()
- {
- return GetFakeMetaObject (1);
- }
-
DynamicMetaObject GetFakeMetaObject (object value)
{
Type t = value == null ? typeof (object) : value.GetType ();
{
}
- static void Assert<T> (T expected, T value)
- {
- Assert (expected, value, null);
- }
-
static void Assert<T> (T expected, T value, string name)
{
if (!EqualityComparer<T>.Default.Equals (expected, value)) {
}
}
+#pragma warning disable 168, 169, 219
+
void BinaryAdd_1 (dynamic d, DynamicObjectMock mock)
{
mock.BinaryOperation = (binder, arg) => {
d = checked (d + 3);
}
+
+ void BinaryAddChecked_2 (dynamic d, DynamicObjectMock mock)
+ {
+ mock.BinaryOperation = (binder, arg) => {
+ Assert (binder.Operation, ExpressionType.Add, "Operation");
+ Assert (binder.IsChecked, true, "IsChecked");
+ Assert (binder.IsMemberAccess, false, "IsMemberAccess");
+ Assert (binder.ArgumentInfo, new[] {
+ new CSharpArgumentInfo (CSharpArgumentInfoFlags.None, null),
+ new CSharpArgumentInfo (CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.LiteralConstant, null) },
+ "ArgumentInfo");
+
+ Assert (arg, 3, "arg");
+ };
+
+ Func<dynamic> r;
+ checked {
+ r = () => d + 3;
+ }
+
+ r ();
+ }
void BinaryAddAssign_1 (dynamic d, DynamicObjectMock mock)
{
object x = d || null;
}
+
+#pragma warning restore 168, 169, 219
static bool RunTest (MethodInfo test)
{
Console.WriteLine (failures + " tests failed");
return failures;
}
-}
\ No newline at end of file
+}
int v = int.MaxValue;
AssertChecked (() => d + v, 7, "#1");
- // int? v2 = v;
- // AssertChecked (() => d + v2, null, "#2");
+ int? v2 = v;
+ AssertChecked (() => d + v2, null, "#2");
-// MyType v3 = new MyType (int.MaxValue);
- // AssertChecked (() => d + v3, new MyType (35), "#3");
+ MyType v3 = new MyType (int.MaxValue);
+ AssertChecked (() => d + v3, new MyType (35), "#3");
}
}