From d1dc67c0490325ad92a0776c7208b156aaff5259 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 13 Aug 2012 20:13:25 +0400 Subject: [PATCH] Search for function in resolve session with non-physical file --- .../jet/plugin/caches/JetShortNamesCache.java | 11 ++++++----- .../completion/basic/multifile/TopLevelFunction-1.kt | 2 +- .../completion/basic/multifile/TopLevelFunction-2.kt | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java index 438c428bf8d..5116f5d5dee 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java @@ -34,13 +34,15 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.asJava.JavaElementFinder; -import org.jetbrains.jet.lang.descriptors.*; +import org.jetbrains.jet.lang.descriptors.CallableDescriptor; +import org.jetbrains.jet.lang.descriptors.ClassDescriptor; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; +import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingTraceContext; import org.jetbrains.jet.lang.resolve.ImportPath; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; -import org.jetbrains.jet.lang.resolve.lazy.LazyBindingContextUtils; import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -159,8 +161,6 @@ public class JetShortNamesCache extends PsiShortNamesCache { @NotNull GlobalSearchScope scope ) { JetFile jetFile = (JetFile) expression.getContainingFile(); - final ResolveSession resolveSessionForFile = WholeProjectAnalyzerFacade.getLazyResolveSessionForFile(jetFile); - LazyBindingContextUtils.getExpressionBindingContext(resolveSessionForFile, expression); BindingContext context = WholeProjectAnalyzerFacade.getLazyResolveContext(jetFile, expression); JetScope jetScope = context.get(BindingContext.RESOLUTION_SCOPE, expression); @@ -187,7 +187,8 @@ public class JetShortNamesCache extends PsiShortNamesCache { Collection jetNamedFunctions = JetShortFunctionNameIndex.getInstance().get(name, project, scope); for (JetNamedFunction jetNamedFunction : jetNamedFunctions) { - FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSessionForFile.resolveToDescriptor(jetNamedFunction); + ResolveSession resolveSession = WholeProjectAnalyzerFacade.getLazyResolveSessionForFile((JetFile)jetNamedFunction.getContainingFile()); + FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(jetNamedFunction); result.add(functionDescriptor); } diff --git a/idea/testData/completion/basic/multifile/TopLevelFunction-1.kt b/idea/testData/completion/basic/multifile/TopLevelFunction-1.kt index 67896eb1d9c..46b8d84fb95 100644 --- a/idea/testData/completion/basic/multifile/TopLevelFunction-1.kt +++ b/idea/testData/completion/basic/multifile/TopLevelFunction-1.kt @@ -1,7 +1,7 @@ package first fun firstFun() { - sec + s } // EXIST: secondFun \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/TopLevelFunction-2.kt b/idea/testData/completion/basic/multifile/TopLevelFunction-2.kt index 2617299e37e..0201ce312ee 100644 --- a/idea/testData/completion/basic/multifile/TopLevelFunction-2.kt +++ b/idea/testData/completion/basic/multifile/TopLevelFunction-2.kt @@ -1,4 +1,4 @@ -package second +package first fun secondFun() { } \ No newline at end of file