eclipse-jdt / eclipse-jdt/eclipse.jdt.core
[BETA_JAVA28] ECJ doesn't set AccIdentity in inner_class_access_flags
- Dominant language
- Java
- Stars
- 237
- Forks
- 195
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 47
Description
https://download.java.net/java/early_access/jdk28/docs/specs/value-objects-jvms.html:
4.7.6 The InnerClasses Attribute:
...
inner_class_access_flags
The value of the inner_class_access_flags item is a mask of flags used to denote access permissions to and properties of class or interface C as declared in the source code from which this class file was compiled. It is used by a compiler to recover the original information when source code is not available. The flags are specified in [Table 4.7.6-A](https://download.java.net/java/early_access/jdk28/docs/specs/value-objects-jvms.html#jvms-4.7.6-300-D.1-D.1).
...
and this table mentions ACC_IDENTITY - ATM, javac doesn't seem to set this flag and ECJ has chosen to follow suit. But this needs to be addressed at some point. A good point would be to wait for javac to make the change and react accordingly. This involves changing the expected output of numerous tests and is better done in one stroke for both runtime inner classes that appear in expected output as well as ECJ's generated inner classes themselves.
Contributor guide
Assessment
This issue has not been assessed yet.