Add "hasEnumEntries" flag to class metadata

With this flag we can distinguish enum classes that have `entries`
property in the compiled bytecode (see `LanguageFeature.EnumEntries`).
This is needed to be able to understand in the frontend whether
`entries` can be called for that class. For Native and JS, this is
currently not possible even if the feature is enabled, but the class
was compiled with disabled feature.

^KT-53929 Fixed
This commit is contained in:
Roman Efremov
2023-01-02 08:36:01 +01:00
parent f6eb978671
commit 3c5e556ba6
3 changed files with 17 additions and 0 deletions
@@ -10109,6 +10109,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
boolean hasFlags();
@@ -10126,6 +10127,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
int getFlags();
@@ -11099,6 +11101,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public boolean hasFlags() {
@@ -11118,6 +11121,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public int getFlags() {
@@ -12993,6 +12997,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public boolean hasFlags() {
@@ -13012,6 +13017,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public int getFlags() {
@@ -13031,6 +13037,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public Builder setFlags(int value) {
@@ -13053,6 +13060,7 @@ public final class DebugProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public Builder clearFlags() {
+1
View File
@@ -211,6 +211,7 @@ message Class {
isExpect
isInline
isFun
hasEnumEntries
*/
optional int32 flags = 1 [default = 6 /* public final class, no annotations */];
@@ -8282,6 +8282,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
boolean hasFlags();
@@ -8299,6 +8300,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
int getFlags();
@@ -9136,6 +9138,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public boolean hasFlags() {
@@ -9155,6 +9158,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public int getFlags() {
@@ -10721,6 +10725,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public boolean hasFlags() {
@@ -10740,6 +10745,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public int getFlags() {
@@ -10759,6 +10765,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public Builder setFlags(int value) {
@@ -10781,6 +10788,7 @@ public final class ProtoBuf {
*isExpect
*isInline
*isFun
*hasEnumEntries
* </pre>
*/
public Builder clearFlags() {