[FIR] Use cached instance of FirImplicitTypeRefImpl

^KT-56906 Fixed
This commit is contained in:
Kirill Rakhman
2023-03-02 17:30:40 +01:00
committed by Space Team
parent f91e1fa7fd
commit 04d57eb2f9
57 changed files with 147 additions and 119 deletions
@@ -122,9 +122,9 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
value = "FirEmptyArgumentList"
}
default("argumentMapping", "FirEmptyAnnotationArgumentMapping")
default("annotationTypeRef", "FirImplicitTypeRefImpl(null)")
default("annotationTypeRef", "FirImplicitTypeRefImplWithoutSource")
default("annotationResolvePhase", "FirAnnotationResolvePhase.Unresolved")
useTypes(emptyArgumentListType, emptyAnnotationArgumentMappingType, implicitTypeRefType)
useTypes(emptyArgumentListType, emptyAnnotationArgumentMappingType, firImplicitTypeWithoutSourceType)
withCopy()
}
@@ -132,8 +132,8 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
parents += callBuilder
default("argumentList", "FirEmptyArgumentList")
default("argumentMapping", "FirEmptyAnnotationArgumentMapping")
default("annotationTypeRef", "FirImplicitTypeRefImpl(null)")
useTypes(emptyArgumentListType, emptyAnnotationArgumentMappingType, implicitTypeRefType)
default("annotationTypeRef", "FirImplicitTypeRefImplWithoutSource")
useTypes(emptyArgumentListType, emptyAnnotationArgumentMappingType, firImplicitTypeWithoutSourceType)
}
builder(arrayOfCall) {
@@ -409,8 +409,8 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
else -> throw IllegalArgumentException()
}
builder(element, name) {
default("typeRef", "FirImplicitTypeRefImpl(null)")
useTypes(implicitTypeRefType)
default("typeRef", "FirImplicitTypeRefImplWithoutSource")
useTypes(firImplicitTypeWithoutSourceType)
}
}
@@ -622,8 +622,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
implementationPredicate = { it.type !in implementationWithConfigurableTypeRef },
fieldPredicate = { it.defaultValueInImplementation == null }
) {
default(it, "FirImplicitTypeRefImpl(null)")
useTypes(implicitTypeRefType)
default(it, "FirImplicitTypeRefImplWithoutSource")
useTypes(firImplicitTypeWithoutSourceType)
}
configureFieldInAllImplementations(
@@ -631,8 +631,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
implementationPredicate = { it.type in "FirVariableAssignmentImpl" },
fieldPredicate = { it.defaultValueInImplementation == null }
) {
default(it, "FirImplicitTypeRefImpl(null)")
useTypes(implicitTypeRefType)
default(it, "FirImplicitTypeRefImplWithoutSource")
useTypes(firImplicitTypeWithoutSourceType)
}
}
@@ -53,7 +53,7 @@ val safeCallCheckedSubjectReferenceType = generatedType("", "FirExpressionRef<Fi
val firModuleDataType = type("fir", "FirModuleData")
val noReceiverExpressionType = generatedType("expressions.impl", "FirNoReceiverExpression", firType = true)
val implicitTypeRefType = generatedType("types.impl", "FirImplicitTypeRefImpl", firType = true)
val firImplicitTypeWithoutSourceType = generatedType("types.impl", "FirImplicitTypeRefImplWithoutSource")
val firQualifierPartType = type("fir.types", "FirQualifierPart")
val simpleNamedReferenceType = generatedType("references.impl", "FirSimpleNamedReference")
val explicitThisReferenceType = generatedType("references.impl", "FirExplicitThisReference", firType = true)