eclipse-jdt / eclipse-jdt/eclipse.jdt.core

[BETA_JAVA28] ECJ doesn't set AccIdentity in inner_class_access_flags

Open
#5,327 0 comments 0 reactions 1 assignee Claimed by @srikanth-sankaran View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.