[FE] Add test for KT-54055

This commit is contained in:
Dmitriy Novozhilov
2022-09-15 14:21:56 +03:00
committed by Space
parent b86d5cf21a
commit 3a5a6e5587
6 changed files with 167 additions and 4 deletions
@@ -1,5 +1,5 @@
// LANGUAGE: +ProhibitAccessToEnumCompanionMembersInEnumConstructorCall
// ISSUE: KT-49110
// ISSUE: KT-49110, KT-54055
enum class SomeEnum(val x: Int) {
A(<!UNINITIALIZED_ENUM_COMPANION!>companionFun<!>().length),// UNINITIALIZED_ENUM_COMPANION
@@ -37,3 +37,28 @@ fun OtherEnum.Companion.extensionFun(): String = companionFun()
val OtherEnum.Companion.extensionProp: String
get() = companionProp
enum class EnumWithLambda(val lambda: () -> Unit) {
M({
companionFun().length
companionProp.length
EnumWithLambda.companionFun().length
EnumWithLambda.companionProp.length
<!UNINITIALIZED_ENUM_COMPANION!>extensionFun<!>().length
<!UNINITIALIZED_ENUM_COMPANION!>extensionProp<!>.length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.extensionFun().length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.extensionProp.length
});
companion object {
val companionProp = "someString"
fun companionFun(): String = "someString"
}
}
fun EnumWithLambda.Companion.extensionFun(): String = companionFun()
val EnumWithLambda.Companion.extensionProp: String
get() = companionProp
@@ -1,5 +1,5 @@
// LANGUAGE: +ProhibitAccessToEnumCompanionMembersInEnumConstructorCall
// ISSUE: KT-49110
// ISSUE: KT-49110, KT-54055
enum class SomeEnum(val x: Int) {
A(<!UNINITIALIZED_ENUM_COMPANION!>companionFun()<!>.length),// UNINITIALIZED_ENUM_COMPANION
@@ -37,3 +37,28 @@ fun OtherEnum.Companion.extensionFun(): String = companionFun()
val OtherEnum.Companion.extensionProp: String
get() = companionProp
enum class EnumWithLambda(val lambda: () -> Unit) {
M({
<!UNINITIALIZED_ENUM_COMPANION!>companionFun()<!>.length
<!UNINITIALIZED_ENUM_COMPANION!>companionProp<!>.length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.companionFun().length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.companionProp.length
<!UNINITIALIZED_ENUM_COMPANION!>extensionFun()<!>.length
<!UNINITIALIZED_ENUM_COMPANION!>extensionProp<!>.length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.extensionFun().length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.extensionProp.length
});
companion object {
val companionProp = "someString"
fun companionFun(): String = "someString"
}
}
fun EnumWithLambda.Companion.extensionFun(): String = companionFun()
val EnumWithLambda.Companion.extensionProp: String
get() = companionProp
@@ -1,8 +1,39 @@
package
public val EnumWithLambda.Companion.extensionProp: kotlin.String
public val OtherEnum.Companion.extensionProp: kotlin.String
public fun EnumWithLambda.Companion.extensionFun(): kotlin.String
public fun OtherEnum.Companion.extensionFun(): kotlin.String
public final enum class EnumWithLambda : kotlin.Enum<EnumWithLambda> {
enum entry M
private constructor EnumWithLambda(/*0*/ lambda: () -> kotlin.Unit)
public final val lambda: () -> kotlin.Unit
@kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumWithLambda): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<EnumWithLambda!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object Companion {
private constructor Companion()
public final val companionProp: kotlin.String = "someString"
public final fun companionFun(): kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): EnumWithLambda
public final /*synthesized*/ fun values(): kotlin.Array<EnumWithLambda>
}
public final enum class OtherEnum : kotlin.Enum<OtherEnum> {
enum entry G
@@ -80,3 +111,4 @@ public final enum class SomeEnum : kotlin.Enum<SomeEnum> {
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): SomeEnum
public final /*synthesized*/ fun values(): kotlin.Array<SomeEnum>
}
@@ -1,5 +1,5 @@
// LANGUAGE: -ProhibitAccessToEnumCompanionMembersInEnumConstructorCall
// ISSUE: KT-49110
// ISSUE: KT-49110, KT-54055
enum class SomeEnum(val x: Int) {
A(<!UNINITIALIZED_ENUM_COMPANION!>companionFun<!>().length),// UNINITIALIZED_ENUM_COMPANION
@@ -37,3 +37,28 @@ fun OtherEnum.Companion.extensionFun(): String = companionFun()
val OtherEnum.Companion.extensionProp: String
get() = companionProp
enum class EnumWithLambda(val lambda: () -> Unit) {
M({
companionFun().length
companionProp.length
EnumWithLambda.companionFun().length
EnumWithLambda.companionProp.length
<!UNINITIALIZED_ENUM_COMPANION!>extensionFun<!>().length
<!UNINITIALIZED_ENUM_COMPANION!>extensionProp<!>.length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.extensionFun().length
<!UNINITIALIZED_ENUM_COMPANION!>EnumWithLambda<!>.extensionProp.length
});
companion object {
val companionProp = "someString"
fun companionFun(): String = "someString"
}
}
fun EnumWithLambda.Companion.extensionFun(): String = companionFun()
val EnumWithLambda.Companion.extensionProp: String
get() = companionProp
@@ -1,5 +1,5 @@
// LANGUAGE: -ProhibitAccessToEnumCompanionMembersInEnumConstructorCall
// ISSUE: KT-49110
// ISSUE: KT-49110, KT-54055
enum class SomeEnum(val x: Int) {
A(<!UNINITIALIZED_ENUM_COMPANION!>companionFun<!>().length),// UNINITIALIZED_ENUM_COMPANION
@@ -37,3 +37,28 @@ fun OtherEnum.Companion.extensionFun(): String = companionFun()
val OtherEnum.Companion.extensionProp: String
get() = companionProp
enum class EnumWithLambda(val lambda: () -> Unit) {
M({
companionFun().length
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>companionProp<!>.length
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.companionFun().length
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.companionProp.length
extensionFun().length
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>extensionProp<!>.length
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.extensionFun().length
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.extensionProp.length
});
companion object {
val companionProp = "someString"
fun companionFun(): String = "someString"
}
}
fun EnumWithLambda.Companion.extensionFun(): String = companionFun()
val EnumWithLambda.Companion.extensionProp: String
get() = companionProp
@@ -1,8 +1,39 @@
package
public val EnumWithLambda.Companion.extensionProp: kotlin.String
public val OtherEnum.Companion.extensionProp: kotlin.String
public fun EnumWithLambda.Companion.extensionFun(): kotlin.String
public fun OtherEnum.Companion.extensionFun(): kotlin.String
public final enum class EnumWithLambda : kotlin.Enum<EnumWithLambda> {
enum entry M
private constructor EnumWithLambda(/*0*/ lambda: () -> kotlin.Unit)
public final val lambda: () -> kotlin.Unit
@kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumWithLambda): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<EnumWithLambda!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object Companion {
private constructor Companion()
public final val companionProp: kotlin.String = "someString"
public final fun companionFun(): kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): EnumWithLambda
public final /*synthesized*/ fun values(): kotlin.Array<EnumWithLambda>
}
public final enum class OtherEnum : kotlin.Enum<OtherEnum> {
enum entry G