diff options
Diffstat (limited to 'test/files/jvm/t8786-sig.scala')
-rw-r--r-- | test/files/jvm/t8786-sig.scala | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/test/files/jvm/t8786-sig.scala b/test/files/jvm/t8786-sig.scala index f22e400528..0745b650e6 100644 --- a/test/files/jvm/t8786-sig.scala +++ b/test/files/jvm/t8786-sig.scala @@ -23,7 +23,6 @@ object Test extends App { def sig (method: String, tp: Class[_]) = a.getDeclaredMethod(method, tp).toString def genSig(method: String, tp: Class[_]) = a.getDeclaredMethod(method, tp).toGenericString - def isVarArgs(method: String, tp: Class[_]) = a.getDeclaredMethod(method, tp).isVarArgs def bound (method: String, tp: Class[_]) = { val m = a.getDeclaredMethod(method, tp) m.getGenericParameterTypes.apply(0) match { @@ -34,17 +33,8 @@ object Test extends App { } } - def check(found: String, expected: String): Unit = - assert(found == expected, s"found: $found\nexpected: $expected") - - def checkVarArgs(method: String, tp: Class[_])(expected: String): Unit = { - assert(isVarArgs(method, tp), s"expected varargs for $method") - val found = genSig(method, tp) - - def varArgsToBraces(sig: String) = sig.replaceAll("""\.\.\.""","[]") - // Normalize sigs so that the tests works on Java 6 (where varargs are printed as []) - // and above (where vargs are pretty printed using ...) - assert(varArgsToBraces(found) == varArgsToBraces(expected), s"found: $found\nexpected: $expected (modulo `...` or `[]` as varargs suffix)") + def check(a: String, b: String) = { + assert(a == b, s"found: $a\nexpected: $b") } val sq = classOf[Seq[_]] @@ -85,15 +75,15 @@ object Test extends App { check(sig("m7", ai) , "public int A.m7(int[])") check(sig("m8", ao) , "public java.lang.Object A.m8(java.lang.Object[])") - checkVarArgs("m1", ao)("public <T> T A.m1(T...)") - checkVarArgs("m2", ao)("public <T> T A.m2(T...)") - checkVarArgs("m3", ao)("public <T> T A.m3(T...)") + check(genSig("m1", ao), "public <T> T A.m1(T...)") + check(genSig("m2", ao), "public <T> T A.m2(T...)") + check(genSig("m3", ao), "public <T> T A.m3(T...)") // testing status quo: signature is wrong for T <: Int, SI-9846 - checkVarArgs("m4", ao)("public <T> T A.m4(T...)") - checkVarArgs("m5", as)("public <T> T A.m5(T...)") - checkVarArgs("m6", as)("public java.lang.String A.m6(java.lang.String...)") - checkVarArgs("m7", ai)("public int A.m7(int...)") - checkVarArgs("m8", ao)("public U A.m8(U...)") + check(genSig("m4", ao), "public <T> T A.m4(T...)") + check(genSig("m5", as), "public <T> T A.m5(T...)") + check(genSig("m6", as), "public java.lang.String A.m6(java.lang.String...)") + check(genSig("m7", ai), "public int A.m7(int...)") + check(genSig("m8", ao), "public U A.m8(U...)") check(bound("m1", ao) , "class java.lang.Object") check(bound("m2", ao) , "class java.lang.Object") |