mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			708 B
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			708 B
		
	
	
	
		
			Java
		
	
	
	
// This test case once showed that `f[0].execute(x)' woudln't be
 | 
						|
// expanded properly, attempting to retrieve this$0 to be used in
 | 
						|
// place of `f[0]'.
 | 
						|
 | 
						|
abstract class A {
 | 
						|
    abstract public void execute(C x);
 | 
						|
}
 | 
						|
 | 
						|
class C {}
 | 
						|
 | 
						|
class Z extends A {
 | 
						|
    public void execute (C x) {
 | 
						|
	System.out.println ("Z.execute");
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
public class invoke_from_inner extends A {
 | 
						|
 | 
						|
    Z f[] = new Z[1];
 | 
						|
    class D extends C {
 | 
						|
	D (C x) {
 | 
						|
	    f[0].execute (x);
 | 
						|
	    execute (x);
 | 
						|
	}
 | 
						|
    }
 | 
						|
    public void execute (C x) {
 | 
						|
      System.out.println ("invoke_from_inner.execute");
 | 
						|
    }
 | 
						|
 | 
						|
    public static void main (String a[]) {
 | 
						|
	new invoke_from_inner().foo();
 | 
						|
    }
 | 
						|
    void foo () {
 | 
						|
	f[0] = new Z();
 | 
						|
	new D(new C());
 | 
						|
    }
 | 
						|
}
 |