2007-12-01 00:00:00 +00:00
|
|
|
/*
|
|
|
|
* @test /nodynamiccopyright/
|
|
|
|
* @bug 4095568 4277286 4785453
|
|
|
|
* @summary Verify rejection of illegal static variables in inner classes.
|
|
|
|
* @author William Maddox (maddox)
|
|
|
|
*
|
2022-07-29 17:35:22 +00:00
|
|
|
* @compile/fail/ref=InnerNamedConstant_2_A.out -XDrawDiagnostics --release 15 InnerNamedConstant_2.java
|
2020-11-21 03:17:57 +00:00
|
|
|
* @compile/fail/ref=InnerNamedConstant_2_B.out -XDrawDiagnostics InnerNamedConstant_2.java
|
2007-12-01 00:00:00 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
public class InnerNamedConstant_2 {
|
|
|
|
|
|
|
|
static class Inner1 {
|
|
|
|
static int x = 1; // OK - class is top-level
|
|
|
|
static final int y = x * 5; // OK - class is top-level
|
|
|
|
static final String z; // OK - class is top-level
|
|
|
|
static {
|
|
|
|
z = "foobar";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class Inner2 {
|
|
|
|
static int x = 1; // ERROR - static not final
|
|
|
|
static final String z; // ERROR - static blank final
|
|
|
|
{
|
|
|
|
z = "foobar"; // Error may be reported here. See 4278961.
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// This case must go in a separate class, as otherwise the detection
|
|
|
|
// of the error is suppressed as a result of recovery from the other
|
|
|
|
// errors.
|
|
|
|
|
|
|
|
class Inner3 {
|
|
|
|
static final int y = Inner1.x * 5; // ERROR - initializer not constant
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|