[FIR] Properly resolve declarations inside contract calls on CONTRACT phase

This commit is contained in:
Dmitriy Novozhilov
2022-11-11 17:34:14 +02:00
committed by Space Team
parent 01c6c7dc59
commit 9b7b517f43
6 changed files with 29 additions and 54 deletions
@@ -29,14 +29,15 @@ internal class LLFirDesignatedContractsResolveTransformer(
private val ideDeclarationTransformer = LLFirDeclarationTransformer(designation)
override val declarationsTransformer: FirDeclarationsResolveTransformer = object : FirDeclarationsContractResolveTransformer(this) {
override fun transformDeclarationContent(firClass: FirClass, data: ResolutionMode) {
ideDeclarationTransformer.transformDeclarationContent(this, firClass, data) {
super.transformDeclarationContent(firClass, data)
firClass
override val contractDeclarationsTransformer: FirDeclarationsContractResolveTransformer
get() = object : FirDeclarationsContractResolveTransformer() {
override fun transformDeclarationContent(firClass: FirClass, data: ResolutionMode) {
ideDeclarationTransformer.transformDeclarationContent(this, firClass, data) {
super.transformDeclarationContent(firClass, data)
firClass
}
}
}
}
override fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration =
ideDeclarationTransformer.transformDeclarationContent(this, declaration, data) {