2 using System.Threading.Tasks;
3 using System.Linq.Expressions;
5 public static class Program
7 public delegate void DelegateVoid (int arg);
8 public delegate int DelegateInt (string arg);
10 public static int Main ()
21 static void TT (Task<string> a)
25 static void TT (Task<object> b)
27 throw new ApplicationException ("wrong overload");
30 static void NN (sbyte a)
34 static void NN (uint? b)
36 throw new ApplicationException ("wrong overload");
39 static void NN2 (sbyte? a)
43 static void NN2 (uint? b)
45 throw new ApplicationException ("wrong overload");
48 public static void Bar (int arg)
52 public static int Bar (string arg)
57 public static void Foo (DelegateVoid input)
59 throw new ApplicationException ("wrong overload");
62 public static void Foo (DelegateInt input)
66 static void Complex (Expression<Func<Task<short>>> arg)
70 static void Complex (Expression<Func<Task<ulong>>> arg)
72 throw new ApplicationException ("wrong overload");