FIR: Do not use FirClass::supertypesComputationStatus

This commit is contained in:
Denis Zharkov
2019-11-12 11:08:22 +03:00
parent 5e0e78e555
commit 3f7bffa6fd
@@ -183,13 +183,12 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
} }
private fun prepareLocalClassForBodyResolve(klass: FirClass<*>) { private fun prepareLocalClassForBodyResolve(klass: FirClass<*>) {
if (klass.supertypesComputationStatus == SupertypesComputationStatus.NOT_COMPUTED) { if (klass.superTypeRefs.any { it !is FirResolvedTypeRef }) {
klass.replaceSuperTypeRefs( klass.replaceSuperTypeRefs(
klass.superTypeRefs.map { superTypeRef -> klass.superTypeRefs.map { superTypeRef ->
this.transformer.transformTypeRef(superTypeRef, ResolutionMode.ContextIndependent).single this.transformer.transformTypeRef(superTypeRef, ResolutionMode.ContextIndependent).single
} }
) )
klass.replaceSupertypesComputationStatus(SupertypesComputationStatus.COMPUTED)
} }
if (klass is FirRegularClass) { if (klass is FirRegularClass) {
klass.transformStatus(transformer, klass.resolveStatus(klass.status).mode()) klass.transformStatus(transformer, klass.resolveStatus(klass.status).mode())
@@ -550,4 +549,4 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
return valueParameter.compose() return valueParameter.compose()
} }
} }
} }