FIR: fix default constructor visibility for enum entry.

This commit is contained in:
Jinseong Jeon
2020-05-19 15:06:18 -07:00
committed by Mikhail Glukhikh
parent 0d3301b695
commit 7a947e8008
8 changed files with 23 additions and 24 deletions
@@ -57,9 +57,10 @@ class ClassWrapper(
return modifiers.isInner()
}
// See DescriptorUtils#getDefaultConstructorVisibility in core.descriptors
fun defaultConstructorVisibility(): Visibility {
return when {
isObject() || isEnum() -> Visibilities.PRIVATE
isObject() || isEnum() || isEnumEntry() -> Visibilities.PRIVATE
isSealed() -> Visibilities.PRIVATE
else -> Visibilities.UNKNOWN
}
@@ -544,9 +544,9 @@ class RawFirBuilder(
}
}
// See DescriptorUtils#getDefaultConstructorVisibility in core.descriptors
fun defaultVisibility() = when {
// TODO: object / enum is HIDDEN (?)
owner is KtObjectDeclaration || owner.hasModifier(ENUM_KEYWORD) -> Visibilities.PRIVATE
owner is KtObjectDeclaration || owner.hasModifier(ENUM_KEYWORD) || owner is KtEnumEntry -> Visibilities.PRIVATE
owner.hasModifier(SEALED_KEYWORD) -> Visibilities.PRIVATE
else -> Visibilities.UNKNOWN
}
@@ -30,14 +30,14 @@ FILE: annotation.kt
}
public final static enum entry FIRST: R|My| = @base() object : R|My| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|My|>()
}
}
public final static enum entry SECOND: R|My| = @base() object : R|My| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|My|>()
}
@@ -14,7 +14,7 @@ FILE: constructorInObject.kt
}
public final static enum entry X: R|B| = object : R|B| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|B|>()
}
@@ -26,7 +26,7 @@ FILE: enums.kt
internal get(): Double
public final static enum entry MERCURY: R|Planet| = object : R|Planet| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|Planet|>(Double(1.0), Double(2.0))
}
@@ -37,7 +37,7 @@ FILE: enums.kt
}
public final static enum entry VENERA: R|Planet| = object : R|Planet| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|Planet|>(Double(3.0), Double(4.0))
}
@@ -48,7 +48,7 @@ FILE: enums.kt
}
public final static enum entry EARTH: R|Planet| = object : R|Planet| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|Planet|>(Double(5.0), Double(6.0))
}
@@ -89,49 +89,49 @@ FILE: enums.kt
public? get(): String
public final static enum entry FIX_STACK_BEFORE_JUMP: R|PseudoInsn| = object : R|PseudoInsn| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|PseudoInsn|>()
}
}
public final static enum entry FAKE_ALWAYS_TRUE_IFEQ: R|PseudoInsn| = object : R|PseudoInsn| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|PseudoInsn|>(String(()I))
}
}
public final static enum entry FAKE_ALWAYS_FALSE_IFEQ: R|PseudoInsn| = object : R|PseudoInsn| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|PseudoInsn|>(String(()I))
}
}
public final static enum entry SAVE_STACK_BEFORE_TRY: R|PseudoInsn| = object : R|PseudoInsn| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|PseudoInsn|>()
}
}
public final static enum entry RESTORE_STACK_IN_TRY_CATCH: R|PseudoInsn| = object : R|PseudoInsn| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|PseudoInsn|>()
}
}
public final static enum entry STORE_NOT_NULL: R|PseudoInsn| = object : R|PseudoInsn| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|PseudoInsn|>()
}
}
public final static enum entry AS_NOT_NULL: R|PseudoInsn| = object : R|PseudoInsn| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|PseudoInsn|>(String((Ljava/lang/Object;)Ljava/lang/Object;))
}
@@ -22,7 +22,7 @@ FILE: enums2.kt
public? get(): Some
public final static enum entry FIRST: R|SomeEnum| = object : R|SomeEnum| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|SomeEnum|>(O1#)
}
@@ -33,7 +33,7 @@ FILE: enums2.kt
}
public final static enum entry SECOND: R|SomeEnum| = object : R|SomeEnum| {
public? constructor(): R|anonymous| {
private constructor(): R|anonymous| {
super<R|SomeEnum|>(O2#)
}