aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs
diff options
context:
space:
mode:
authoracolyer <acolyer>2004-08-18 12:39:40 +0000
committeracolyer <acolyer>2004-08-18 12:39:40 +0000
commitdfb15c1777ab6995528a0a0d49faf0ef74578db6 (patch)
treec4191b121d6f1c297116f7a08f8403e3a9f59633 /tests/bugs
parent5b902242b00ffaf3105335f231e45291e7d09320 (diff)
downloadaspectj-dfb15c1777ab6995528a0a0d49faf0ef74578db6.tar.gz
aspectj-dfb15c1777ab6995528a0a0d49faf0ef74578db6.zip
fix for Bugzilla Bug 71723
Inconsistency in scoping of protected members in ITDs
Diffstat (limited to 'tests/bugs')
-rw-r--r--tests/bugs/pr71723/bar/Bar.aj36
-rw-r--r--tests/bugs/pr71723/foo/Foo.java17
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/bugs/pr71723/bar/Bar.aj b/tests/bugs/pr71723/bar/Bar.aj
new file mode 100644
index 000000000..e7a5e00a3
--- /dev/null
+++ b/tests/bugs/pr71723/bar/Bar.aj
@@ -0,0 +1,36 @@
+package bar;
+
+import foo.Foo;
+
+aspect Bar {
+ public void Foo.doing() {
+try {
+ System.out.println(i()); // CE L8
+ System.out.println(ancientI()); // CE L9
+ System.out.println(ancientJ()); // CE L10
+ System.out.println(this.clone()); // CE L11
+ System.out.println(clone()); // CE L12
+}
+catch(Throwable t) { }
+ }
+ before(Foo f) : call(* doStuff(..)) && target(f) {
+ f.doing();
+ }
+}
+
+
+privileged aspect PBar {
+ public void Foo.doingMore() {
+try {
+ System.out.println(i());
+ System.out.println(ancientI());
+ System.out.println(ancientJ());
+ }
+catch(Throwable t) { }
+ }
+ before(Foo f) : call(* doStuff(..)) && target(f) {
+ f.doing();
+ }
+}
+
+
diff --git a/tests/bugs/pr71723/foo/Foo.java b/tests/bugs/pr71723/foo/Foo.java
new file mode 100644
index 000000000..628cb86f0
--- /dev/null
+++ b/tests/bugs/pr71723/foo/Foo.java
@@ -0,0 +1,17 @@
+package foo;
+
+
+
+public class Foo extends AncientFoo {
+ protected int i() { return 42; }
+ public static void main(String[] args) {
+ new Foo().doStuff();
+ }
+ public void doStuff() { }
+ protected int ancientI() { return 42; }
+}
+
+class AncientFoo {
+ protected int ancientI() { return -42; }
+ protected int ancientJ() { return 0; }
+} \ No newline at end of file