FIR deserializer: provide proper type for enum entries

This commit is contained in:
Simon Ogorodnik
2019-04-25 14:13:38 +03:00
committed by Mikhail Glukhikh
parent ca350e64c2
commit e521e66c74
11 changed files with 38 additions and 27 deletions
@@ -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