From 0c001cc9939a2ab11815263ed825c1096b3ce087 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Sat, 23 Jul 2022 00:23:00 +0900 Subject: [PATCH] Fix unstable reference provider ordering in IDE's KtIdeReferenceProviderService As a result of unstable reference provider ordering, order of references in 'PsiElements' vary each IDE restart. It directly affects the 'getReference()' method which returns the first available reference. --- .../kotlin/idea/references/KotlinPsiReferenceProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis/kt-references/src/org/jetbrains/kotlin/idea/references/KotlinPsiReferenceProvider.kt b/analysis/kt-references/src/org/jetbrains/kotlin/idea/references/KotlinPsiReferenceProvider.kt index a23a9012ac1..df018d0d732 100644 --- a/analysis/kt-references/src/org/jetbrains/kotlin/idea/references/KotlinPsiReferenceProvider.kt +++ b/analysis/kt-references/src/org/jetbrains/kotlin/idea/references/KotlinPsiReferenceProvider.kt @@ -26,7 +26,7 @@ interface KotlinReferenceProviderContributor { class KotlinPsiReferenceRegistrar { - val providers: MultiMap, KotlinPsiReferenceProvider> = MultiMap.create() + val providers: MultiMap, KotlinPsiReferenceProvider> = MultiMap(LinkedHashMap()) inline fun registerProvider(crossinline factory: (E) -> PsiReference?) { registerMultiProvider { element ->