[FIR] Use builtinTypes instead of creating new ones
This commit is contained in:
@@ -209,7 +209,7 @@ class FirCallResolver(
|
||||
resultType = if (classId.isLocal) {
|
||||
typeForQualifierByDeclaration(referencedSymbol.fir, resultType)
|
||||
?: resultType.resolvedTypeFromPrototype(
|
||||
StandardClassIds.Unit(symbolProvider).constructType(emptyArray(), isNullable = false)
|
||||
session.builtinTypes.unitType.type//StandardClassIds.Unit(symbolProvider).constructType(emptyArray(), isNullable = false)
|
||||
)
|
||||
} else {
|
||||
typeForQualifier(this)
|
||||
|
||||
@@ -319,7 +319,7 @@ fun BodyResolveComponents.typeForQualifier(resolvedQualifier: FirResolvedQualifi
|
||||
}
|
||||
// TODO: Handle no value type here
|
||||
return resultType.resolvedTypeFromPrototype(
|
||||
StandardClassIds.Unit(symbolProvider).constructType(emptyArray(), isNullable = false)
|
||||
session.builtinTypes.unitType.type//StandardClassIds.Unit(symbolProvider).constructType(emptyArray(), isNullable = false)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -28,19 +28,19 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, ConeTypeCo
|
||||
override val isErrorTypeAllowed: Boolean get() = false
|
||||
|
||||
override fun nullableNothingType(): SimpleTypeMarker {
|
||||
return StandardClassIds.Nothing(symbolProvider).constructType(emptyArray(), true)
|
||||
return session.builtinTypes.nullableNothingType.type//StandardClassIds.Nothing(symbolProvider).constructType(emptyArray(), true)
|
||||
}
|
||||
|
||||
override fun nullableAnyType(): SimpleTypeMarker {
|
||||
return StandardClassIds.Any(symbolProvider).constructType(emptyArray(), true)
|
||||
return session.builtinTypes.nullableAnyType.type//StandardClassIds.Any(symbolProvider).constructType(emptyArray(), true)
|
||||
}
|
||||
|
||||
override fun nothingType(): SimpleTypeMarker {
|
||||
return StandardClassIds.Nothing(symbolProvider).constructType(emptyArray(), false)
|
||||
return session.builtinTypes.nothingType.type//StandardClassIds.Nothing(symbolProvider).constructType(emptyArray(), false)
|
||||
}
|
||||
|
||||
override fun anyType(): SimpleTypeMarker {
|
||||
return StandardClassIds.Any(symbolProvider).constructType(emptyArray(), false)
|
||||
return session.builtinTypes.anyType.type//StandardClassIds.Any(symbolProvider).constructType(emptyArray(), false)
|
||||
}
|
||||
|
||||
override fun createFlexibleType(lowerBound: SimpleTypeMarker, upperBound: SimpleTypeMarker): KotlinTypeMarker {
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ internal object CreateFreshTypeVariableSubstitutorStage : ResolutionStage() {
|
||||
is FirStarProjection -> csBuilder.addEqualityConstraint(
|
||||
freshVariable.defaultType,
|
||||
typeParameter.bounds.firstOrNull()?.coneTypeUnsafe()
|
||||
?: StandardClassIds.Any(sink.components.session.firSymbolProvider).constructType(emptyArray(), true),
|
||||
?: sink.components.session.builtinTypes.nullableAnyType.type, //StandardClassIds.Any(sink.components.session.firSymbolProvider).constructType(emptyArray(), true),
|
||||
SimpleConstraintSystemConstraintPosition
|
||||
)
|
||||
else -> assert(typeArgument == FirTypePlaceholderProjection) {
|
||||
|
||||
+2
-2
@@ -127,7 +127,7 @@ private fun extraLambdaInfo(
|
||||
?: expectedType?.typeArguments?.singleOrNull()?.safeAs<ConeTypedProjection>()?.type?.takeIf { isFunctionSupertype }
|
||||
?: typeVariable.defaultType
|
||||
|
||||
val nothingType = StandardClassIds.Nothing(argument.session.firSymbolProvider).constructType(emptyArray(), false)
|
||||
val nothingType = argument.session.builtinTypes.nothingType.type //StandardClassIds.Nothing(argument.session.firSymbolProvider).constructType(emptyArray(), false)
|
||||
val parameters = argument.valueParameters?.map {
|
||||
it.returnTypeRef.coneTypeSafe<ConeKotlinType>() ?: nothingType
|
||||
} ?: emptyList()
|
||||
@@ -166,7 +166,7 @@ private fun extractLambdaParameters(expectedType: ConeKotlinType, argument: FirA
|
||||
val parameters = argument.valueParameters
|
||||
val expectedParameters = expectedType.extractParametersForFunctionalType(expectedTypeIsExtensionFunctionType)
|
||||
|
||||
val nullableAnyType = StandardClassIds.Any(argument.session.firSymbolProvider).constructType(emptyArray(), true)
|
||||
val nullableAnyType = argument.session.builtinTypes.nullableAnyType.type //StandardClassIds.Any(argument.session.firSymbolProvider).constructType(emptyArray(), true)
|
||||
|
||||
if (parameters.isEmpty()) {
|
||||
return expectedParameters.map { it?.type ?: nullableAnyType }
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@ class PostponedArgumentsAnalyzer(
|
||||
lambda: ResolvedLambdaAtom//,
|
||||
//diagnosticHolder: KotlinDiagnosticsHolder
|
||||
) {
|
||||
val unitType = Unit(components.session.firSymbolProvider).constructType(emptyArray(), false)
|
||||
val unitType = components.session.builtinTypes.unitType.type//Unit(components.session.firSymbolProvider).constructType(emptyArray(), false)
|
||||
val stubsForPostponedVariables = c.bindingStubsForPostponedVariables()
|
||||
val currentSubstitutor = c.buildCurrentSubstitutor(stubsForPostponedVariables.mapKeys { it.key.freshTypeConstructor(c) })
|
||||
|
||||
|
||||
+1
-4
@@ -264,10 +264,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
||||
.transformArguments(integerLiteralTypeApproximator, null)
|
||||
when (resolved.operation) {
|
||||
FirOperation.IS, FirOperation.NOT_IS -> {
|
||||
resolved.resultType = FirResolvedTypeRefImpl(
|
||||
null,
|
||||
StandardClassIds.Boolean(symbolProvider).constructType(emptyArray(), isNullable = false)
|
||||
)
|
||||
resolved.resultType = session.builtinTypes.booleanType
|
||||
}
|
||||
FirOperation.AS -> {
|
||||
resolved.resultType = resolved.conversionTypeRef
|
||||
|
||||
@@ -164,7 +164,7 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty
|
||||
require(this is ConeKotlinType)
|
||||
|
||||
return this.typeArguments.getOrNull(index)
|
||||
?: StandardClassIds.Any(session.firSymbolProvider).constructType(emptyArray(), false) // TODO wtf
|
||||
?: session.builtinTypes.anyType.type//StandardClassIds.Any(session.firSymbolProvider).constructType(emptyArray(), false) // TODO wtf
|
||||
}
|
||||
|
||||
override fun KotlinTypeMarker.asTypeArgument(): TypeArgumentMarker {
|
||||
@@ -514,7 +514,7 @@ class ConeTypeCheckerContext(
|
||||
val substitution =
|
||||
declaration.typeParameters.zip(type.typeArguments).associate { (parameter, argument) ->
|
||||
parameter.symbol to ((argument as? ConeTypedProjection)?.type
|
||||
?: StandardClassIds.Any(session.firSymbolProvider).constructType(emptyArray(), isNullable = true))
|
||||
?: session.builtinTypes.nullableAnyType.type)//StandardClassIds.Any(session.firSymbolProvider).constructType(emptyArray(), isNullable = true))
|
||||
}
|
||||
substitutorByMap(substitution)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user