Fix for KT-19188

Fixes nondeterministic Default Method Order under existance of generic
type parameters.
SubstitutingScope did not respect source code method order by not using
a LinkedHashSet
This commit is contained in:
Ramon Wirsch
2017-11-28 17:44:56 +01:00
committed by Denis Zharkov
parent 8257e14055
commit f961f33f9d
2 changed files with 27 additions and 2 deletions
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.calls.inference.wrapWithCapturingSubstitution
import org.jetbrains.kotlin.types.TypeSubstitutor
import org.jetbrains.kotlin.utils.Printer
import org.jetbrains.kotlin.utils.newHashSetWithExpectedSize
import org.jetbrains.kotlin.utils.newLinkedHashSetWithExpectedSize
import org.jetbrains.kotlin.utils.sure
import java.util.*
@@ -60,7 +60,7 @@ class SubstitutingScope(private val workerScope: MemberScope, givenSubstitutor:
if (substitutor.isEmpty) return descriptors
if (descriptors.isEmpty()) return descriptors
val result = newHashSetWithExpectedSize<D>(descriptors.size)
val result = newLinkedHashSetWithExpectedSize<D>(descriptors.size)
for (descriptor in descriptors) {
val substitute = substitute(descriptor)
result.add(substitute)