summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bugs150/pr102357.java20
-rw-r--r--tests/bugs150/pr72834/Trouble.java16
-rw-r--r--tests/bugs150/pr73856/MissingAccessor.java22
-rw-r--r--tests/bugs150/pr73856/MissingAccessor2.java21
-rw-r--r--tests/bugs150/pr90143/A.aj33
-rw-r--r--tests/bugs150/pr92311.aj15
6 files changed, 127 insertions, 0 deletions
diff --git a/tests/bugs150/pr102357.java b/tests/bugs150/pr102357.java
new file mode 100644
index 000000000..0c20910da
--- /dev/null
+++ b/tests/bugs150/pr102357.java
@@ -0,0 +1,20 @@
+interface Generic<T> {
+ void non_generic(String i);
+ void generic(T t);
+}
+
+public class pr102357 implements Generic<String> {
+ public static void main(String[] args) {
+ new pr102357().non_generic("works");
+ new pr102357().generic("works");
+
+ Generic<String> generic = new pr102357();
+ generic.non_generic("works");
+ generic.generic("AbstractMethodError");
+ }
+}
+
+aspect Injector {
+ public void pr102357.non_generic(String s) {}
+ public void pr102357.generic(String s) {}
+}
diff --git a/tests/bugs150/pr72834/Trouble.java b/tests/bugs150/pr72834/Trouble.java
new file mode 100644
index 000000000..dbee026f5
--- /dev/null
+++ b/tests/bugs150/pr72834/Trouble.java
@@ -0,0 +1,16 @@
+
+abstract class A {}
+
+class B extends A {}
+
+aspect X {
+ abstract String A.getName();
+ public String B.getName() { return "B"; }
+ public String A.toString() { return getName(); }
+}
+
+public class Trouble {
+ public static void main(String[] args) {
+ System.out.println(new B());
+ }
+} \ No newline at end of file
diff --git a/tests/bugs150/pr73856/MissingAccessor.java b/tests/bugs150/pr73856/MissingAccessor.java
new file mode 100644
index 000000000..dce035d96
--- /dev/null
+++ b/tests/bugs150/pr73856/MissingAccessor.java
@@ -0,0 +1,22 @@
+class A {
+ int x = 1;
+ class B {
+ }
+ B b = new B();
+}
+aspect Aspect {
+ int A.B.foo() {
+ class C {
+ int bar() { return A.this.x;}
+ }
+ return new C().bar();
+ }
+}
+
+public class MissingAccessor {
+
+ public static void main(String[] args) {
+ A a = new A();
+ System.out.println(a.b.foo());
+ }
+} \ No newline at end of file
diff --git a/tests/bugs150/pr73856/MissingAccessor2.java b/tests/bugs150/pr73856/MissingAccessor2.java
new file mode 100644
index 000000000..48043d312
--- /dev/null
+++ b/tests/bugs150/pr73856/MissingAccessor2.java
@@ -0,0 +1,21 @@
+aspect Aspect {
+ int A.B.foo() {
+ class C {
+ int bar() { return A.this.x;}
+ }
+ return new C().bar();
+ }
+}
+class A {
+ int x = 1;
+ class B { }
+ B b = new B();
+}
+
+public class MissingAccessor2 {
+
+ public static void main(String[] args) {
+ A a = new A();
+ System.out.println(a.b.foo());
+ }
+}
diff --git a/tests/bugs150/pr90143/A.aj b/tests/bugs150/pr90143/A.aj
new file mode 100644
index 000000000..c02719275
--- /dev/null
+++ b/tests/bugs150/pr90143/A.aj
@@ -0,0 +1,33 @@
+class MyClass {
+ protected Object method() {
+ return null;
+ }
+}
+
+abstract aspect A {
+
+ interface C2 { }
+
+ public void C2.hello() {
+ new MyClass() {
+ protected Object methodX() {
+ return
+//super.
+method();
+ }
+ };
+ }
+
+ // ok
+ class C { }
+ public void C.hello() {
+ new MyClass() {
+ protected Object methodX() {
+ return super.method();
+ }
+ };
+ }
+
+
+}
+
diff --git a/tests/bugs150/pr92311.aj b/tests/bugs150/pr92311.aj
new file mode 100644
index 000000000..3e00b6a5f
--- /dev/null
+++ b/tests/bugs150/pr92311.aj
@@ -0,0 +1,15 @@
+class Base {
+public int x;
+}
+
+aspect ExtendBase {
+ public ExtendBase() {}
+// private int ExtendBase.x;
+ declare parents: Y extends ExtendBase;
+}
+
+class Y extends Base {
+ public void foo() {
+ System.out.println(x);
+ }
+}