diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index e73417271d3..865adaff973 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -166,10 +166,19 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn if (symbol is ConeCallableSymbol) { jump.tryCalculateReturnType(symbol.firUnsafe()) } else if (symbol is ConeClassifierSymbol) { - FirResolvedTypeRefImpl( - session, null, symbol.constructType(emptyArray(), isNullable = false), - isMarkedNullable = false, annotations = emptyList() - ) + val firUnsafe = symbol.firUnsafe() + // TODO: unhack + if (firUnsafe is FirEnumEntry) { + (firUnsafe.superTypeRefs.firstOrNull() as? FirResolvedTypeRef) ?: FirErrorTypeRefImpl( + session, + null, + "no enum item supertype" + ) + } else + FirResolvedTypeRefImpl( + session, null, symbol.constructType(emptyArray(), isNullable = false), + isMarkedNullable = false, annotations = emptyList() + ) } else { error("WTF ! $symbol") }