FIR: use correct context for enum entry resolve

Now the same resolve context is used for enum entries and
for constructors.
This commit is contained in:
Mikhail Glukhikh
2021-01-15 18:37:06 +03:00
parent f85fc47383
commit 9a5791ad6d
5 changed files with 70 additions and 1 deletions
@@ -250,6 +250,10 @@ open class FirBodyResolveTransformer(
return declarationsTransformer.transformDeclarationStatus(declarationStatus, data)
}
override fun transformEnumEntry(enumEntry: FirEnumEntry, data: ResolutionMode): CompositeTransformResult<FirDeclaration> {
return declarationsTransformer.transformEnumEntry(enumEntry, data)
}
override fun transformProperty(property: FirProperty, data: ResolutionMode): CompositeTransformResult<FirProperty> {
return declarationsTransformer.transformProperty(property, data)
}
@@ -99,6 +99,12 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
}
}
override fun transformEnumEntry(enumEntry: FirEnumEntry, data: ResolutionMode): CompositeTransformResult<FirDeclaration> {
context.withTowerDataContext(context.getTowerDataContextForConstructorResolution()) {
return (enumEntry.transformChildren(this, data) as FirEnumEntry).compose()
}
}
override fun transformProperty(property: FirProperty, data: ResolutionMode): CompositeTransformResult<FirProperty> {
require(property !is FirSyntheticProperty) { "Synthetic properties should not be processed by body transfromers" }