FIR: avoid resolve loop between accessor and other members

#KT-48634 Fixed
This commit is contained in:
Mikhail Glukhikh
2021-08-23 18:08:31 +03:00
committed by teamcityserver
parent 72fa330576
commit 19a75b31f9
16 changed files with 186 additions and 29 deletions
@@ -202,7 +202,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
parents += typeParametersOwnerBuilder
defaultNull("getter", "setter", "containerSource", "delegateFieldSymbol")
default("resolvePhase", "FirResolvePhase.RAW_FIR")
defaultFalse("initializerAndAccessorsAreResolved")
default("bodyResolveState", "FirPropertyBodyResolveState.NOTHING_RESOLVED")
withCopy()
}
@@ -318,7 +318,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+field("backingFieldSymbol", backingFieldSymbolType)
+field("delegateFieldSymbol", delegateFieldSymbolType, nullable = true)
+booleanField("isLocal")
+booleanField("initializerAndAccessorsAreResolved", withReplace = true)
+field("bodyResolveState", propertyBodyResolveStateType, withReplace = true)
+typeParameters
}
@@ -61,6 +61,7 @@ val implicitNothingTypeRefType = generatedType("types.impl", "FirImplicitNothing
val implicitStringTypeRefType = generatedType("types.impl", "FirImplicitStringTypeRef")
val implicitUnitTypeRefType = generatedType("types.impl", "FirImplicitUnitTypeRef")
val resolvePhaseType = type("fir.declarations", "FirResolvePhase")
val propertyBodyResolveStateType = type("fir.declarations", "FirPropertyBodyResolveState")
val stubReferenceType = generatedType("references.impl", "FirStubReference")
val firBasedSymbolType = type("fir.symbols", "FirBasedSymbol")