FIR: fix declaration phase updating in FirContractResolveTransformer

This commit is contained in:
Ilya Kirillov
2021-03-03 20:45:31 +01:00
parent 4dc040b91a
commit f8828abeba
3 changed files with 7 additions and 7 deletions
@@ -84,7 +84,7 @@ abstract class FirAbstractBodyResolveTransformer(phase: FirResolvePhase) : FirAb
protected open fun needReplacePhase(firDeclaration: FirDeclaration) = true
fun replaceDeclarationResolvePhaseIfNeeded(firDeclaration: FirDeclaration, newResolvePhase: FirResolvePhase) {
if (needReplacePhase(firDeclaration)) {
if (needReplacePhase(firDeclaration) && newResolvePhase > firDeclaration.resolvePhase) {
firDeclaration.replaceResolvePhase(newResolvePhase)
}
}
@@ -280,7 +280,7 @@ open class FirContractResolveTransformer(
get() = contractDescription is FirLegacyRawContractDescription || contractDescription is FirRawContractDescription
private fun FirDeclaration.updatePhase() {
replaceDeclarationResolvePhaseIfNeeded(this, FirResolvePhase.CONTRACTS)
transformer.replaceDeclarationResolvePhaseIfNeeded(this, FirResolvePhase.CONTRACTS)
}
}
}