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:
committed by
Denis Zharkov
parent
8257e14055
commit
f961f33f9d
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user