--- /dev/null
+/* intertype method declarations should be a static context;
+it is incorrect to refer to instance variables of the
+originating aspect. ajc fails to check this properly when
+an ITD method is applied to an inner class.
+
+The example below compiles fine, but then throws
+
+java.lang.NoSuchFieldError: zzz
+
+when run.
+
+*/
+
+aspect NewFoo {
+
+ int zzz = 3;
+
+ public void Aaa.Ccc.bar() {
+ System.out.println(zzz); // CE L19: illegal reference to zzz
+ }
+}
+
+class Aaa {
+
+ public class Ccc {
+
+ }
+
+ public Ccc ccc;
+
+ public Aaa() {
+ ccc = new Ccc();
+ }
+}
+
+class IllegalRef {
+
+
+ public static void main(String[] args) {
+ Aaa aaa = new Aaa();
+ aaa.ccc.bar();
+ }
+
+}
\ No newline at end of file