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());
 | |
|     }
 | |
| }
 |