diff options
-rw-r--r-- | tests/ajcHarnessTests.xml | 20 | ||||
-rw-r--r-- | tests/harness/CompoundMessage.java | 16 |
2 files changed, 36 insertions, 0 deletions
diff --git a/tests/ajcHarnessTests.xml b/tests/ajcHarnessTests.xml index 0170b7124..88385aa80 100644 --- a/tests/ajcHarnessTests.xml +++ b/tests/ajcHarnessTests.xml @@ -291,6 +291,26 @@ <compile files="input-path-classes" sourceroots="aspectsrc"/> <run class="Main"/> </ajc-test> + + <ajc-test dir="harness" + title="pass 2 compound warning"> + <compile files="CompoundMessage.java"> + <message kind="warning" line="6"> + <source line="14" file="CompoundMessage.java"/> + </message> + <message kind="warning" line="6"> + <source line="12" file="CompoundMessage.java"/> + </message> + </compile> + </ajc-test> + + <ajc-test dir="harness" + title="fail 2 error, but expecting more details"> + <compile files="ErrorTest.java"> + <message kind="error" line="5" details="expecting more"/> + <message kind="error" line="6" details="details"/> + </compile> + </ajc-test> </suite> diff --git a/tests/harness/CompoundMessage.java b/tests/harness/CompoundMessage.java new file mode 100644 index 000000000..88d258411 --- /dev/null +++ b/tests/harness/CompoundMessage.java @@ -0,0 +1,16 @@ + +class A { void run() {} } +class B extends A {} +aspect C { + before() : runB() { } + pointcut runB(): call(void B.run()); // CW 6 XLint, for each shadow (12, 14) + +} +public class CompoundMessage { + public static void main(String[] args) { + // ok with -1.4; otherwise, becomes A.run in bytecode + new B().run(); // CW 12 DW + // never works - compile-time type of reference is A, not B + new B().run(); // CW 12 DW + } +} |