Patch: many inner class tests

Tom Tromey tromey@cygnus.com
Wed Jan 19 13:39:00 GMT 2000


I'm checking in this huge patch, which adds a bunch of tests for inner
classes.  These tests were all written by Alex, but a couple were
lightly hacked by me (some name changes).

More inner class tests will follow as time permits.  If you know of
useful inner class test cases (corner cases or whatever), you're
encouraged to send them (either as patches, or as a .java file
directly to me if you want).

2000-01-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* libjava.lang/anon.java, libjava.lang/anon2.java,
	libjava.lang/anon3.java, libjava.lang/anon4.java,
	libjava.lang/direct_read.java, libjava.lang/direct_write.java,
	libjava.lang/indirect.java, libjava.lang/indirect_read.java,
	libjava.lang/indirect_write.java, libjava.lang/inner1.java,
	libjava.lang/inner2.java, libjava.lang/inner3.java,
	libjava.lang/inner4.java, libjava.lang/inner_array.java,
	libjava.lang/multiple_finit.java,
	libjava.lang/private_direct_read.java,
	libjava.lang/private_direct_write.java,
	libjava.lang/private_indirect_read.java,
	libjava.lang/private_indirect_write.java,
	libjava.lang/search_outer.java, libjava.lang/tmi.java,
	libjava.lang/tp.java, libjava.lang/update_outer.java: New file.

Tom

