diff options
author | Andy Clement <aclement@gopivotal.com> | 2015-04-01 08:02:01 -0700 |
---|---|---|
committer | Andy Clement <aclement@gopivotal.com> | 2015-04-01 08:02:01 -0700 |
commit | c6753a8aaf104ddd8e3d50ea493ea3ab579fc2fc (patch) | |
tree | 0b7a21ee9b68716fc3f50adad782148cba13ffb5 /util/testsrc | |
parent | 0c9521ae358073133859d9bacbf269cee56258cf (diff) | |
download | aspectj-c6753a8aaf104ddd8e3d50ea493ea3ab579fc2fc.tar.gz aspectj-c6753a8aaf104ddd8e3d50ea493ea3ab579fc2fc.zip |
406167: cope with rogue generic inner type signatures
Diffstat (limited to 'util/testsrc')
-rw-r--r-- | util/testsrc/org/aspectj/util/GenericSignatureParserTest.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/util/testsrc/org/aspectj/util/GenericSignatureParserTest.java b/util/testsrc/org/aspectj/util/GenericSignatureParserTest.java index c46c97b63..5a9e083e4 100644 --- a/util/testsrc/org/aspectj/util/GenericSignatureParserTest.java +++ b/util/testsrc/org/aspectj/util/GenericSignatureParserTest.java @@ -95,6 +95,27 @@ public class GenericSignatureParserTest extends TestCase { assertEquals("Ljava/util/Comparable<-TE;>;", sig.superInterfaceSignatures[0].toString()); } + public void testFunky_406167() { + ClassSignature sig = parser + .parseAsClassSignature("Lcom/google/android/gms/internal/hb<TT;>.com/google/android/gms/internal/hb$b<Ljava/lang/Boolean;>;"); + // Note the package prefix on the nested types has been dropped + assertEquals("Lcom/google/android/gms/internal/hb<TT;>.hb$b<Ljava/lang/Boolean;>;",sig.superclassSignature.toString()); + sig = parser + .parseAsClassSignature("Lcom/a/a/b/t<TK;TV;>.com/a/a/b/af.com/a/a/b/ag;Ljava/util/ListIterator<TV;>;"); + // Note the package prefix on the nested types has been dropped + assertEquals("Lcom/a/a/b/t<TK;TV;>.af.ag;",sig.superclassSignature.toString()); + assertEquals("Ljava/util/ListIterator<TV;>;",sig.superInterfaceSignatures[0].toString()); + sig = parser.parseAsClassSignature("Lcom/google/android/gms/internal/hb.com/google/android/gms/internal/hb$b<Ljava/lang/Boolean;>;"); + // Note the package prefix on the nested types has been dropped + assertEquals("Lcom/google/android/gms/internal/hb.hb$b<Ljava/lang/Boolean;>;",sig.superclassSignature.toString()); + sig = parser + .parseAsClassSignature("Lcom/a/a/b/t.com/a/a/b/af.com/a/a/b/ag;Ljava/util/ListIterator<TV;>;"); + // Note the package prefix on the nested types has been dropped + assertEquals("Lcom/a/a/b/t.af.ag;",sig.superclassSignature.toString()); + assertEquals("Ljava/util/ListIterator<TV;>;",sig.superInterfaceSignatures[0].toString()); + } + + public void testFieldSignatureParsingClassType() { FieldTypeSignature fsig = parser.parseAsFieldSignature("Ljava/lang/String;"); assertTrue("ClassTypeSignature", fsig instanceof ClassTypeSignature); @@ -155,7 +176,7 @@ public class GenericSignatureParserTest extends TestCase { assertEquals("Ljava/lang/Exception;", mSig.throwsSignatures[0].toString()); assertEquals("Ljava/lang/RuntimeException;", mSig.throwsSignatures[1].toString()); } - + public void testMethodSignaturePrimitiveParams() { GenericSignature.MethodTypeSignature mSig = parser.parseAsMethodSignature("(ILjava/lang/Object;)V"); assertEquals("2 parameters", 2, mSig.parameters.length); |