From 91b629d16a8ae556c34f7f75cdd686eefc106c8a Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Thu, 28 Oct 2021 13:12:42 +0300 Subject: [PATCH] Refactor. Remove ConstraintPosition data duplication --- .../resolve/calls/inference/components/ConstraintInjector.kt | 4 ++-- .../calls/inference/model/ConstraintPositionAndErrors.kt | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/ConstraintInjector.kt b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/ConstraintInjector.kt index 22a1f497065..bbc18fa8351 100644 --- a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/ConstraintInjector.kt +++ b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/ConstraintInjector.kt @@ -43,7 +43,7 @@ class ConstraintInjector( fun addInitialSubtypeConstraint(c: Context, lowerType: KotlinTypeMarker, upperType: KotlinTypeMarker, position: ConstraintPosition) { val initialConstraint = InitialConstraint(lowerType, upperType, UPPER, position).also { c.addInitialConstraint(it) } - val typeCheckerState = TypeCheckerStateForConstraintInjector(c, IncorporationConstraintPosition(position, initialConstraint)) + val typeCheckerState = TypeCheckerStateForConstraintInjector(c, IncorporationConstraintPosition(initialConstraint)) updateAllowedTypeDepth(c, lowerType) updateAllowedTypeDepth(c, upperType) @@ -69,7 +69,7 @@ class ConstraintInjector( else -> return } val initialConstraint = InitialConstraint(typeVariable, equalType, EQUALITY, position).also { c.addInitialConstraint(it) } - val typeCheckerState = TypeCheckerStateForConstraintInjector(c, IncorporationConstraintPosition(position, initialConstraint)) + val typeCheckerState = TypeCheckerStateForConstraintInjector(c, IncorporationConstraintPosition(initialConstraint)) // We add constraints like `T? == Foo!` in the old way if (!typeVariable.isSimpleType() || typeVariable.isMarkedNullable()) { diff --git a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/model/ConstraintPositionAndErrors.kt b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/model/ConstraintPositionAndErrors.kt index fa65332dc68..a18b598c686 100644 --- a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/model/ConstraintPositionAndErrors.kt +++ b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/model/ConstraintPositionAndErrors.kt @@ -77,10 +77,11 @@ open class DelegatedPropertyConstraintPosition(val topLevelCall: T) : Constra } data class IncorporationConstraintPosition( - val from: ConstraintPosition, val initialConstraint: InitialConstraint, var isFromDeclaredUpperBound: Boolean = false ) : ConstraintPosition() { + val from: ConstraintPosition get() = initialConstraint.position + override fun toString(): String = "Incorporate $initialConstraint from position $from" }