diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt index 59171a06406..646de8946bc 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt @@ -24,10 +24,7 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.psi.KtDeclaration -import org.jetbrains.kotlin.psi.KtElement -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.KtPsiFactory +import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingTraceContext import org.jetbrains.kotlin.resolve.ImportPath @@ -93,8 +90,12 @@ public fun ResolutionFacade.resolveImportReference( // this scope can't be used to search for kotlin declarations in index in order to resolve in that case // see com.intellij.psi.impl.file.impl.ResolveScopeManagerImpl.getInherentResolveScope public fun getResolveScope(file: KtFile): GlobalSearchScope { + if (file is KtCodeFragment) { + file.forcedResolveScope?.let { return it } + } + return when (file.getModuleInfo()) { - is ModuleSourceInfo -> file.getResolveScope() + is ModuleSourceInfo -> file.resolveScope else -> GlobalSearchScope.EMPTY_SCOPE } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionInLibraryTest.kt b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionInLibraryTest.kt index 9838fef68b3..436c8af575b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionInLibraryTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionInLibraryTest.kt @@ -22,6 +22,7 @@ import com.intellij.openapi.roots.OrderRootType import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiManager +import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.idea.completion.test.AbstractJvmBasicCompletionTest import org.jetbrains.kotlin.idea.completion.test.testCompletion import org.jetbrains.kotlin.idea.test.JdkAndMockLibraryProjectDescriptor @@ -78,6 +79,7 @@ public class CodeFragmentCompletionInLibraryTest : AbstractJvmBasicCompletionTes fragmentText, KotlinCodeFragmentFactory.getContextElement(fooFunctionFromLibrary.getBodyExpression()) ) + codeFragment.forceResolveScope(GlobalSearchScope.allScope(project)) myFixture.configureFromExistingVirtualFile(codeFragment.getVirtualFile()) }