Index: libjava.lang/anon.java
===================================================================
RCS file: anon.java
diff -N anon.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,52 @@
+// Class anon
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+interface itf {int count = 0;void setCount (int i);int getCount ();}
+
+class anon {
+
+  int count = 34;
+
+  class x implements itf {
+      int count = 3;
+      public void setCount (int j) { }
+      public int getCount () { return count*3; }
+  }
+
+
+  itf foo () {
+      class y implements itf {
+	  int count = 3;
+	  public void setCount (int j) { count = j; }
+	  public int getCount () { return count+1; }
+      }
+      return new y ();
+  }
+
+  itf bar () {
+    return new itf () { 
+      // The class defined right here will implement `itf'
+      int count = 5;
+      public void setCount (int j) { count = j; }
+      public int getCount () { return count+1; }
+    } ;
+  }
+
+  void test () {
+    itf a = foo ();
+    itf b = bar ();
+    x   c = this.new x ();
+    System.out.println (a.getCount ());
+    System.out.println (b.getCount ());
+    System.out.println (c.getCount ());
+    System.out.println (this.count);
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon'...");
+    new anon ().test ();
+  }
+}
Index: libjava.lang/anon.out
===================================================================
RCS file: anon.out
diff -N anon.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,5 @@
+Testing class `anon'...
+4
+6
+9
+34
Index: libjava.lang/anon2.java
===================================================================
RCS file: anon2.java
diff -N anon2.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon2.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,50 @@
+// Class anon2
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+class anon2 {
+
+  int count = 34;
+  int field;
+
+  anon2 () { System.out.println ("anon2()"); } 
+
+  anon2 (foobar x) { 
+    System.out.println ("Yikes!"+x.zoink());
+  }
+
+  anon2 foo () {
+      class y extends anon2 {
+          int count = 3;
+          public void setCount (int j) { count = j; }
+          public int getCount () { return count+1; }
+	  y (int i) { System.out.println ("y(int)"); }
+      }
+      return new y (3);
+  }
+
+  anon2 bar () {
+    foobar xyz = new foobar ();
+    return new anon2 (xyz) { 
+      int count = 5;
+      public void setCount (int j) { field = 3; count = j; }
+      public int getCount () { return count+1; }
+    } ;
+  }
+
+  void test () {
+   anon2 b = bar ();
+   anon2 c = foo ();
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon2'...");
+    new anon2 ().test ();
+  }
+}
+
+class foobar {
+  public String zoink() { return " zoinked"; }
+}
Index: libjava.lang/anon2.out
===================================================================
RCS file: anon2.out
diff -N anon2.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon2.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,5 @@
+Testing class `anon2'...
+anon2()
+Yikes! zoinked
+anon2()
+y(int)
Index: libjava.lang/anon3.java
===================================================================
RCS file: anon3.java
diff -N anon3.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon3.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,28 @@
+// Class anon3
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+class anon3 {
+
+  itf bar () {
+    return new itf () { 
+      int count = 5;
+      public void setCount (int j) { count = 3; }
+      public int getCount () { return count; }
+    } ;
+  }
+
+  void test () {
+   itf x = bar ();
+   System.out.println (x.getCount ());
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon3'...");
+    new anon3 ().test ();
+  }
+}
+
+interface itf { void setCount (int j); int getCount(); int count = 0; }
Index: libjava.lang/anon3.out
===================================================================
RCS file: anon3.out
diff -N anon3.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon3.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `annon3'...
+5
Index: libjava.lang/anon4.java
===================================================================
RCS file: anon4.java
diff -N anon4.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon4.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,30 @@
+// Class anon4
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+class anon4 {
+
+  private int field = 3;
+
+  itf bar () {
+    return new itf () { 
+      int count = 5;
+      public void setCount (int j) { count = 3+field; }
+      public int getCount () { return count+field; }
+    } ;
+  }
+
+  void test () {
+   itf x = bar ();
+   System.out.println (x.getCount ());
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon4'...");
+    new anon4 ().test ();
+  }
+}
+
+interface itf { void setCount (int j); int getCount(); int count = 0; }
Index: libjava.lang/anon4.out
===================================================================
RCS file: anon4.out
diff -N anon4.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ anon4.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `anon4'...
+8
Index: libjava.lang/direct_read.java
===================================================================
RCS file: direct_read.java
diff -N direct_read.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ direct_read.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,27 @@
+// Class direct_read
+// Generated on Sat Nov 13 23:26:34 UTC 1999
+//
+
+class direct_read {
+
+  int foo;
+
+  class direct_read_inner {
+    void test () {
+      int x = foo;
+      System.out.println ("x="+x);
+    }
+  }
+
+  void foo ()
+  {
+    foo = 670;
+    direct_read_inner inn = this.new direct_read_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `direct_read'...");
+    new direct_read().foo ();
+  }
+}
Index: libjava.lang/direct_read.out
===================================================================
RCS file: direct_read.out
diff -N direct_read.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ direct_read.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `direct_read'...
+x=670
Index: libjava.lang/direct_write.java
===================================================================
RCS file: direct_write.java
diff -N direct_write.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ direct_write.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,27 @@
+// Class direct_write
+// Generated on Mon Nov 15 17:10:56 UTC 1999
+//
+
+class direct_write {
+
+  int foo;
+
+  class direct_write_inner {
+    void test () {
+      foo  = 670;
+    }
+  }
+
+  void foo ()
+  {
+    foo = 650;
+    direct_write_inner inn = this.new direct_write_inner ();
+    inn.test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `direct_write'...");
+    new direct_write().foo ();
+  }
+}
Index: libjava.lang/direct_write.out
===================================================================
RCS file: direct_write.out
diff -N direct_write.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ direct_write.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `direct_write'...
+foo=670
Index: libjava.lang/indirect.java
===================================================================
RCS file: indirect.java
diff -N indirect.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ indirect.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,33 @@
+// Class indirect
+// Generated on Tue Nov 16 15:53:14 UTC 1999
+// Several indirection to enclosing class
+
+class indirect {
+
+  private int foo;
+
+  class indirect_inner {
+    class other {
+      class inner {
+        void test () {
+          int x = foo;
+          System.out.println ("x="+foo);
+	  foo = 671;
+        }
+      }
+    }
+
+  }
+  void foo ()
+  {
+    foo = 670; 
+    indirect_inner inn = this.new indirect_inner ();
+    this.new indirect_inner().new other().new inner ().test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `indirect'...");
+    new indirect().foo ();
+  }
+}
Index: libjava.lang/indirect.out
===================================================================
RCS file: indirect.out
diff -N indirect.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ indirect.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,3 @@
+Testing class `indirect'...
+x=670
+foo=671
Index: libjava.lang/indirect_read.java
===================================================================
RCS file: indirect_read.java
diff -N indirect_read.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ indirect_read.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,33 @@
+// Class indirect_read
+// Generated on Mon Nov 15 17:20:40 UTC 1999
+//
+
+class indirect_read {
+
+  int foo;
+
+  class indirect_read_inner {
+    void test () {
+    }
+
+    class other {
+      void testx () {
+        int x = foo;
+	System.out.println ("x="+x);
+      }
+    }
+
+  }
+  void foo ()
+  {
+    foo = 670;
+    indirect_read_inner inn = this.new indirect_read_inner ();
+    indirect_read_inner.other o = inn.new other ();
+    o.testx ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `indirect_read'...");
+    new indirect_read().foo ();
+  }
+}
Index: libjava.lang/indirect_read.out
===================================================================
RCS file: indirect_read.out
diff -N indirect_read.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ indirect_read.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `indirect_read'...
+x=670
Index: libjava.lang/indirect_write.java
===================================================================
RCS file: indirect_write.java
diff -N indirect_write.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ indirect_write.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,32 @@
+// Class indirect_write
+// Generated on Tue Nov 16 15:01:24 UTC 1999
+//
+
+class indirect_write {
+
+  int foo;
+
+  class indirect_write_inner {
+    void test () {
+    }
+
+    class other {
+      void testx () {
+        foo = 670;
+      }
+    }
+
+  }
+  void foo ()
+  {
+    indirect_write_inner inn = this.new indirect_write_inner ();
+    indirect_write_inner.other x = inn.new other ();
+    x.testx();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `indirect_write'...");
+    new indirect_write().foo ();
+  }
+}
Index: libjava.lang/indirect_write.out
===================================================================
RCS file: indirect_write.out
diff -N indirect_write.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ indirect_write.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `indirect_write'...
+foo=670
Index: libjava.lang/inner1.java
===================================================================
RCS file: inner1.java
diff -N inner1.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner1.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,36 @@
+// Class inner1
+// Generated on Thu Nov  4 16:35:03 PST 1999
+//
+
+class inner1 {
+  int i;
+  void foo () {
+    inner1.z x1 = new z();
+    inner1.z.y x = x1.new y();
+    x.bar ();
+    x.print();
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner1'...");
+    new inner1 ().foo();
+  }
+  class z {
+    int j;
+    void foo () {
+      inner1.this.i = 3; 
+    }
+    class y { 
+      int k;
+      void bar () {
+        inner1.this.i = 3;
+        z.this.j = 4;
+        y.this.k = 34;
+      }
+      void print () {
+        System.out.println ("i="+i+", j="+j+", k="+k);
+      }
+    }
+  }
+}
+
Index: libjava.lang/inner1.out
===================================================================
RCS file: inner1.out
diff -N inner1.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner1.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `inner1'...
+i=3, j=4, k=34
Index: libjava.lang/inner2.java
===================================================================
RCS file: inner2.java
diff -N inner2.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner2.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,18 @@
+// Class inner2
+// Generated on Mon Dec  6 14:32:34 PST 1999
+//
+
+class inner2 {
+  int foo = 1999;
+  void foo () 
+  {
+    inner2.this.foo = 666;
+    System.out.println (inner2.this.foo);
+  }
+  void print () {System.out.println (foo);}
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner2'...");
+    new inner2().foo ();
+  }
+}
Index: libjava.lang/inner2.out
===================================================================
RCS file: inner2.out
diff -N inner2.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner2.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `inner2'...
+666
Index: libjava.lang/inner3.java
===================================================================
RCS file: inner3.java
diff -N inner3.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner3.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,23 @@
+// Class inner3
+// Generated on Tue Dec  7 11:37:43 PST 1999
+//
+
+class inner3 {
+  int bar;
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner3'...");
+    new inner3().bar ();
+  }
+  void bar () {
+    t xx = this.new t ();
+    xx.bar ();
+  }
+  void foo () { bar = 3; }
+  class t {
+    void bar () {
+      inner3.this.foo ();
+      System.out.println (inner3.this.bar);
+    }
+  }
+}
Index: libjava.lang/inner3.out
===================================================================
RCS file: inner3.out
diff -N inner3.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner3.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `inner3'...
+3
Index: libjava.lang/inner4.java
===================================================================
RCS file: inner4.java
diff -N inner4.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner4.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,34 @@
+// Class inner4
+// Generated on Tue Dec  7 11:43:48 PST 1999
+//
+
+class inner4 {
+    static private int xyz () { return 3; }
+    private String f;
+  
+    String p () {
+	return "public String p()";
+    }
+
+    private String pp (int x, byte y, char c) {
+	return "private String pp("+x+", "+y+", "+c+")";
+    }
+
+    void foo () {
+	t xxx = this.new t();
+	xxx.bar ();
+        pp (3, (byte)34, 'C');
+    }
+    public static void main (String[] arg)
+    {
+	System.out.println ("Testing class `inner4'...");
+	new inner4().foo();
+    }
+    class t {
+	void bar () {
+            System.out.println (p ());
+	    System.out.println (pp (3, (byte)34, 'C'));
+            System.out.println (xyz ());
+	}
+    }
+}
Index: libjava.lang/inner4.out
===================================================================
RCS file: inner4.out
diff -N inner4.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner4.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,4 @@
+Testing class `inner4'...
+public String p()
+private String pp(3, 34, C)
+3
Index: libjava.lang/inner_array.java
===================================================================
RCS file: inner_array.java
diff -N inner_array.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner_array.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,30 @@
+// Class inner_array
+// Generated on Fri Nov 19 13:19:47 PST 1999
+//
+
+class inner_array {
+
+  private int[] foo;
+
+  class array_inner {
+    void test () {
+      int x = foo[2];
+      System.out.println ("x="+x);
+      foo [1] = 34;
+      foo [1]++;
+    }
+  }
+  void foo ()
+  {
+    foo = new int [3];
+    foo[2]=670;
+    array_inner inn = this.new array_inner ();
+    inn.test ();
+    System.out.println ("foo[1]="+foo[1]);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner_array'...");
+    new inner_array().foo ();
+  }
+}
Index: libjava.lang/inner_array.out
===================================================================
RCS file: inner_array.out
diff -N inner_array.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ inner_array.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,3 @@
+Testing class `inner_array'...
+x=670
+foo[1]=35
Index: libjava.lang/multiple_finit.java
===================================================================
RCS file: multiple_finit.java
diff -N multiple_finit.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ multiple_finit.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,28 @@
+// Class multiple_finit
+// Generated on Mon Jan  3 20:07:18 PST 2000
+//
+
+class multiple_finit {
+
+  int foo = 99;
+
+  class multiple_finit_inner {
+    int inner = 34;
+    void test () {
+      System.out.println (inner);
+      System.out.println (foo);
+    }
+  }
+  void foo (String s)
+  {
+    multiple_finit_inner inn = this.new multiple_finit_inner ();
+    inn.test ();
+    System.out.println (foo);
+  }  
+  void testx () { }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `multiple_finit'...");
+    new multiple_finit().foo ("");
+  }
+}
Index: libjava.lang/multiple_finit.out
===================================================================
RCS file: multiple_finit.out
diff -N multiple_finit.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ multiple_finit.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,4 @@
+Testing class `multiple_finit'...
+34
+99
+99
Index: libjava.lang/private_direct_read.java
===================================================================
RCS file: private_direct_read.java
diff -N private_direct_read.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ private_direct_read.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,26 @@
+// Class private_direct_read
+// Generated on Tue Nov 16 15:04:13 UTC 1999
+//
+
+class private_direct_read {
+
+  private int foo;
+
+  class private_direct_read_inner {
+    void test () {
+      int x = foo;
+      System.out.println ("x="+x);
+    }
+  }
+  void foo ()
+  {
+    foo = 670;
+    private_direct_read_inner inn = this.new private_direct_read_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_direct_read'...");
+    new private_direct_read().foo ();
+  }
+}
Index: libjava.lang/private_direct_read.out
===================================================================
RCS file: private_direct_read.out
diff -N private_direct_read.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ private_direct_read.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `private_direct_read'...
+x=670
Index: libjava.lang/private_direct_write.java
===================================================================
RCS file: private_direct_write.java
diff -N private_direct_write.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ private_direct_write.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,25 @@
+// Class private_direct_write
+// Generated on Tue Nov 16 15:05:54 UTC 1999
+//
+
+class private_direct_write {
+
+  private int foo;
+
+  class private_direct_write_inner {
+    void test () {
+      foo = 670;
+    }
+  }
+  void foo ()
+  {
+    private_direct_write_inner inn = this.new private_direct_write_inner ();
+    inn.test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_direct_write'...");
+    new private_direct_write().foo ();
+  }
+}
Index: libjava.lang/private_indirect_read.java
===================================================================
RCS file: private_indirect_read.java
diff -N private_indirect_read.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ private_indirect_read.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,32 @@
+// Class private_indirect_read
+// Generated on Tue Nov 16 15:34:56 UTC 1999
+//
+
+class private_indirect_read {
+
+  private int foo;
+
+  class private_indirect_read_inner {
+    void test () {
+    }
+    class other {
+      void testx () {
+        int x = foo;
+        System.out.println ("x="+x);
+      }
+    }
+
+  }
+  void foo ()
+  {
+    foo=670;
+    private_indirect_read_inner inn = this.new private_indirect_read_inner ();
+    private_indirect_read_inner.other o = inn.new other ();
+    o.testx();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_indirect_read'...");
+    new private_indirect_read().foo ();
+  }
+}
Index: libjava.lang/private_indirect_write.java
===================================================================
RCS file: private_indirect_write.java
diff -N private_indirect_write.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ private_indirect_write.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,32 @@
+// Class private_indirect_write
+// Generated on Tue Nov 16 15:44:49 UTC 1999
+//
+
+class private_indirect_write {
+
+  private int foo;
+
+  class private_indirect_write_inner {
+    void test () {
+    }
+
+    class other {
+      void test () {
+        foo = 670;
+      }
+    }
+
+  }
+  void foo ()
+  {
+    private_indirect_write_inner inn = this.new private_indirect_write_inner ();
+    private_indirect_write_inner.other x = inn.new other ();
+    x.test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_indirect_write'...");
+    new private_indirect_write().foo ();
+  }
+}
Index: libjava.lang/search_outer.java
===================================================================
RCS file: search_outer.java
diff -N search_outer.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ search_outer.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,28 @@
+// Class search_outer.java
+// Generated on Thu Nov 18 18:40:43 UTC 1999
+//
+
+class search_outer {
+
+  private int foo;
+
+  class search_outer_inner {
+    void test () {
+      foo++;
+      System.out.println ("foo="+foo);
+      foo += 3;
+      System.out.println ("foo="+foo);
+    }
+  }
+  void foo ()
+  {
+    foo = 3;
+    search_outer_inner inn = this.new search_outer_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `search_outer'...");
+    new search_outer().foo ();
+  }
+}
Index: libjava.lang/search_outer.out
===================================================================
RCS file: search_outer.out
diff -N search_outer.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ search_outer.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,3 @@
+Testing class `search_outer'...
+foo=4
+foo=7
Index: libjava.lang/tmi.java
===================================================================
RCS file: tmi.java
diff -N tmi.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ tmi.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,43 @@
+// Class t
+// Generated on Thu Nov  4 16:35:03 PST 1999
+//
+
+class tmi {
+  int i;
+  void foo () {
+    tmi.z x1 = new z();
+    tmi.z.y x = x1.new y();
+    x.bar ();
+    x.print();
+    tmi.this.i = 666;
+    x.print();
+    tmi.this.print();
+  }
+  void print () {
+    System.out.println ("tmi.print()");
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `tmi'...");
+    new tmi ().foo();
+  }
+  class z {
+    int j;
+    void foo () {
+      tmi.this.i = 3; 
+    }
+    class y { 
+      int k;
+      void bar () {
+        tmi.this.i = 3;
+        tmi.this.print ();
+        z.this.j = 4;
+        y.this.k = 34;
+      }
+      void print () {
+        System.out.println ("i="+i+", j="+j+", k="+k);
+      }
+    }
+  }
+}
+
Index: libjava.lang/tmi.out
===================================================================
RCS file: tmi.out
diff -N tmi.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ tmi.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,5 @@
+Testing class `tmi'...
+tmi.print()
+i=3, j=4, k=34
+i=666, j=4, k=34
+tmi.print()
Index: libjava.lang/tp.java
===================================================================
RCS file: tp.java
diff -N tp.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ tp.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,36 @@
+// Class tp
+// Generated on Thu Nov  4 16:35:03 PST 1999
+//
+
+class tp {
+  private int i;
+  void foo () {
+    tp.z x1 = new z();
+    tp.z.y x = x1.new y();
+    x.bar ();
+    x.print();
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `tp'...");
+    new tp ().foo();
+  }
+  class z {
+    private int j;
+    void foo () {
+      tp.this.i = 3; 
+    }
+    class y { 
+      private int k;
+      void bar () {
+        tp.this.i = 3;
+        z.this.j = 4;
+        y.this.k = 34;
+      }
+      void print () {
+        System.out.println ("i="+i+", j="+j+", k="+k);
+      }
+    }
+  }
+}
+
Index: libjava.lang/tp.out
===================================================================
RCS file: tp.out
diff -N tp.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ tp.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `tp'...
+i=3, j=4, k=34
Index: libjava.lang/update_outer.java
===================================================================
RCS file: update_outer.java
diff -N update_outer.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ update_outer.java	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,28 @@
+// Class update_outer
+// Generated on Thu Nov 18 21:37:21 UTC 1999
+//
+
+class update_outer {
+
+  private String foo;
+
+  class update_outer_inner {
+    void test () {
+      foo += " M$";
+      System.out.println ("foo=`"+foo+"'");
+    }
+
+
+  }
+  void foo ()
+  {
+    foo = "780";
+    update_outer_inner inn = this.new update_outer_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `update_outer'...");
+    new update_outer().foo ();
+  }
+}
Index: libjava.lang/update_outer.out
===================================================================
RCS file: update_outer.out
diff -N update_outer.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ update_outer.out	Wed Jan 19 13:25:56 2000
@@ -0,0 +1,2 @@
+Testing class `update_outer'...
+foo=`780 M$'


More information about the Java-patches mailing list