summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoraclement <aclement>2010-08-05 16:48:05 +0000
committeraclement <aclement>2010-08-05 16:48:05 +0000
commit47b1728bdce19ddb5339aa492464765cc1bb4982 (patch)
treec5880799d8d496a7ef67b354a24f79d420a3f73b /tests
parent45c229253163fe781a660d68206292f673dd3e4a (diff)
downloadaspectj-47b1728bdce19ddb5339aa492464765cc1bb4982.tar.gz
aspectj-47b1728bdce19ddb5339aa492464765cc1bb4982.zip
278496: anon inner types affected by aspects
Diffstat (limited to 'tests')
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/generics/ActionExecutor.java18
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/generics/DeleteAction.java12
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/generics/DeleteActionAspect.aj30
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/test/Demo.aj14
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/test/MyAspect.aj63
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/test/OtherClass.aj10
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/test2/MyAspect2.aj29
-rw-r--r--tests/multiIncremental/pr278496_8/base/src/test2/OtherClass2.aj15
-rw-r--r--tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java149
9 files changed, 339 insertions, 1 deletions
diff --git a/tests/multiIncremental/pr278496_8/base/src/generics/ActionExecutor.java b/tests/multiIncremental/pr278496_8/base/src/generics/ActionExecutor.java
new file mode 100644
index 000000000..5305dd4cf
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/generics/ActionExecutor.java
@@ -0,0 +1,18 @@
+package generics;
+
+public class ActionExecutor {
+ public static void main(String[] args) {
+ DeleteAction<String> d = new DeleteAction<String>() {
+ public String getSelected() {
+ throw new RuntimeException();
+ }
+
+ };
+ d.delete2++;
+ d.delete3.add(null);
+ }
+
+ void nothing2(DeleteAction<String> g) {
+ g.delete2++;
+ }
+} \ No newline at end of file
diff --git a/tests/multiIncremental/pr278496_8/base/src/generics/DeleteAction.java b/tests/multiIncremental/pr278496_8/base/src/generics/DeleteAction.java
new file mode 100644
index 000000000..05c136a3d
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/generics/DeleteAction.java
@@ -0,0 +1,12 @@
+package generics;
+import java.util.List;
+
+
+public interface DeleteAction<T extends Object>{
+
+ public void delete();
+
+ public T getSelected();
+
+}
+ \ No newline at end of file
diff --git a/tests/multiIncremental/pr278496_8/base/src/generics/DeleteActionAspect.aj b/tests/multiIncremental/pr278496_8/base/src/generics/DeleteActionAspect.aj
new file mode 100644
index 000000000..499981e37
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/generics/DeleteActionAspect.aj
@@ -0,0 +1,30 @@
+package generics;
+
+import java.util.List;
+
+
+public aspect DeleteActionAspect {
+
+ public void DeleteAction<T extends Object>.delete() {
+ Object selected = getSelected();
+ selected.toString();
+ delete3.add("");
+ }
+
+ public int DeleteAction<T extends Object>.delete2;
+
+ public List<String> DeleteAction.delete3;
+
+
+ public static void main(String[] args) {
+ DeleteAction<String> d = new DeleteAction<String>() {
+ public String getSelected() {
+ throw new RuntimeException();
+ }
+
+ };
+ d.delete2++;
+ d.delete3.add(null);
+ }
+
+} \ No newline at end of file
diff --git a/tests/multiIncremental/pr278496_8/base/src/test/Demo.aj b/tests/multiIncremental/pr278496_8/base/src/test/Demo.aj
new file mode 100644
index 000000000..174680bc8
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/test/Demo.aj
@@ -0,0 +1,14 @@
+package test;
+
+import java.util.List;
+
+public class Demo {
+
+ void g() {
+ new Demo(7).foo(null);
+ x++;
+ this.x++;
+ MyAspect.aspectOf();
+ MyAspect.hasAspect();
+ }
+} \ No newline at end of file
diff --git a/tests/multiIncremental/pr278496_8/base/src/test/MyAspect.aj b/tests/multiIncremental/pr278496_8/base/src/test/MyAspect.aj
new file mode 100644
index 000000000..23704a0d9
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/test/MyAspect.aj
@@ -0,0 +1,63 @@
+package test;
+import java.util.List;
+
+public aspect MyAspect {
+
+ @MyAnnotation(val = 5)
+ private Integer Demo.version;
+
+
+ List<String> Demo.list = null;
+ int Demo.x = 5;
+
+ void Demo.foo(List<String> x) {
+ MyAspect.hasAspect();
+ }
+
+ public Demo.new(int x) {
+ this();
+ }
+
+ declare warning : execution(* *.nothing(..)) : "blah";
+
+ declare error : execution(* *.nothing(..)) : "blah";
+
+ declare soft : Exception : execution(* *.nothing(..));
+
+
+ protected pointcut s():
+ call(String Demo.toString(..));
+
+ before (): s() {
+ }
+ after (): s() {
+ }
+ void around (): s() {
+ proceed();
+ return;
+ }
+ after () returning(): s() {
+ }
+ after () throwing(): s() {
+ thisEnclosingJoinPointStaticPart.getClass();
+ thisJoinPoint.getClass();
+ thisJoinPointStaticPart.getClass();
+ }
+
+ @interface MyAnnotation {
+ int val() default 5;
+ }
+
+ // try out declare annotation
+ declare @type : Demo : @MyAnnotation;
+ declare @field: int Demo.x: @MyAnnotation;
+ declare @method: void Demo.foo(..): @MyAnnotation;
+ declare @constructor: public Demo.new(int): @MyAnnotation;
+
+ // try out abstract ITDs
+ public abstract long Abstract.nothing();
+
+ public static abstract class Abstract { }
+
+
+}
diff --git a/tests/multiIncremental/pr278496_8/base/src/test/OtherClass.aj b/tests/multiIncremental/pr278496_8/base/src/test/OtherClass.aj
new file mode 100644
index 000000000..a24940d9c
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/test/OtherClass.aj
@@ -0,0 +1,10 @@
+package test;
+
+
+public class OtherClass {
+ void x() {
+ Demo d = new Demo(4);
+ d.foo(null);
+ d.x ++;
+ }
+} \ No newline at end of file
diff --git a/tests/multiIncremental/pr278496_8/base/src/test2/MyAspect2.aj b/tests/multiIncremental/pr278496_8/base/src/test2/MyAspect2.aj
new file mode 100644
index 000000000..5f79df23d
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/test2/MyAspect2.aj
@@ -0,0 +1,29 @@
+package test2;
+
+import test.Demo;
+import test2.MyAspect2;
+
+public aspect MyAspect2 {
+
+ static interface Bar {
+
+ }
+ declare parents : Demo implements Bar, Cloneable;
+
+ public int Bar.bar() {
+ return 7;
+ }
+
+
+ static class Foo {
+ public Foo() {
+
+ }
+ }
+ declare parents : Demo extends Foo;
+
+ public int Foo.baz() {
+ return 7;
+ }
+
+}
diff --git a/tests/multiIncremental/pr278496_8/base/src/test2/OtherClass2.aj b/tests/multiIncremental/pr278496_8/base/src/test2/OtherClass2.aj
new file mode 100644
index 000000000..5922fa931
--- /dev/null
+++ b/tests/multiIncremental/pr278496_8/base/src/test2/OtherClass2.aj
@@ -0,0 +1,15 @@
+package test2;
+
+import test.Demo;
+
+public class OtherClass2 {
+ void x() {
+ Demo d = new Demo(4);
+ d.bar();
+ d.baz();
+ // causes error for now see note at end of AJCompilationUnitProblemFinder.isARealProblem
+// ((MyAspect2.Bar) d).bar();
+ ((MyAspect2.Foo) d).baz();
+ ((Cloneable) d).toString();
+ }
+} \ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java
index 9cf58112d..550445db2 100644
--- a/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java
+++ b/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java
@@ -543,7 +543,7 @@ public class IncrementalCompilationTests extends AbstractMultiProjectIncremental
configureNonStandardCompileOptions(p, "-Xset:minimalModel=true");
build(p);
checkWasFullBuild();
- printModel(p);
+ // printModel(p);
// Here is the model without deletion.
// PR278496_4 [build configuration file] hid:=PR278496_4
// foo [package] hid:=PR278496_4<foo
@@ -569,4 +569,151 @@ public class IncrementalCompilationTests extends AbstractMultiProjectIncremental
"=PR278496_4<foo{MyOtherClass.java[MyOtherClass[MyInnerClass'MyInnerInnerAspect", false);
assertNotNull(ipe);
}
+
+ public void testDeletionAnonInnerType_278496_8() throws Exception {
+ String p = "PR278496_8";
+ initialiseProject(p);
+ configureNonStandardCompileOptions(p, "-Xset:minimalModel=true");
+ build(p);
+ checkWasFullBuild();
+ // printModel(p);
+ // Here is the model without deletion.
+ // PR278496_8 [build configuration file] hid:=PR278496_8
+ // generics [package] hid:=PR278496_8<generics
+ // DeleteActionAspect.aj [java source file] 1 hid:=PR278496_8<generics*DeleteActionAspect.aj
+ // generics [package declaration] 1 hid:=PR278496_8<generics*DeleteActionAspect.aj%generics
+ // [import reference] hid:=PR278496_8<generics*DeleteActionAspect.aj#
+ // java.util.List [import reference] 3 hid:=PR278496_8<generics*DeleteActionAspect.aj#java.util.List
+ // DeleteActionAspect [aspect] 6 hid:=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect
+ // DeleteAction.delete() [inter-type method] 8 hid:=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect)DeleteAction.delete
+ // DeleteAction.delete2 [inter-type field] 14 hid:=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete2
+ // DeleteAction.delete3 [inter-type field] 16 hid:=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete3
+ // main(java.lang.String[]) [method] 19 hid:=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;
+ // new DeleteAction<String>() {..} [class] 20 hid:=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[
+ // getSelected() [method] 21 hid:=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[~getSelected
+ // ActionExecutor.java [java source file] 1 hid:=PR278496_8<generics{ActionExecutor.java
+ // generics [package declaration] 1 hid:=PR278496_8<generics{ActionExecutor.java%generics
+ // [import reference] hid:=PR278496_8<generics{ActionExecutor.java#
+ // ActionExecutor [class] 3 hid:=PR278496_8<generics{ActionExecutor.java[ActionExecutor
+ // main(java.lang.String[]) [method] 4 hid:=PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;
+ // new DeleteAction<String>() {..} [class] 5 hid:=PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[
+ // getSelected() [method] 6 hid:=PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[~getSelected
+ // nothing2(generics.DeleteAction<java.lang.String>) [method] 15 hid:=PR278496_8<generics{ActionExecutor.java[ActionExecutor~nothing2~QDeleteAction\<QString;>;
+ // DeleteAction.java [java source file] 1 hid:=PR278496_8<generics{DeleteAction.java
+ // generics [package declaration] 1 hid:=PR278496_8<generics{DeleteAction.java%generics
+ // [import reference] hid:=PR278496_8<generics{DeleteAction.java#
+ // java.util.List [import reference] 2 hid:=PR278496_8<generics{DeleteAction.java#java.util.List
+ // DeleteAction [interface] 5 hid:=PR278496_8<generics{DeleteAction.java[DeleteAction
+ // delete() [method] 7 hid:=PR278496_8<generics{DeleteAction.java[DeleteAction~delete
+ // getSelected() [method] 9 hid:=PR278496_8<generics{DeleteAction.java[DeleteAction~getSelected
+ // test [package] hid:=PR278496_8<test
+ // MyAspect.aj [java source file] 1 hid:=PR278496_8<test*MyAspect.aj
+ // test [package declaration] 1 hid:=PR278496_8<test*MyAspect.aj%test
+ // [import reference] hid:=PR278496_8<test*MyAspect.aj#
+ // java.util.List [import reference] 2 hid:=PR278496_8<test*MyAspect.aj#java.util.List
+ // MyAspect [aspect] 4 hid:=PR278496_8<test*MyAspect.aj'MyAspect
+ // MyAnnotation [annotation] 47 hid:=PR278496_8<test*MyAspect.aj'MyAspect[MyAnnotation
+ // Abstract [class] 60 hid:=PR278496_8<test*MyAspect.aj'MyAspect[Abstract
+ // Demo.version [inter-type field] 7 hid:=PR278496_8<test*MyAspect.aj'MyAspect,Demo.version
+ // Demo.list [inter-type field] 10 hid:=PR278496_8<test*MyAspect.aj'MyAspect,Demo.list
+ // Demo.x [inter-type field] 11 hid:=PR278496_8<test*MyAspect.aj'MyAspect,Demo.x
+ // Demo.foo(java.util.List<java.lang.String>) [inter-type method] 13 hid:=PR278496_8<test*MyAspect.aj'MyAspect)Demo.foo)QList\<QString;>;
+ // Demo.Demo(int) [inter-type constructor] 17 hid:=PR278496_8<test*MyAspect.aj'MyAspect)Demo.Demo_new)I
+ // declare warning: "blah" [declare warning] 21 hid:=PR278496_8<test*MyAspect.aj'MyAspect`declare warning
+ // declare error: "blah" [declare error] 23 hid:=PR278496_8<test*MyAspect.aj'MyAspect`declare error!2
+ // declare soft: java.lang.Exception [declare soft] 25 hid:=PR278496_8<test*MyAspect.aj'MyAspect`declare soft!3
+ // s() [pointcut] 28 hid:=PR278496_8<test*MyAspect.aj'MyAspect"s
+ // before(): s.. [advice] 31 hid:=PR278496_8<test*MyAspect.aj'MyAspect&before
+ // after(): s.. [advice] 33 hid:=PR278496_8<test*MyAspect.aj'MyAspect&after
+ // around(): s.. [advice] 35 hid:=PR278496_8<test*MyAspect.aj'MyAspect&around
+ // afterReturning(): s.. [advice] 39 hid:=PR278496_8<test*MyAspect.aj'MyAspect&afterReturning
+ // afterThrowing(): s.. [advice] 41 hid:=PR278496_8<test*MyAspect.aj'MyAspect&afterThrowing
+ // declare @type: test.Demo : @MyAnnotation [declare @type] 52 hid:=PR278496_8<test*MyAspect.aj'MyAspect`declare \@type
+ // declare @field: int test.Demo.x : @MyAnnotation [declare @field] 53 hid:=PR278496_8<test*MyAspect.aj'MyAspect`declare \@field
+ // declare @method: void test.Demo.foo(..) : @MyAnnotation [declare @method] 54 hid:=PR278496_8<test*MyAspect.aj'MyAspect`declare \@method
+ // declare @constructor: public test.Demo.new(int) : @MyAnnotation [declare @constructor] 55 hid:=PR278496_8<test*MyAspect.aj'MyAspect`declare \@constructor
+ // Abstract.nothing() [inter-type method] 58 hid:=PR278496_8<test*MyAspect.aj'MyAspect)Abstract.nothing
+ // Demo.aj [java source file] 1 hid:=PR278496_8<test*Demo.aj
+ // test [package declaration] 1 hid:=PR278496_8<test*Demo.aj%test
+ // [import reference] hid:=PR278496_8<test*Demo.aj#
+ // test.MyAspect$MyAnnotation [import reference] 1 hid:=PR278496_8<test*Demo.aj#test.MyAspect$MyAnnotation
+ // java.util.List [import reference] 3 hid:=PR278496_8<test*Demo.aj#java.util.List
+ // Demo [class] 5 hid:=PR278496_8<test*Demo.aj[Demo
+ // g() [method] 7 hid:=PR278496_8<test*Demo.aj[Demo~g
+ // OtherClass.aj [java source file] 1 hid:=PR278496_8<test*OtherClass.aj
+ // test [package declaration] 1 hid:=PR278496_8<test*OtherClass.aj%test
+ // [import reference] hid:=PR278496_8<test*OtherClass.aj#
+ // OtherClass [class] 4 hid:=PR278496_8<test*OtherClass.aj[OtherClass
+ // x() [method] 5 hid:=PR278496_8<test*OtherClass.aj[OtherClass~x
+ // test2 [package] hid:=PR278496_8<test2
+ // MyAspect2.aj [java source file] 1 hid:=PR278496_8<test2*MyAspect2.aj
+ // test2 [package declaration] 4 hid:=PR278496_8<test2*MyAspect2.aj%test2
+ // [import reference] hid:=PR278496_8<test2*MyAspect2.aj#
+ // test.Demo [import reference] 3 hid:=PR278496_8<test2*MyAspect2.aj#test.Demo
+ // MyAspect2 [aspect] 6 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2
+ // Bar [interface] 8 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2[Bar
+ // Foo [class] 18 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2[Foo
+ // Foo() [constructor] 19 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2[Foo~Foo
+ // declare parents: implements MyAspect2$Bar,Cloneable [declare parents] 11 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2`declare parents
+ // Bar.bar() [inter-type method] 13 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2)Bar.bar
+ // declare parents: extends MyAspect2$Foo [declare parents] 23 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2`declare parents!2
+ // Foo.baz() [inter-type method] 25 hid:=PR278496_8<test2*MyAspect2.aj'MyAspect2)Foo.baz
+ // OtherClass2.aj [java source file] 1 hid:=PR278496_8<test2*OtherClass2.aj
+ // test2 [package declaration] 1 hid:=PR278496_8<test2*OtherClass2.aj%test2
+ // [import reference] hid:=PR278496_8<test2*OtherClass2.aj#
+ // test.Demo [import reference] 3 hid:=PR278496_8<test2*OtherClass2.aj#test.Demo
+ // OtherClass2 [class] 5 hid:=PR278496_8<test2*OtherClass2.aj[OtherClass2
+ // x() [method] 6 hid:=PR278496_8<test2*OtherClass2.aj[OtherClass2~x
+ // Hid:1:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.version (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:2:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect)Abstract.nothing (declared on) =PR278496_8<test*MyAspect.aj'MyAspect[Abstract
+ // Hid:3:(targets=1) =PR278496_8<test*Demo.aj[Demo (annotated by) =PR278496_8<test*MyAspect.aj'MyAspect`declare \@type
+ // Hid:4:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test2*MyAspect2.aj'MyAspect2`declare parents!2
+ // Hid:5:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test2*MyAspect2.aj'MyAspect2`declare parents
+ // Hid:6:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test2*MyAspect2.aj'MyAspect2)Bar.bar
+ // Hid:7:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.version
+ // Hid:8:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.list
+ // Hid:9:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.x
+ // Hid:10:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test*MyAspect.aj'MyAspect)Demo.foo)QList\<QString;>;
+ // Hid:11:(targets=8) =PR278496_8<test*Demo.aj[Demo (aspect declarations) =PR278496_8<test*MyAspect.aj'MyAspect)Demo.Demo_new)I
+ // Hid:12:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect`declare \@type (annotates) =PR278496_8<test*Demo.aj[Demo
+ // Hid:13:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.list (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:14:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect)Demo.foo)QList\<QString;>; (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:15:(targets=1) =PR278496_8<test2*MyAspect2.aj'MyAspect2`declare parents!2 (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:16:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete2 (declared on) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[
+ // Hid:17:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete2 (declared on) =PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[
+ // Hid:18:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete2 (declared on) =PR278496_8<generics{DeleteAction.java[DeleteAction
+ // Hid:19:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect`declare \@constructor (annotates) =PR278496_8<test*MyAspect.aj'MyAspect)Demo.Demo_new)I
+ // Hid:20:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete3 (declared on) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[
+ // Hid:21:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete3 (declared on) =PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[
+ // Hid:22:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete3 (declared on) =PR278496_8<generics{DeleteAction.java[DeleteAction
+ // Hid:23:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect[Abstract (aspect declarations) =PR278496_8<test*MyAspect.aj'MyAspect)Abstract.nothing
+ // Hid:24:(targets=1) =PR278496_8<test2*MyAspect2.aj'MyAspect2`declare parents (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:25:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect)DeleteAction.delete (declared on) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[
+ // Hid:26:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect)DeleteAction.delete (declared on) =PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[
+ // Hid:27:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect)DeleteAction.delete (declared on) =PR278496_8<generics{DeleteAction.java[DeleteAction
+ // Hid:28:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect`declare \@field (annotates) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.x
+ // Hid:29:(targets=3) =PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[ (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect)DeleteAction.delete
+ // Hid:30:(targets=3) =PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[ (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete2
+ // Hid:31:(targets=3) =PR278496_8<generics{ActionExecutor.java[ActionExecutor~main~\[QString;[ (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete3
+ // Hid:32:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[ (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect)DeleteAction.delete
+ // Hid:33:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[ (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete2
+ // Hid:34:(targets=3) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\[QString;[ (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete3
+ // Hid:35:(targets=3) =PR278496_8<generics{DeleteAction.java[DeleteAction (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect)DeleteAction.delete
+ // Hid:36:(targets=3) =PR278496_8<generics{DeleteAction.java[DeleteAction (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete2
+ // Hid:37:(targets=3) =PR278496_8<generics{DeleteAction.java[DeleteAction (aspect declarations) =PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect,DeleteAction.delete3
+ // Hid:38:(targets=1) =PR278496_8<test2*MyAspect2.aj'MyAspect2[Foo (aspect declarations) =PR278496_8<test2*MyAspect2.aj'MyAspect2)Foo.baz
+ // Hid:39:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect)Demo.Demo_new)I (annotated by) =PR278496_8<test*MyAspect.aj'MyAspect`declare \@constructor
+ // Hid:40:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect)Demo.Demo_new)I (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:41:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.x (annotated by) =PR278496_8<test*MyAspect.aj'MyAspect`declare \@field
+ // Hid:42:(targets=1) =PR278496_8<test*MyAspect.aj'MyAspect,Demo.x (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:43:(targets=2) =PR278496_8<test2*MyAspect2.aj'MyAspect2)Bar.bar (declared on) =PR278496_8<test2*MyAspect2.aj'MyAspect2[Bar
+ // Hid:44:(targets=2) =PR278496_8<test2*MyAspect2.aj'MyAspect2)Bar.bar (declared on) =PR278496_8<test*Demo.aj[Demo
+ // Hid:45:(targets=1) =PR278496_8<test2*MyAspect2.aj'MyAspect2[Bar (aspect declarations) =PR278496_8<test2*MyAspect2.aj'MyAspect2)Bar.bar
+ // Hid:46:(targets=1) =PR278496_8<test2*MyAspect2.aj'MyAspect2)Foo.baz (declared on) =PR278496_8<test2*MyAspect2.aj'MyAspect2[Foo
+ AspectJElementHierarchy model = (AspectJElementHierarchy) getModelFor(p).getHierarchy();
+ // check handle to anonymous inner:
+ IProgramElement ipe = model.findElementForHandleOrCreate(
+ "=PR278496_8<generics*DeleteActionAspect.aj'DeleteActionAspect~main~\\[QString;[", false);
+ assertNotNull(ipe);
+ }
}