[NI] Extract FE 1.0 specific part from NewCommonSuperTypeCalculator
This commit is contained in:
+2
-8
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.*
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeIntermediateDiagnostic
|
||||
import org.jetbrains.kotlin.fir.typeContext
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.withReplacedConeType
|
||||
import org.jetbrains.kotlin.fir.serialization.FirElementSerializer
|
||||
@@ -39,7 +38,6 @@ import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
||||
import org.jetbrains.kotlin.metadata.jvm.serialization.JvmStringTable
|
||||
import org.jetbrains.kotlin.types.AbstractTypeApproximator
|
||||
import org.jetbrains.kotlin.types.TypeApproximatorConfiguration
|
||||
import org.jetbrains.kotlin.types.model.SimpleTypeMarker
|
||||
import org.jetbrains.org.objectweb.asm.Type
|
||||
import org.jetbrains.org.objectweb.asm.commons.Method
|
||||
|
||||
@@ -60,11 +58,7 @@ class FirJvmClassCodegen(
|
||||
else -> null
|
||||
}
|
||||
|
||||
private val approximator = object : AbstractTypeApproximator(session.typeContext) {
|
||||
override fun createErrorType(message: String): SimpleTypeMarker {
|
||||
return ConeKotlinErrorType(ConeIntermediateDiagnostic(message))
|
||||
}
|
||||
}
|
||||
private val approximator = object : AbstractTypeApproximator(session.typeContext) {}
|
||||
|
||||
private fun FirTypeRef.approximated(
|
||||
toSuper: Boolean,
|
||||
@@ -197,4 +191,4 @@ class FirJvmClassCodegen(
|
||||
state.globalSerializationBindings.put(FirJvmSerializerExtension.FIELD_FOR_PROPERTY, metadata.property, fieldType to fieldName)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-8
@@ -7,10 +7,8 @@ package org.jetbrains.kotlin.fir.resolve.inference
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.PrivateForInline
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeIntermediateDiagnostic
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassErrorType
|
||||
import org.jetbrains.kotlin.fir.types.ConeInferenceContext
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintIncorporator
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector
|
||||
@@ -19,7 +17,6 @@ import org.jetbrains.kotlin.resolve.calls.inference.components.TrivialConstraint
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl
|
||||
import org.jetbrains.kotlin.types.AbstractTypeApproximator
|
||||
import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
|
||||
import org.jetbrains.kotlin.types.model.SimpleTypeMarker
|
||||
|
||||
class InferenceComponents(
|
||||
val ctx: ConeInferenceContext,
|
||||
@@ -27,11 +24,7 @@ class InferenceComponents(
|
||||
val returnTypeCalculator: ReturnTypeCalculator,
|
||||
val scopeSession: ScopeSession
|
||||
) {
|
||||
val approximator: AbstractTypeApproximator = object : AbstractTypeApproximator(ctx) {
|
||||
override fun createErrorType(message: String): SimpleTypeMarker {
|
||||
return ConeClassErrorType(ConeIntermediateDiagnostic(message))
|
||||
}
|
||||
}
|
||||
val approximator: AbstractTypeApproximator = object : AbstractTypeApproximator(ctx) {}
|
||||
val trivialConstraintTypeInferenceOracle = TrivialConstraintTypeInferenceOracle.create(ctx)
|
||||
private val incorporator = ConstraintIncorporator(approximator, trivialConstraintTypeInferenceOracle)
|
||||
private val injector = ConstraintInjector(incorporator, approximator, KotlinTypeRefiner.Default)
|
||||
|
||||
@@ -334,6 +334,10 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, ConeTypeCo
|
||||
return type
|
||||
}
|
||||
|
||||
override fun createErrorType(debugName: String): ConeClassErrorType {
|
||||
return ConeClassErrorType(ConeIntermediateDiagnostic(debugName))
|
||||
}
|
||||
|
||||
override fun createErrorTypeWithCustomConstructor(debugName: String, constructor: TypeConstructorMarker): KotlinTypeMarker {
|
||||
return ConeKotlinErrorType(ConeIntermediateDiagnostic("$debugName c: $constructor"))
|
||||
}
|
||||
@@ -358,8 +362,6 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, ConeTypeCo
|
||||
return createErrorType("Unknown reason")
|
||||
}
|
||||
|
||||
private fun createErrorType(reason: String) = ConeClassErrorType(ConeIntermediateDiagnostic(reason))
|
||||
|
||||
override fun findCommonIntegerLiteralTypesSuperType(explicitSupertypes: List<SimpleTypeMarker>): SimpleTypeMarker? {
|
||||
return ConeIntegerLiteralTypeImpl.findCommonSuperType(explicitSupertypes)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user