diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt index 7830a50cebc..aae700a8220 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef +import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.load.java.JavaClassFinder @@ -296,7 +297,15 @@ class KotlinDeserializedJvmSymbolsProvider( } val symbol = FirClassSymbol(classId) - FirEnumEntryImpl(session, null, symbol, classId.shortClassName) + FirEnumEntryImpl(session, null, symbol, classId.shortClassName).apply { + superTypeRefs += FirResolvedTypeRefImpl( + session, + null, + ConeClassTypeImpl(ConeClassLikeLookupTagImpl(outerClassId), emptyArray(), false), + false, + emptyList() + ) + } classesCache[classId] = symbol } else { if (kotlinJvmBinaryClass.classHeader.kind != KotlinClassHeader.Kind.CLASS) return null diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/AnnotationInAnnotationArguments.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/AnnotationInAnnotationArguments.txt index 8aa69f661e3..a5750a385a4 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/AnnotationInAnnotationArguments.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/AnnotationInAnnotationArguments.txt @@ -6,7 +6,7 @@ public final enum class E : R|kotlin/Enum| { private constructor(): R|test/E| - public? final enum entry ENTRY { + public? final enum entry ENTRY : R|test/E| { } } diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/classMembers/EnumEntry.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/classMembers/EnumEntry.txt index fcfc0954102..67ceddcfedd 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/classMembers/EnumEntry.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/annotations/classMembers/EnumEntry.txt @@ -17,16 +17,16 @@ public final annotation class Bnno : R|kotlin/Annotation| { public final enum class Eee : R|kotlin/Enum| { private constructor(): R|test/Eee| - public? final enum entry Entry1 { + public? final enum entry Entry1 : R|test/Eee| { } - public? final enum entry Entry2 { + public? final enum entry Entry2 : R|test/Eee| { } - public? final enum entry Entry3 { + public? final enum entry Entry3 : R|test/Eee| { } - public? final enum entry Entry4 { + public? final enum entry Entry4 : R|test/Eee| { } } diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumVisibility.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumVisibility.txt index 50866f94139..7c7e4c48359 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumVisibility.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumVisibility.txt @@ -1,7 +1,7 @@ internal final enum class In : R|kotlin/Enum| { private constructor(): R|test/In| - public? final enum entry A { + public? final enum entry A : R|test/In| { } } @@ -9,7 +9,7 @@ internal final enum class In : R|kotlin/Enum| { private final enum class Pr : R|kotlin/Enum| { private constructor(): R|test/Pr| - public? final enum entry A { + public? final enum entry A : R|test/Pr| { } } @@ -17,7 +17,7 @@ private final enum class Pr : R|kotlin/Enum| { public final enum class Pu : R|kotlin/Enum| { private constructor(): R|test/Pu| - public? final enum entry A { + public? final enum entry A : R|test/Pu| { } } diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithConstuctor.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithConstuctor.txt index f61db5c84fc..eecfb153297 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithConstuctor.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithConstuctor.txt @@ -7,13 +7,13 @@ public final enum class En : R|kotlin/Enum| { private constructor(b: R|kotlin/Boolean| = STUB, i: R|kotlin/Int| = STUB): R|test/En| - public? final enum entry E1 { + public? final enum entry E1 : R|test/En| { } - public? final enum entry E2 { + public? final enum entry E2 : R|test/En| { } - public? final enum entry E3 { + public? final enum entry E3 : R|test/En| { } } diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithInnerClasses.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithInnerClasses.txt index 7895b2a4ab1..c8df448f338 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithInnerClasses.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/EnumWithInnerClasses.txt @@ -19,10 +19,10 @@ public final enum class Enum : R|kotlin/Enum| { public abstract interface Trait : R|kotlin/Any| { } - public? final enum entry ENTRY1 { + public? final enum entry ENTRY1 : R|test/Enum| { } - public? final enum entry ENTRY2 { + public? final enum entry ENTRY2 : R|test/Enum| { } } diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnum.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnum.txt index c42098e1fd8..5918a71c59c 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnum.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnum.txt @@ -4,9 +4,10 @@ public final class A : R|kotlin/Any| { public final enum class E : R|kotlin/Enum| { private constructor(): R|test/A.E| - public? final enum entry ENTRY { + public? final enum entry ENTRY : R|test/A.E| { } } } + diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnumExistingClassObject.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnumExistingClassObject.txt index 729ba3f7614..900d10f73a4 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnumExistingClassObject.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/InnerEnumExistingClassObject.txt @@ -9,9 +9,10 @@ public final class A : R|kotlin/Any| { public final enum class E : R|kotlin/Enum| { private constructor(): R|test/A.E| - public? final enum entry ENTRY { + public? final enum entry ENTRY : R|test/A.E| { } } } + diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/SimpleEnum.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/SimpleEnum.txt index 4b3ab51b095..9b3524871ce 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/enum/SimpleEnum.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/enum/SimpleEnum.txt @@ -1,7 +1,7 @@ public final enum class MyEnum : R|kotlin/Enum| { private constructor(): R|test/MyEnum| - public? final enum entry ENTRY { + public? final enum entry ENTRY : R|test/MyEnum| { } } diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/fromLoadJava/Enum.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/fromLoadJava/Enum.txt index 5d6c194ada4..3d88643fec0 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/fromLoadJava/Enum.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/fromLoadJava/Enum.txt @@ -1,10 +1,10 @@ public final enum class Test : R|kotlin/Enum| { private constructor(a: R|kotlin/Int|): R|test/Test| - public? final enum entry A { + public? final enum entry A : R|test/Test| { } - public? final enum entry B { + public? final enum entry B : R|test/Test| { } } diff --git a/compiler/fir/resolve/testData/loadCompiledKotlin/memberOrder/EnumEntries.txt b/compiler/fir/resolve/testData/loadCompiledKotlin/memberOrder/EnumEntries.txt index 58bb7392e78..6f7d7629a23 100644 --- a/compiler/fir/resolve/testData/loadCompiledKotlin/memberOrder/EnumEntries.txt +++ b/compiler/fir/resolve/testData/loadCompiledKotlin/memberOrder/EnumEntries.txt @@ -1,28 +1,28 @@ public final enum class E : R|kotlin/Enum| { private constructor(): R|test/E| - public? final enum entry ONE { + public? final enum entry ONE : R|test/E| { } - public? final enum entry TWO { + public? final enum entry TWO : R|test/E| { } - public? final enum entry THREE { + public? final enum entry THREE : R|test/E| { } - public? final enum entry FOUR { + public? final enum entry FOUR : R|test/E| { } - public? final enum entry FIVE { + public? final enum entry FIVE : R|test/E| { } - public? final enum entry SIX { + public? final enum entry SIX : R|test/E| { } - public? final enum entry SEVEN { + public? final enum entry SEVEN : R|test/E| { } - public? final enum entry EIGHT { + public? final enum entry EIGHT : R|test/E| { } }