summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoraclement <aclement>2008-10-28 00:40:20 +0000
committeraclement <aclement>2008-10-28 00:40:20 +0000
commite2fac0e58679db78ef8ce62e9e2945b5e3a5a696 (patch)
tree29223e89b9b96c3f9abeffaba05eef64530f93ea /tests
parent6f955f1680d2622538cbded6bbe9e70e3468b0f5 (diff)
downloadaspectj-e2fac0e58679db78ef8ce62e9e2945b5e3a5a696.tar.gz
aspectj-e2fac0e58679db78ef8ce62e9e2945b5e3a5a696.zip
252285: tests
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs163/pr252285/Bridged.java31
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java4
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/ajc163.xml12
3 files changed, 47 insertions, 0 deletions
diff --git a/tests/bugs163/pr252285/Bridged.java b/tests/bugs163/pr252285/Bridged.java
new file mode 100644
index 000000000..94633e105
--- /dev/null
+++ b/tests/bugs163/pr252285/Bridged.java
@@ -0,0 +1,31 @@
+import java.lang.reflect.Method;
+import java.util.*;
+
+interface Super<R extends Number> {
+}
+
+aspect X {
+ private T Super<T>.getterA;
+}
+
+
+public class Bridged implements Super<Integer> {
+
+ // Print BRIDGE status of all getter* methods
+ public static void main(String[] argv) {
+ Method[] ms = Bridged.class.getMethods();
+ List results = new ArrayList();
+ for (int i = 0; i < ms.length; i++) {
+ if (ms[i].getName().indexOf("getter")!=-1) {
+
+results.add(ms[i].getName()+"()"+ms[i].getReturnType().getName()+ " isBridged?"+((ms[i].getModifiers() & 0x0040) != 0));
+ }
+ }
+ Collections.sort(results);
+ for (Iterator iterator = results.iterator(); iterator.hasNext();) {
+ String entry = (String) iterator.next();
+ System.out.println(entry);
+ }
+ }
+}
+
diff --git a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
index 756f05ddf..9fab888d1 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
@@ -30,6 +30,10 @@ public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("bridge methods for generic itds");
}
+ public void testGenericFieldBridging_pr252285() {
+ runTest("bridge methods for generic itd fields");
+ }
+
public static Test suite() {
return XMLBasedAjcTestCase.loadSuite(Ajc163Tests.class);
}
diff --git a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
index cb5d11813..519cf9fdd 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
+++ b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
@@ -23,5 +23,17 @@
</stdout>
</run>
</ajc-test>
+
+ <ajc-test dir="bugs163/pr252285" title="bridge methods for generic itd fields">
+ <compile files="Bridged.java" options="-1.5"/>
+ <run class="Bridged">
+ <stdout>
+ <line text="ajc$interFieldGet$X$Super$getterA()java.lang.Integer isBridged?false"/>
+ <line text="ajc$interFieldGet$X$Super$getterA()java.lang.Number isBridged?true"/>
+ <line text="ajc$interFieldSet$X$Super$getterA()void isBridged?false"/>
+ <line text="ajc$interFieldSet$X$Super$getterA()void isBridged?true"/>
+ </stdout>
+ </run>
+ </ajc-test>
</suite> \ No newline at end of file