2007-12-01 00:00:00 +00:00
|
|
|
/*
|
2014-07-07 20:39:31 +00:00
|
|
|
* @test /nodynamiccopyright/
|
2007-12-01 00:00:00 +00:00
|
|
|
* @bug 4249111
|
|
|
|
* @summary 'new' of inner class should not be allowed unless outer is constructed
|
|
|
|
*
|
2014-07-07 20:39:31 +00:00
|
|
|
* @compile/fail/ref=NewBeforeOuterConstructed.out -XDrawDiagnostics NewBeforeOuterConstructed.java
|
2007-12-01 00:00:00 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
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());
|
|
|
|
}
|
|
|
|
}
|