if (inflated == null)
return 0;
+ if (IsUnfixed (inflated) >= 0)
+ return 0;
+
param_types[i] = inflated;
}
if (mg == null)
return 0;
- return LowerBoundInference (mg.BestCandidate.ReturnType, rtype) + 1;
+ return LowerBoundInference (mg.BestCandidateReturnType, rtype) + 1;
}
//
--- /dev/null
+using System;
+
+class Factory
+{
+ public class S<G1, G2>
+ {
+ }
+
+ public static S<F1, F2> Create<F1, F2> (F1 f1, F2 f2)
+ {
+ return null;
+ }
+}
+
+class A
+{
+ static TR Test<T1, T2, TR>(T1 t1, T2 t2, Func<T1, T2, TR> f)
+ {
+ return f (t1, t2);
+ }
+
+ static void Main ()
+ {
+ var r = Test ("a", "b", Factory.Create);
+ }
+}
\ No newline at end of file