From efb23be367d47cfa91b358f5541a6ad55b981cc0 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 7 Oct 2015 14:33:57 +0300 Subject: [PATCH] Open / data forbidden: ConstraintPosition fix --- .../resolve/calls/inference/ConstraintPosition.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/ConstraintPosition.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/ConstraintPosition.kt index 17184747378..91d0506e7ad 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/ConstraintPosition.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/ConstraintPosition.kt @@ -47,16 +47,19 @@ public interface ConstraintPosition { fun isParameter(): Boolean = kind in setOf(VALUE_PARAMETER_POSITION, RECEIVER_POSITION) } -private open data class ConstraintPositionImpl(override val kind: ConstraintPositionKind) : ConstraintPosition { +private data class ConstraintPositionImpl(override val kind: ConstraintPositionKind) : ConstraintPosition { override fun toString() = "$kind" } + private data class ConstraintPositionWithIndex(override val kind: ConstraintPositionKind, val index: Int) : ConstraintPosition { override fun toString() = "$kind($index)" } -class CompoundConstraintPosition( - vararg positions: ConstraintPosition -) : ConstraintPositionImpl(ConstraintPositionKind.COMPOUND_CONSTRAINT_POSITION) { +class CompoundConstraintPosition(vararg positions: ConstraintPosition) : ConstraintPosition { + + override val kind: ConstraintPositionKind + get() = COMPOUND_CONSTRAINT_POSITION + val positions: Collection = positions.flatMap { if (it is CompoundConstraintPosition) it.positions else listOf(it) }.toSet()