blob: f9a368f3768ce12e5d2f8022d3508301e3843eeb [file] [log] [blame]
/*
* @test /nodynamiccopyright/
* @bug 4249111
* @summary 'new' of inner class should not be allowed unless outer is constructed
*
* @compile/fail/ref=NewBeforeOuterConstructed.out -XDrawDiagnostics NewBeforeOuterConstructed.java
*/
import java.io.*;
public class NewBeforeOuterConstructed extends PrintStream {
private class NullOutputStream extends OutputStream {
public NullOutputStream() {
super();
}
public void write(int b) { }
public void write(byte b[]) { }
public void write(byte b[], int off, int len) { }
public void flush() { }
public void close() { }
}
public NewBeforeOuterConstructed() {
// The 'new' below is illegal, as the outer
// constructor has not been called when the
// implicit reference to 'this' is evaluated
// during the new instance expression.
super(new NullOutputStream());
}
}