aboutsummaryrefslogtreecommitdiffstats
path: root/util/testsrc
diff options
context:
space:
mode:
authorAndy Clement <aclement@gopivotal.com>2015-04-01 08:02:01 -0700
committerAndy Clement <aclement@gopivotal.com>2015-04-01 08:02:01 -0700
commitc6753a8aaf104ddd8e3d50ea493ea3ab579fc2fc (patch)
tree0b7a21ee9b68716fc3f50adad782148cba13ffb5 /util/testsrc
parent0c9521ae358073133859d9bacbf269cee56258cf (diff)
downloadaspectj-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.java23
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);