[FIR] Properly track problems in contract description during effect extraction
This commit is contained in:
committed by
Space Team
parent
79d378f2bd
commit
5a92eb2c67
+2
-1
@@ -180,7 +180,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
val intersectionTypeRef by element(TypeRef, typeRefWithNullability)
|
||||
val implicitTypeRef by element(TypeRef, typeRef)
|
||||
|
||||
val effectDeclaration by element(Contracts)
|
||||
val contractElementDeclaration by element(Contracts)
|
||||
val effectDeclaration by element(Contracts, contractElementDeclaration)
|
||||
|
||||
val contractDescription by element(Contracts)
|
||||
val legacyRawContractDescription by element(Contracts, contractDescription)
|
||||
|
||||
+2
@@ -562,6 +562,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
noImpl(argumentList)
|
||||
noImpl(annotationArgumentMapping)
|
||||
|
||||
impl(contractElementDeclaration)
|
||||
|
||||
val implementationsWithoutStatusAndTypeParameters = listOf(
|
||||
"FirAnonymousFunctionImpl",
|
||||
"FirValueParameterImpl",
|
||||
|
||||
+5
-1
@@ -732,6 +732,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
+field(varianceType)
|
||||
}
|
||||
|
||||
contractElementDeclaration.configure {
|
||||
+field("effect", coneContractElementType)
|
||||
}
|
||||
|
||||
effectDeclaration.configure {
|
||||
+field("effect", coneEffectDeclarationType)
|
||||
}
|
||||
@@ -742,7 +746,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
resolvedContractDescription.configure {
|
||||
+fieldList("effects", effectDeclaration)
|
||||
+fieldList("unresolvedEffects", coneUnresolvedEffect)
|
||||
+fieldList("unresolvedEffects", contractElementDeclaration)
|
||||
}
|
||||
|
||||
legacyRawContractDescription.configure {
|
||||
|
||||
+1
-1
@@ -79,11 +79,11 @@ val emptyArgumentListType = type("fir.expressions", "FirEmptyArgumentList")
|
||||
val firScopeProviderType = type("fir.scopes", "FirScopeProvider")
|
||||
|
||||
val pureAbstractElementType = generatedType("FirPureAbstractElement")
|
||||
val coneContractElementType = type("fir.contracts.description", "ConeContractDescriptionElement")
|
||||
val coneEffectDeclarationType = type("fir.contracts.description", "ConeEffectDeclaration")
|
||||
val emptyContractDescriptionType = generatedType("contracts.impl", "FirEmptyContractDescription")
|
||||
val coneDiagnosticType = generatedType("diagnostics", "ConeDiagnostic")
|
||||
val coneStubDiagnosticType = generatedType("diagnostics", "ConeStubDiagnostic")
|
||||
val coneUnresolvedEffect = type("fir.contracts.description", "ConeUnresolvedEffect")
|
||||
|
||||
val dslBuilderAnnotationType = generatedType("builder", "FirBuilderDsl")
|
||||
val firImplementationDetailType = generatedType("FirImplementationDetail")
|
||||
|
||||
Reference in New Issue
Block a user