aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bugs')
-rw-r--r--tests/bugs/ParentsAndPointcuts.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/bugs/ParentsAndPointcuts.java b/tests/bugs/ParentsAndPointcuts.java
new file mode 100644
index 000000000..522c29ea5
--- /dev/null
+++ b/tests/bugs/ParentsAndPointcuts.java
@@ -0,0 +1,44 @@
+import org.aspectj.testing.Tester;
+
+public class ParentsAndPointcuts {
+ public static void main(String[] args) {
+ ContainerDescriptor d = new ContainerDescriptor();
+ Tester.check(d instanceof AbstractCaching.Key, "instanceof");
+ }
+}
+
+aspect AspectBug extends AbstractCaching
+perthis(execution(ContainerLoader+.new(..)))
+{
+ declare parents: ContainerDescriptor implements AbstractCaching.Key;
+
+ protected pointcut loadExecutions( Key key ):
+ ContainerLoader.containerLoads( *, key );
+}
+
+abstract aspect AbstractCaching {
+ interface Key {}
+ protected abstract pointcut loadExecutions(Key key);
+}
+
+class Key {
+}
+
+class ContainerDescriptor {
+}
+
+class ActiveContainer {
+}
+
+class ContainerLoader {
+ public ActiveContainer createContainer(ContainerDescriptor c) {
+ return null;
+ }
+
+ public pointcut containerLoads(ContainerLoader loader,
+
+ContainerDescriptor containerDesc ):
+ this(loader) && args(containerDesc)
+ && execution(ActiveContainer ContainerLoader.createContainer
+(ContainerDescriptor));
+} \ No newline at end of file