Fix another inner class bug: an inner class which is declared in a *static context...
[IRC.git] / Robust / src / Tests / inner.java
1 public class inner extends innerp {
2   int outer;
3   int f2;
4
5   public inner() {
6     super.outer=31;
7   }
8
9   public static void main(String x[]) {
10     inner i=new inner();
11     i.dotest();
12     outerAnonymousInnerStatic(20, 30);
13   }
14
15   public void dotest() {
16     outer=35;
17     outerprint();
18     t tmp=new t();
19     tmp.print();
20     outerAnonymousInner(100);
21   }
22   
23   public void outerprint() {
24       System.out.println("Outer class print: " + this.outer + "; " + this.f2);
25   }
26   
27   public void outerprintInnerp(innerCallback c) {
28       c.call();
29   }
30   
31   public void outerAnonymousInner(final int value) {
32       int j = 0; // this should not be included into the following anonymous inner class
33       this.outerprintInnerp(new innerCallback() {
34           public void call() {
35               System.out.println("innerCallback: " + value);
36           }
37       });
38   }
39   
40   public static void outerprintInnerpStatic(innerCallback c) {
41       c.call();
42   }
43   
44   public static void outerAnonymousInnerStatic(final int value, final int value1) {
45       outerprintInnerpStatic(new innerCallback() {
46           public void call() {
47               System.out.println("innerCallbackStatic: " + value + ", " + value1);
48           }
49       });
50   }
51
52   public class t extends innerpt {
53     int outer;
54     int f3;
55     public t() {
56       t.this.outer=4;
57       f1=2;
58       f2=3;
59       f3=4;
60
61     }
62
63     public void print() {
64       //should print 4 0 35
65       System.out.println("\t Inner class print: ");
66       System.out.println(outer);
67       System.out.println(super.outer);
68       t.super.outer = 1;
69       System.out.println(outer);
70       System.out.println(t.super.outer);
71       System.out.println(inner.this.outer);
72       System.out.println(inner.super.outer);
73       System.out.println(f1);
74       System.out.println(f2);
75       System.out.println(f3);
76       outerprint();
77     }
78   }
79
80 }