aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-09-02 09:35:02 +0000
committeracolyer <acolyer>2005-09-02 09:35:02 +0000
commitad753aa80558748ab918988809ba6f58b8c26419 (patch)
tree15a36e27d17c78829d0324a44ed8a4850c1a9789
parent372a025d85641e17d9fff734a0c2e9770fd2d55f (diff)
downloadaspectj-ad753aa80558748ab918988809ba6f58b8c26419.tar.gz
aspectj-ad753aa80558748ab918988809ba6f58b8c26419.zip
tests and fix for pr108062, failing to correctly tokenize (ZZLjava/...)
-rw-r--r--bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java6
-rw-r--r--lib/bcel/bcel-src.zipbin870732 -> 870784 bytes
-rw-r--r--lib/bcel/bcel.jarbin593786 -> 593682 bytes
-rw-r--r--tests/bugs150/pr108602.java38
-rw-r--r--tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java4
-rw-r--r--tests/src/org/aspectj/systemtest/ajc150/ajc150.xml6
6 files changed, 51 insertions, 3 deletions
diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java
index fac5f506b..386f8743e 100644
--- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java
+++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java
@@ -384,10 +384,12 @@ public class GenericSignatureParser {
tokens.add(new String("" + chars[index]));
} else {
identifier.append(chars[index]);
- }
- couldSeePrimitive = false;
+ }
inArray = false;
break;
+ case 'L' :
+ couldSeePrimitive = false;
+ // deliberate fall-through
default :
identifier.append(chars[index]);
}
diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip
index 846d3e557..e1eedf2dd 100644
--- a/lib/bcel/bcel-src.zip
+++ b/lib/bcel/bcel-src.zip
Binary files differ
diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar
index f63428de5..af02780a7 100644
--- a/lib/bcel/bcel.jar
+++ b/lib/bcel/bcel.jar
Binary files differ
diff --git a/tests/bugs150/pr108602.java b/tests/bugs150/pr108602.java
new file mode 100644
index 000000000..3ce6f4b1b
--- /dev/null
+++ b/tests/bugs150/pr108602.java
@@ -0,0 +1,38 @@
+/*
+ * GenericsError.java
+ *
+ * Created on September 1, 2005, 9:36 AM
+ *
+ */
+
+import java.util.Collection;
+
+interface GenericsError {
+ public Collection<String> test(
+ boolean arg1,
+ boolean arg2,
+ Object arg3) ;
+}
+
+
+/*
+ * GenericsErrorImpl.java
+ *
+ * Created on September 1, 2005, 9:37 AM
+ *
+ */
+
+class GenericsErrorImpl implements GenericsError {
+
+ public Collection<String> test(
+ boolean arg1,
+ boolean arg2,
+ Object arg3) { return null; }
+
+}
+
+aspect ForceUnpacking {
+
+ before() : execution(* *(..)) {}
+
+} \ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
index 38e4ded22..af147c2bf 100644
--- a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
@@ -358,6 +358,10 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("synthetic arguments on itd cons are not used in matching");
}
+ public void testParsingOfGenericTypeSignature() {
+ runTest("parse generic type signature with parameterized type in interface");
+ }
+
// helper methods.....
public SyntheticRepository createRepos(File cpentry) {
diff --git a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
index 1450fda38..f6e20ebc8 100644
--- a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
+++ b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
@@ -428,7 +428,11 @@
<message line="6" kind="warning" text="should match"/>
</compile>
</ajc-test>
-
+
+ <ajc-test dir="bugs150" pr="108602" title="parse generic type signature with parameterized type in interface">
+ <compile files="pr108602.java" options="-1.5"/>
+ </ajc-test>
+
<!-- ============================================================================ -->
<!-- ============================================================================ -->