<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>
--- /dev/null
+
+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
+ }
+}