diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt index 2ee89bb4090..41bc5bb6cb0 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt @@ -103,7 +103,9 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, } override fun KotlinTypeMarker.typeDepth(): Int { - require(this is ConeKotlinType) + require(this is ConeKotlinType) { + "Incorrect type of class ${this::class.java}: $this" + } return when (this) { is ConeFlexibleType -> Math.max(lowerBound.typeDepthSimple(), upperBound.typeDepthSimple()) else -> typeDepthSimple() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt index 4121f9bce79..da515007a17 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt @@ -45,7 +45,11 @@ open class ConeTypeVariable(name: String) : TypeVariableMarker { } class InferenceComponents(val ctx: TypeSystemInferenceExtensionContextDelegate) { - private val approximator = object : AbstractTypeApproximator(ctx) {} + private val approximator = object : AbstractTypeApproximator(ctx) { + override fun createErrorType(message: String): SimpleTypeMarker { + return ConeClassErrorType(message) + } + } val trivialConstraintTypeInferenceOracle = TrivialConstraintTypeInferenceOracle(ctx) private val incorporator = ConstraintIncorporator(approximator, trivialConstraintTypeInferenceOracle) private val injector = ConstraintInjector(incorporator, approximator)