import java.util.*;
import org.aspectj.lang.annotation.*;
-@Aspect
+@Aspect
class Iffy2 {
- @Before("execution(!void[] *(..))")
+ @Before("execution(!void *(..))")
public void advice1() {}
- @Before("execution(!void[] *(..))")
+ @Before("execution(!void[] *(..))")
public void advice2() {}
+ @Before("execution(!void *(..))")
+ public void advice3() {}
+
+ @Before("execution(*..Collection[] *(..))")
+ public void advice4() {}
+
+ @Before("execution(java.util.Collection<?>[] *(..))")
+ public void advice5() {}
+
public Collection<?>[] getCollectionArray() {
return null;
}
<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>
<suite>
-
+
<ajc-test dir="bugs165/pr277959" title="verifyerror">
<compile files="AOPTest.java CodeAspect.java" options="-1.5"/>
<run class="example.AOPTest"/>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr277508" title="if method names">
<compile files="Basic.java" options="-1.5"/>
<run class="Basic">
</stdout>
</run>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr277508" title="if method names - 2">
<compile files="Basic2.java" options="-1.5"/>
<run class="Basic2">
</stdout>
</run>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr275625" title="dec anno method">
<compile files="A.java" options="-1.5"/>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr275625" title="dec anno field">
<compile files="F.java" options="-1.5"/>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr275032" title="itd default ctor">
<compile files="A.java X.java" options="-1.5 -Xlint:ignore"/>
<run class="A">
</stdout>
</run>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr275032/c2" title="itd default ctor - 2">
<compile files="A.java X.java" options="-1.5 -Xlint:ignore">
<message kind="error" text="inter-type declaration from X conflicts with existing"/>
</compile>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr275032/c2" title="itd default ctor - 3">
<compile files="A.java" options="-outjar foo.jar"/>
<compile files="X.java" options="-1.5 -Xlint:ignore" inpath="foo.jar">
<message kind="error" text="inter-type declaration from X conflicts with existing"/>
</compile>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr275032" title="itd default ctor - 4">
<compile files="A.java" options="-outjar foo.jar"/>
<compile files="X.java" options="-1.5" inpath="foo.jar">
</stdout>
</run>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr272233" title="funky pointcut">
<compile files="Iffy.java" options="-1.5">
<message kind="warning" text="void is not a generic type"/>
</compile>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr272233" title="funky pointcut 2">
<compile files="Iffy2.java" options="-1.5 -showWeaveInfo">
- <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:11)"/>
<message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:8)"/>
+ <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:11)"/>
+ <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:14)"/>
+ <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:17)"/>
+ <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:20)"/>
</compile>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr265356" title="annotation style message positions">
<compile files="Main.java" options="-1.5">
<message kind="warning" line="11"/>
<ajc-test dir="bugs165/pr271169" title="around call npe">
<compile files="HypChecksums.java" options="-1.5"/>
</ajc-test>
-
+
<ajc-test dir="bugs165/pr273628" title="verifyerror on anno bind">
<compile files="AnnotationAspect.java ApiDescriptor.java AspectTargetClass.java MonitorableMethod.java TestPointcutAnnotationAspect.java" options="-1.5"/>
<run class="p.TestPointcutAnnotationAspect"/>
</run>
</ajc-test>
-</suite>
\ No newline at end of file
+</suite>
</compile>
<run class="Basic3b">
<stdout>
- <!-- BUG: one of these should be YImpl -->
- <line text="X.IImpl.m2() ran"/>
- <line text="X.IImpl.m2() ran"/>
+ <!-- BUG: There should be one of each X.IImpl and Y.IImpl, just like for @decm. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=543657#c5. -->
+ <line text="Y.IImpl.m2() ran"/>
+ <line text="Y.IImpl.m2() ran"/>
<line text="Basic3b.main ran"/>
</stdout>
</run>
<message kind="weave" text="Join point 'method-call(void java.io.PrintStream.println(java.lang.String))' in Type 'Basic3b' (Basic3b.java:11) advised by before advice from 'X' (Basic3b.java:33)"/>
</compile>
<compile files="Y.java" inpath="ow1.jar" options="-showWeaveInfo -1.8 -Xset:overWeaving=true">
-
<message kind="weave" text="Join point 'method-call(void java.io.PrintStream.println(java.lang.String))' in Type 'Y$IIimpl' (Y.java:10) advised by before advice from 'Y' (Y.java:17)"/>
<message kind="weave" text="Join point 'method-call(void java.io.PrintStream.println(java.lang.String))' in Type 'Y$IIimpl' (Y.java:10) advised by before advice from 'X' (ow1.jar!X.class(from Basic3b.java))"/>
<message kind="weave" text="Join point 'method-call(void X.advice1())' in Type 'X$IIimpl' (Basic3b.java:23) advised by before advice from 'Y' (Y.java:17)"/>
</compile>
<run class="Basic3b">
<stdout>
- <!-- BUG: one of these should be YImpl -->
+ <!-- BUG: There should be one of each X.IImpl and Y.IImpl, just like for @decm. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=543657#c5. -->
<line text="X.IImpl.m2() ran"/>
<line text="X.IImpl.m2() ran"/>
<line text="Basic3b.main ran"/>