diff options
author | aclement <aclement> | 2008-10-28 00:40:20 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-10-28 00:40:20 +0000 |
commit | e2fac0e58679db78ef8ce62e9e2945b5e3a5a696 (patch) | |
tree | 29223e89b9b96c3f9abeffaba05eef64530f93ea /tests | |
parent | 6f955f1680d2622538cbded6bbe9e70e3468b0f5 (diff) | |
download | aspectj-e2fac0e58679db78ef8ce62e9e2945b5e3a5a696.tar.gz aspectj-e2fac0e58679db78ef8ce62e9e2945b5e3a5a696.zip |
252285: tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs163/pr252285/Bridged.java | 31 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java | 4 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc163/ajc163.xml | 12 |
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 |