using System;
-class X
+class A
{
- static int Main (string[] args)
+ public static int operator + (short x, A b)
{
- int[] t = args.Length > 0 ? null : null;
- return t == null ? 0 : 1;
+ return -1;
+ }
+
+ public static int operator - (A a)
+ {
+ return -1;
+ }
+}
+
+class B : A
+{
+ public static int operator + (int x, B d)
+ {
+ return 1;
+ }
+
+ public static int operator - (B b)
+ {
+ return 1;
}
}
+
+class C : B
+{
+}
+
+public class Test
+{
+ public static int Main ()
+ {
+ var b = new B ();
+ short s = 3;
+ var res = s + b;
+
+ if (res != 1)
+ return 1;
+
+ var c = new C ();
+ if (-c != 1)
+ return 2;
+
+ return 0;
+ }
+}
\ No newline at end of file