Consider this input code:
---
public enum BrokenEnum {
A,
void t() {}
B;
}
---
When compiled, this leads to these errors:
---
$ javac BrokenEnum.java
BrokenEnum.java:2: error: <identifier> expected
A,
^
BrokenEnum.java:3: error: ',', '}', or ';' expected
void t() {}
^
BrokenEnum.java:3: error: '}' expected
void t() {}
^
BrokenEnum.java:5: error: class, interface, or enum expected
}
^
4 errors
---
And the AST is:
---
public enum BrokenEnum {
/*public static final*/ A /* = new BrokenEnum() */ /*enum*/ ,
/*public static final*/ <error> /* = new BrokenEnum() */ /*enum*/ ;
(ERROR)
}(ERROR)
---
Both of these are fairly inconvenient.
---
public enum BrokenEnum {
A,
void t() {}
B;
}
---
When compiled, this leads to these errors:
---
$ javac BrokenEnum.java
BrokenEnum.java:2: error: <identifier> expected
A,
^
BrokenEnum.java:3: error: ',', '}', or ';' expected
void t() {}
^
BrokenEnum.java:3: error: '}' expected
void t() {}
^
BrokenEnum.java:5: error: class, interface, or enum expected
}
^
4 errors
---
And the AST is:
---
public enum BrokenEnum {
/*public static final*/ A /* = new BrokenEnum() */ /*enum*/ ,
/*public static final*/ <error> /* = new BrokenEnum() */ /*enum*/ ;
(ERROR)
}(ERROR)
---
Both of these are fairly inconvenient.
- relates to
-
JDK-8228451 NPE in Attr.java when -XDshould-stop.ifError=FLOW
-
- Resolved
-
-
JDK-8304671 javac regression: Compilation with --release 8 fails on underscore in enum identifiers
-
- Resolved
-