CSharpFunctionResolverTests.cs (226)
466Resolve(process, resolver, "F", "A.F()");
489Resolve(process, resolver, "F", "B.F(A)", "B.F(A[])", "B.F(A[,,])", "B.F(A[][,,])", "B.F(A[,,][])", "B.F(A[][][])");
490Resolve(process, resolver, "F(A)", "B.F(A)");
491Resolve(process, resolver, "F(A[])", "B.F(A[])");
492Resolve(process, resolver, "F(A[][])");
493Resolve(process, resolver, "F(A[,])");
494Resolve(process, resolver, "F(A[,,])", "B.F(A[,,])");
495Resolve(process, resolver, "F(A[,,][])", "B.F(A[,,][])");
496Resolve(process, resolver, "F(A[][,,])", "B.F(A[][,,])");
497Resolve(process, resolver, "F(A[,][,,])");
498Resolve(process, resolver, "F(A[][][])", "B.F(A[][][])");
499Resolve(process, resolver, "F(A[][][][])");
516Resolve(process, resolver, "F", "C.F(System.Int32*[])", "C.F(System.Int32**)");
517Resolve(process, resolver, "F(int)");
518Resolve(process, resolver, "F(int*)");
519Resolve(process, resolver, "F(int[])");
520Resolve(process, resolver, "F(int*[])", "C.F(System.Int32*[])");
521Resolve(process, resolver, "F(int**)", "C.F(System.Int32**)");
522Resolve(process, resolver, "F(Int32**)", "C.F(System.Int32**)");
523Resolve(process, resolver, "F(C<int*>)");
524Resolve(process, resolver, "F(C<int>*)");
541Resolve(process, resolver, "F", "S.F(System.Nullable<S>)", "S.F(System.Nullable<System.Int32>[])");
542Resolve(process, resolver, "F(S)");
543Resolve(process, resolver, "F(S?)", "S.F(System.Nullable<S>)");
544Resolve(process, resolver, "F(S??)");
545Resolve(process, resolver, "F(int?[])", "S.F(System.Nullable<System.Int32>[])");
564Resolve(process, resolver, "F", "C.F(out, ref)", "C.F(ref out, ref ref)");
567Resolve(process, resolver, "F(@out, @ref)", "C.F(out, ref)");
568Resolve(process, resolver, "F(@out, out @ref)");
569Resolve(process, resolver, "F(ref @out, @ref)");
570Resolve(process, resolver, "F(ref @out, out @ref)", "C.F(ref out, ref ref)");
571Resolve(process, resolver, "F(out @out, ref @ref)", "C.F(ref out, ref ref)");
599Resolve(process, resolver, "F", "B.F()", "C.F()");
600Resolve(process, resolver, "A.F");
601Resolve(process, resolver, "B.F", "B.F()");
602Resolve(process, resolver, "B.F()", "B.F()");
603Resolve(process, resolver, "B.F(object)");
604Resolve(process, resolver, "B.F<T>");
605Resolve(process, resolver, "C.F", "C.F()");
628Resolve(process, resolver, "C.F", "C.global::I.F()", "C.J.F()");
631Resolve(process, resolver, "C.I.F", "C.I.F()");
634Resolve(process, resolver, "C.J.F");
665Resolve(process, resolver, "P", "B.get_P()", "B.set_P(System.Object)", "C.get_P()", "D.set_P(System.Int32)");
666Resolve(process, resolver, "A.P");
667Resolve(process, resolver, "B.P", "B.get_P()", "B.set_P(System.Object)");
668Resolve(process, resolver, "B.P()");
669Resolve(process, resolver, "B.P(object)");
670Resolve(process, resolver, "B.P<T>");
671Resolve(process, resolver, "C.P", "C.get_P()");
672Resolve(process, resolver, "C.P()");
673Resolve(process, resolver, "D.P", "D.set_P(System.Int32)");
674Resolve(process, resolver, "D.P()");
675Resolve(process, resolver, "D.P(object)");
676Resolve(process, resolver, "get_P", "B.get_P()", "C.get_P()");
677Resolve(process, resolver, "set_P", "B.set_P(System.Object)", "D.set_P(System.Int32)");
678Resolve(process, resolver, "B.get_P()", "B.get_P()");
679Resolve(process, resolver, "B.set_P", "B.set_P(System.Object)");
702Resolve(process, resolver, "C.P", "C.global::I.get_P()", "C.global::I.set_P(System.Int32)", "C.J.get_P()", "C.J.set_P(System.Int32)");
703Resolve(process, resolver, "C.get_P", "C.global::I.get_P()", "C.J.get_P()");
704Resolve(process, resolver, "C.set_P", "C.global::I.set_P(System.Int32)", "C.J.set_P(System.Int32)");
707Resolve(process, resolver, "C.I.P", "C.I.get_P()", "C.I.set_P(System.Int32)");
708Resolve(process, resolver, "C.I.get_P", "C.I.get_P()");
709Resolve(process, resolver, "C.I.set_P", "C.I.set_P(System.Int32)");
712Resolve(process, resolver, "C.J.P");
713Resolve(process, resolver, "C.J.get_P");
714Resolve(process, resolver, "C.J.set_P");
749Resolve(process, resolver, "E", "B.add_E(System.Action)", "B.remove_E(System.Action)", "C.add_E(System.Action)", "C.remove_E(System.Action)", "D.add_E(System.Action)", "D.remove_E(System.Action)");
750Resolve(process, resolver, "A.E");
751Resolve(process, resolver, "B.E", "B.add_E(System.Action)", "B.remove_E(System.Action)");
752Resolve(process, resolver, "B.E()");
753Resolve(process, resolver, "B.E(System.Action)", "B.add_E(System.Action)", "B.remove_E(System.Action)");
754Resolve(process, resolver, "B.E<T>");
755Resolve(process, resolver, "C.E", "C.add_E(System.Action)", "C.remove_E(System.Action)");
756Resolve(process, resolver, "C.E(System.Action)", "C.add_E(System.Action)", "C.remove_E(System.Action)");
757Resolve(process, resolver, "D.E", "D.add_E(System.Action)", "D.remove_E(System.Action)");
758Resolve(process, resolver, "D.E()");
759Resolve(process, resolver, "D.E(System.Action)", "D.add_E(System.Action)", "D.remove_E(System.Action)");
760Resolve(process, resolver, "add_E", "B.add_E(System.Action)", "C.add_E(System.Action)", "D.add_E(System.Action)");
761Resolve(process, resolver, "remove_E", "B.remove_E(System.Action)", "C.remove_E(System.Action)", "D.remove_E(System.Action)");
762Resolve(process, resolver, "B.add_E(System.Action)", "B.add_E(System.Action)");
763Resolve(process, resolver, "B.remove_E", "B.remove_E(System.Action)");
786Resolve(process, resolver, "C.E", "C.global::I.add_E(System.Action)", "C.global::I.remove_E(System.Action)", "C.J.add_E(System.Action)", "C.J.remove_E(System.Action)");
787Resolve(process, resolver, "C.add_E", "C.global::I.add_E(System.Action)", "C.J.add_E(System.Action)");
788Resolve(process, resolver, "C.remove_E", "C.global::I.remove_E(System.Action)", "C.J.remove_E(System.Action)");
791Resolve(process, resolver, "C.I.E", "C.I.add_E(System.Action)", "C.I.remove_E(System.Action)");
792Resolve(process, resolver, "C.I.add_E", "C.I.add_E(System.Action)");
793Resolve(process, resolver, "C.I.remove_E", "C.I.remove_E(System.Action)");
796Resolve(process, resolver, "C.J.E");
797Resolve(process, resolver, "C.J.add_E");
798Resolve(process, resolver, "C.J.remove_E");
831Resolve(process, resolver, "A", "A..cctor()", "A..ctor()", "A..ctor(System.Object)", "D.get_A()");
832Resolve(process, resolver, "A.A", "A..cctor()", "A..ctor()", "A..ctor(System.Object)");
833Resolve(process, resolver, "B", "B..ctor()");
834Resolve(process, resolver, "B<T>", "D.B<T>()");
835Resolve(process, resolver, "C", "C<T>..ctor()");
836Resolve(process, resolver, "C<T>");
837Resolve(process, resolver, "C<T>.C", "C<T>..ctor()");
838Resolve(process, resolver, "E", "E..ctor()", "E..cctor()");
871Resolve(process, resolver, "A.F", "A.F()");
872Resolve(process, resolver, "A.F<U>()", "A.F<T>()");
873Resolve(process, resolver, "A.F<T>", "A.F<T>()");
874Resolve(process, resolver, "A.F<T, T>", "A.F<T, U>()");
877Resolve(process, resolver, "A<T>.F", "A<T>.F()");
878Resolve(process, resolver, "A<_>.F<_>");
879Resolve(process, resolver, "A<_>.F<_, _>", "A<T>.F<U, V>()");
880Resolve(process, resolver, "B.F()");
881Resolve(process, resolver, "B.F<T>()", "B.F<T>()");
882Resolve(process, resolver, "B.F<T, U>()");
911Resolve(process, resolver, "F", "N.B.F()", "N.M.A<T>.F()");
912Resolve(process, resolver, "A<T>.F", "N.M.A<T>.F()");
913Resolve(process, resolver, "N.A<T>.F");
914Resolve(process, resolver, "M.A<T>.F", "N.M.A<T>.F()");
915Resolve(process, resolver, "N.M.A<T>.F", "N.M.A<T>.F()");
916Resolve(process, resolver, "N.B.F", "N.B.F()");
958Resolve(process, resolver, "F", "B.F()", "A.B.F()", "N.A<T>.B<U>.F()");
959Resolve(process, resolver, "F<T>", "A.B<T>.F<U>()", "N.A<T>.B.F<U>()");
960Resolve(process, resolver, "A.F");
961Resolve(process, resolver, "A.B.F", "A.B.F()");
962Resolve(process, resolver, "A.B.F<T>");
963Resolve(process, resolver, "A.B<T>.F<U>", "A.B<T>.F<U>()");
964Resolve(process, resolver, "A<T>.B.F<U>", "N.A<T>.B.F<U>()");
965Resolve(process, resolver, "A<T>.B<U>.F", "N.A<T>.B<U>.F()");
966Resolve(process, resolver, "B.F", "B.F()", "A.B.F()");
967Resolve(process, resolver, "B.F<T>", "N.A<T>.B.F<U>()");
968Resolve(process, resolver, "B<T>.F", "N.A<T>.B<U>.F()");
969Resolve(process, resolver, "B<T>.F<U>", "A.B<T>.F<U>()");
1014Resolve(process, resolver, "F", "A.B.C.F(A.B.C)", "A.B.C.F(A.B<A.B.T>.C)", "A.B<T>.C.F(A.B<T>.C)", "A.B<T>.C.F(A.B.C)", "A<T>.B.C.F(A<T>.B.C)", "A<T>.B.C.F(A.B<T>.C)");
1015Resolve(process, resolver, "F(C)", "A.B.C.F(A.B.C)", "A.B.C.F(A.B<A.B.T>.C)", "A.B<T>.C.F(A.B.C)");
1016Resolve(process, resolver, "F(B.C)", "A.B.C.F(A.B.C)", "A.B<T>.C.F(A.B.C)");
1017Resolve(process, resolver, "F(B<T>.C)", "A.B.C.F(A.B<A.B.T>.C)");
1018Resolve(process, resolver, "A.B.C.F", "A.B.C.F(A.B.C)", "A.B.C.F(A.B<A.B.T>.C)");
1019Resolve(process, resolver, "A<T>.B.C.F", "A<T>.B.C.F(A<T>.B.C)", "A<T>.B.C.F(A.B<T>.C)");
1020Resolve(process, resolver, "A.B<T>.C.F", "A.B<T>.C.F(A.B<T>.C)", "A.B<T>.C.F(A.B.C)");
1021Resolve(process, resolver, "B<T>.C.F(B<T>.C)", "A.B<T>.C.F(A.B<T>.C)");
1070Resolve(process, resolver, "F(C)", "B.C.F(B.C)", "B.C.F(A3.B.C)", "A1.B.C.F(A1.B.C)", "A2.B.C.F(A2.B.C)", "A2.B.C.F(A1.B.C)", "A3.B.C.F(A3.B.C)", "A3.B.C.F(A2.B.C)");
1071Resolve(process, resolver, "B.C.F(B.C)", "B.C.F(B.C)", "B.C.F(A3.B.C)", "A1.B.C.F(A1.B.C)", "A2.B.C.F(A2.B.C)", "A2.B.C.F(A1.B.C)", "A3.B.C.F(A3.B.C)", "A3.B.C.F(A2.B.C)");
1072Resolve(process, resolver, "B.C.F(A1.B.C)", "A1.B.C.F(A1.B.C)", "A2.B.C.F(A1.B.C)");
1073Resolve(process, resolver, "B.C.F(A2.B.C)", "A2.B.C.F(A2.B.C)", "A3.B.C.F(A2.B.C)");
1074Resolve(process, resolver, "B.C.F(A3.B.C)", "B.C.F(A3.B.C)", "A3.B.C.F(A3.B.C)");
1103Resolve(process, resolver, "F<T>", "A.B<T>.F<U>(A.B<T>)", "A.B<T>.F<U>(A.B<U>)", "A<T>.B<U>.F<V>(T)", "A<T>.B<U>.F<V>(A<U>)", "A<T>.B<U>.F<V>(A<T>.B<V>)");
1104Resolve(process, resolver, "B<T>.F<U>", "A.B<T>.F<U>(A.B<T>)", "A.B<T>.F<U>(A.B<U>)", "A<T>.B<U>.F<V>(T)", "A<T>.B<U>.F<V>(A<U>)", "A<T>.B<U>.F<V>(A<T>.B<V>)");
1105Resolve(process, resolver, "F<T>(B<T>)", "A.B<T>.F<U>(A.B<U>)");
1106Resolve(process, resolver, "F<U>(B<T>)"); // No T in signature to bind to.
1107Resolve(process, resolver, "F<T>(B<U>)"); // No U in signature to bind to.
1108Resolve(process, resolver, "B<X>.F<Y>(B<X>)", "A.B<T>.F<U>(A.B<T>)");
1109Resolve(process, resolver, "B<X>.F<Y>(B<Y>)", "A.B<T>.F<U>(A.B<U>)");
1110Resolve(process, resolver, "B<U>.F<V>(T)"); // No T in signature to bind to.
1111Resolve(process, resolver, "B<U>.F<V>(A<U>)", "A<T>.B<U>.F<V>(A<U>)");
1112Resolve(process, resolver, "B<U>.F<V>(B<V>)", "A.B<T>.F<U>(A.B<U>)");
1113Resolve(process, resolver, "B<V>.F<U>(B<U>)", "A.B<T>.F<U>(A.B<U>)");
1114Resolve(process, resolver, "A<X>.B<Y>.F<Z>(X)", "A<T>.B<U>.F<V>(T)");
1115Resolve(process, resolver, "A<X>.B<Y>.F<Z>(B<Z>)", "A<T>.B<U>.F<V>(A<T>.B<V>)");
1138Resolve(process, resolver, "method", "A.method()");
1139Resolve(process, resolver, "Method", "A.Method(System.Object)", "B.Method()");
1140Resolve(process, resolver, "property", "A.get_property()");
1141Resolve(process, resolver, "Property", "B.get_Property()", "B.set_Property(System.Object)");
1142Resolve(process, resolver, "PROPERTY");
1143Resolve(process, resolver, "get_property", "A.get_property()");
1144Resolve(process, resolver, "GET_PROPERTY");
1170Resolve(process, resolver, "Method", "One.Two.Three.Method(One.Two.Three)", "one.two.THREE.Method(one.two.THREE)");
1171Resolve(process, resolver, "Three.Method", "One.Two.Three.Method(One.Two.Three)");
1172Resolve(process, resolver, "three.Method");
1173Resolve(process, resolver, "Method(three)");
1174Resolve(process, resolver, "THREE.Method(THREE)", "one.two.THREE.Method(one.two.THREE)");
1175Resolve(process, resolver, "One.Two.Three.Method", "One.Two.Three.Method(One.Two.Three)");
1176Resolve(process, resolver, "ONE.TWO.THREE.Method");
1177Resolve(process, resolver, "Method(One.Two.Three)", "One.Two.Three.Method(One.Two.Three)");
1178Resolve(process, resolver, "Method(one.two.THREE)", "one.two.THREE.Method(one.two.THREE)");
1179Resolve(process, resolver, "Method(one.two.Three)");
1180Resolve(process, resolver, "THREE", "one.two.THREE..ctor()");
1214Resolve(process, resolver, "F<T, U>", "A<T>.B<U>.F<V, W>()", "D<T>.F<U, V>(N.C<A<U>.B<V>[]>)");
1215Resolve(process, resolver, "F<T, U>(C)"); // No type argument for C<>
1216Resolve(process, resolver, "F<T, U>(C<T>)"); // Incorrect type argument for C<>
1217Resolve(process, resolver, "F<T, U>(C<B<U>>)"); // No array qualifier
1218Resolve(process, resolver, "F<T, U>(C<B<T>[]>)"); // Incorrect type argument for B<>
1219Resolve(process, resolver, "F<T, U>(C<B<U>[]>)", "D<T>.F<U, V>(N.C<A<U>.B<V>[]>)");
1220Resolve(process, resolver, "F<T, U>(N.C<B<U>[]>)", "D<T>.F<U, V>(N.C<A<U>.B<V>[]>)");
1221Resolve(process, resolver, "D<X>.F<Y, Z>", "D<T>.F<U, V>(N.C<A<U>.B<V>[]>)");
1222Resolve(process, resolver, "D<X>.F<Y, Z>(C<A<Y>[]>)"); // No nested type B
1223Resolve(process, resolver, "D<X>.F<Y, Z>(C<A<Y>.B<Z>[]>)", "D<T>.F<U, V>(N.C<A<U>.B<V>[]>)");
1224Resolve(process, resolver, "D<X>.F<Y, Z>(C<A<Y>.B<Y>[]>)"); // Incorrect type argument for B<>.
1247Resolve(process, resolver, "@public", "namespace.struct.get_public()");
1248Resolve(process, resolver, "@namespace.@struct.@public", "namespace.struct.get_public()");
1269Resolve(process, resolver, "F<@out>", "class<in>.F<out>(in, out)");
1270Resolve(process, resolver, "F<@in>", "class<in>.F<out>(in, out)");
1271Resolve(process, resolver, "@class<@in>.F<@out>", "class<in>.F<out>(in, out)");
1272Resolve(process, resolver, "@class<@this>.F<@base>", "class<in>.F<out>(in, out)");
1273Resolve(process, resolver, "@class<T>.F<U>", "class<in>.F<out>(in, out)");
1297Resolve(process, resolver, "F(@struct)", "C.F(namespace.struct)");
1298Resolve(process, resolver, "F(@namespace.@struct)", "C.F(namespace.struct)");
1326Resolve(process, resolver, "F(@class<@base>)", "C.F(class<this.base>)");
1327Resolve(process, resolver, "F(@class<@this.@base>)", "C.F(class<this.base>)");
1347Resolve(process, resolver, "F", "C.F(object)", "C.F(Object)", "C.F(System.Object)");
1348Resolve(process, resolver, "F(object)", "C.F(System.Object)");
1349Resolve(process, resolver, "F(Object)", "C.F(Object)", "C.F(System.Object)");
1350Resolve(process, resolver, "F(System.Object)", "C.F(System.Object)");
1351Resolve(process, resolver, "F(@object)", "C.F(object)");
1352Resolve(process, resolver, "F(@Object)", "C.F(Object)", "C.F(System.Object)");
1374Resolve(process, resolver, "F(bool, char, sbyte, byte)", "C.F(System.Boolean, System.Char, System.SByte, System.Byte)");
1375Resolve(process, resolver, "F(System.Int16, System.UInt16, System.Int32, System.UInt32)", "C.F(System.Int16, System.UInt16, System.Int32, System.UInt32)");
1376Resolve(process, resolver, "F(C<UInt32, Int64, UInt64, Single>)", "C.F(C<System.UInt32, System.Int64, System.UInt64, System.Single>)");
1377Resolve(process, resolver, "F(C<double, string, object, decimal>)", "C.F(C<System.Double, System.String, System.Object, System.Decimal>)");
1378Resolve(process, resolver, "F(bool, char, sbyte)");
1379Resolve(process, resolver, "F(C<double, string, object, decimal, bool>)");
1397Resolve(process, resolver, "F(object)");
1398Resolve(process, resolver, "F(IntPtr)", "C.F(System.IntPtr)");
1399Resolve(process, resolver, "F(UIntPtr)", "C.F(System.UIntPtr)");
1400Resolve(process, resolver, "F(TypedReference)", "C.F(System.TypedReference)");
1422Resolve(process, resolver, "F", "C.F(System.Object)", "C.F(C<System.Object[]>)");
1423Resolve(process, resolver, "F(object)", "C.F(System.Object)");
1424Resolve(process, resolver, "F(C<object[]>)", "C.F(C<System.Object[]>)");
1425Resolve(process, resolver, "F(dynamic)");
1426Resolve(process, resolver, "F(C<dynamic[]>)");
1442Resolve(process, resolver, "F", "C.F()");
1462Resolve(process, resolver, "F", "C.F()");
1491Resolve(process, resolver, "G", "Program.<<Main>$>g__G|0_1()", "F.G()", "F.<G>g__G|0_0()");
1492Resolve(process, resolver, "Program.G", "Program.<<Main>$>g__G|0_1()");
1493Resolve(process, resolver, "F.G", "F.G()", "F.<G>g__G|0_0()");
1494Resolve(process, resolver, "F.G.G");
1518Resolve(process, resolver, "C.F(C)", "C.F(N.C)", "C.F(C)", "N.C.F(N.C)", "N.C.F(C)");
1519Resolve(process, resolver, "C.F(N.C)", "C.F(N.C)", "N.C.F(N.C)");
1520Resolve(process, resolver, "global::C.F(C)", "C.F(N.C)", "C.F(C)"); // Dev14 does not bind global::
1521Resolve(process, resolver, "C.F(global::C)", "C.F(C)", "N.C.F(C)"); // Dev14 does not bind global::
1550Resolve(process, resolver, "F", "B.F(System.Object)", "B.F([notsupported])");
1551Resolve(process, resolver, "F(A<object>)");
1576Resolve(process, resolver, "F", "B.F()");