From c6753a8aaf104ddd8e3d50ea493ea3ab579fc2fc Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Wed, 1 Apr 2015 08:02:01 -0700 Subject: 406167: cope with rogue generic inner type signatures --- .../aspectj/util/GenericSignatureParserTest.java | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'util/testsrc') 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.com/google/android/gms/internal/hb$b;"); + // Note the package prefix on the nested types has been dropped + assertEquals("Lcom/google/android/gms/internal/hb.hb$b;",sig.superclassSignature.toString()); + sig = parser + .parseAsClassSignature("Lcom/a/a/b/t.com/a/a/b/af.com/a/a/b/ag;Ljava/util/ListIterator;"); + // 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;",sig.superInterfaceSignatures[0].toString()); + sig = parser.parseAsClassSignature("Lcom/google/android/gms/internal/hb.com/google/android/gms/internal/hb$b;"); + // Note the package prefix on the nested types has been dropped + assertEquals("Lcom/google/android/gms/internal/hb.hb$b;",sig.superclassSignature.toString()); + sig = parser + .parseAsClassSignature("Lcom/a/a/b/t.com/a/a/b/af.com/a/a/b/ag;Ljava/util/ListIterator;"); + // 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;",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); -- cgit v1.2.3