From d1db0ce30a6b336f22b315de223025295f760806 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Sat, 11 Jul 2015 14:29:01 +0300 Subject: [PATCH] Fixed tests --- .../AbstractNavigateToLibrarySourceTest.kt | 39 ++++++++++--------- .../BuiltInsReferenceResolverTest.java | 2 +- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/AbstractNavigateToLibrarySourceTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/AbstractNavigateToLibrarySourceTest.kt index 30d3fe1fc35..01969b22337 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/AbstractNavigateToLibrarySourceTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/AbstractNavigateToLibrarySourceTest.kt @@ -18,16 +18,13 @@ package org.jetbrains.kotlin.idea.decompiler.navigation import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.psi.PsiElement +import com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference import com.intellij.testFramework.LightProjectDescriptor import com.intellij.testFramework.UsefulTestCase import junit.framework.TestCase -import org.jetbrains.kotlin.idea.test.JdkAndMockLibraryProjectDescriptor -import org.jetbrains.kotlin.idea.test.KotlinCodeInsightTestCase -import org.jetbrains.kotlin.idea.test.PluginTestCaseBase import org.jetbrains.kotlin.idea.navigation.NavigationTestUtils import org.jetbrains.kotlin.idea.references.JetReference -import org.jetbrains.kotlin.idea.test.ModuleKind -import org.jetbrains.kotlin.idea.test.configureAs +import org.jetbrains.kotlin.idea.test.* import org.jetbrains.kotlin.test.JetTestUtils import java.io.File import java.util.LinkedHashMap @@ -73,24 +70,30 @@ public abstract class AbstractNavigateToLibrarySourceTest : KotlinCodeInsightTes val referenceContainersToReferences = LinkedHashMap() for (offset in 0..psiFile.getTextLength() - 1) { val ref = psiFile.findReferenceAt(offset) - if (ref is JetReference && !referenceContainersToReferences.containsKey(ref.getElement())) { - val target = ref.resolve() - if (target == null) continue - - val targetNavPsiFile = target.getNavigationElement().getContainingFile() - if (targetNavPsiFile == null) continue - - val targetNavFile = targetNavPsiFile.getVirtualFile() - if (targetNavFile == null) continue - - if (ProjectFileIndex.SERVICE.getInstance(getProject()).isInLibrarySource(targetNavFile)) { - referenceContainersToReferences.put(ref.getElement(), ref) - } + val refs = when (ref) { + is JetReference -> listOf(ref) + is PsiMultiReference -> ref.getReferences().filterIsInstance() + else -> emptyList() } + + refs.forEach { referenceContainersToReferences.addReference(it) } } return referenceContainersToReferences.values() } + private fun MutableMap.addReference(ref: JetReference) { + if (containsKey(ref.getElement())) return + val target = ref.resolve() ?: return + + val targetNavPsiFile = target.getNavigationElement().getContainingFile() ?: return + + val targetNavFile = targetNavPsiFile.getVirtualFile() ?: return + + if (ProjectFileIndex.SERVICE.getInstance(getProject()).isInLibrarySource(targetNavFile)) { + put(ref.getElement(), ref) + } + } + private fun collectInterestingNavigationElements() = collectInterestingReferences().map { val target = it.resolve() diff --git a/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java b/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java index b660dc5e81f..7ad145cae5f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java @@ -116,7 +116,7 @@ public class BuiltInsReferenceResolverTest extends ResolveTestCase { } private void doTest() throws Exception { - JetReference reference = (JetReference) configureByFile(getTestName(true) + ".kt"); + PsiPolyVariantReference reference = (PsiPolyVariantReference) configureByFile(getTestName(true) + ".kt"); PsiElement resolved = reference.resolve(); assertNotNull(resolved); assertEquals(1, reference.multiResolve(false).length);