From 2a3d1c1b1863d5a61c7a3bb4e934cb182d9d8f0a Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 22 Apr 2014 19:44:34 +0400 Subject: [PATCH] AnalyzerFacadeWithCache.getLazyResolveSessionForFile() inlined --- .../resolve/IDELightClassGenerationSupport.java | 5 ++--- .../plugin/codeInsight/JetFileReferencesResolver.kt | 4 ++-- .../jet/plugin/codeInsight/ShortenReferences.kt | 6 +++--- .../jet/plugin/completion/CompletionSession.java | 4 ++-- .../jet/plugin/completion/JetPackagesContributor.java | 6 +++--- .../plugin/intentions/RemoveExplicitTypeArguments.kt | 7 ++----- idea/src/org/jetbrains/jet/plugin/intentions/Utils.kt | 6 +++--- .../liveTemplates/macro/BaseJetVariableMacro.java | 4 ++-- .../JetFunctionParameterInfoHandler.java | 4 ++-- .../jet/plugin/project/AnalyzerFacadeWithCache.java | 8 +------- .../jetbrains/jet/plugin/quickfix/AutoImportFix.java | 4 ++-- .../plugin/quickfix/MakeOverriddenMemberOpenFix.java | 4 ++-- .../extractFunction/extractFunctionUtils.kt | 11 ++++------- .../refactoring/inline/KotlinInlineValHandler.java | 5 +++-- .../KotlinIntroduceVariableHandler.java | 3 ++- .../codeInsight/AbstractOverrideImplementTest.java | 3 ++- 16 files changed, 37 insertions(+), 47 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/caches/resolve/IDELightClassGenerationSupport.java b/idea/src/org/jetbrains/jet/plugin/caches/resolve/IDELightClassGenerationSupport.java index 282657ac117..6a91a02964c 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/resolve/IDELightClassGenerationSupport.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/resolve/IDELightClassGenerationSupport.java @@ -38,7 +38,6 @@ import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.plugin.libraries.JetSourceNavigationHelper; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; import org.jetbrains.jet.plugin.stubindex.JetAllPackagesIndex; import org.jetbrains.jet.plugin.stubindex.JetClassByPackageIndex; @@ -87,7 +86,7 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport List sortedFiles = new ArrayList(files); Collections.sort(sortedFiles, jetFileComparator); - ResolveSessionForBodies session = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(sortedFiles.get(0)); + ResolveSessionForBodies session = ResolvePackage.getLazyResolveSession(sortedFiles.get(0)); forceResolvePackageDeclarations(files, session); return new LightClassConstructionContext(session.getBindingContext(), null); } @@ -95,7 +94,7 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport @NotNull @Override public LightClassConstructionContext getContextForClassOrObject(@NotNull JetClassOrObject classOrObject) { - ResolveSessionForBodies session = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(classOrObject.getContainingJetFile()); + ResolveSessionForBodies session = ResolvePackage.getLazyResolveSession(classOrObject.getContainingJetFile()); if (JetPsiUtil.isLocal(classOrObject)) { BindingContext bindingContext = session.resolveToElement(classOrObject); diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFileReferencesResolver.kt b/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFileReferencesResolver.kt index 4bc4fe96a92..78ccb2902bb 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFileReferencesResolver.kt +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFileReferencesResolver.kt @@ -21,7 +21,6 @@ import org.jetbrains.jet.lang.psi.JetElement import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.psi.JetFile import org.jetbrains.jet.lang.psi.JetTreeVisitorVoid -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import com.intellij.util.containers.HashMap import org.jetbrains.jet.lang.psi.JetUserType import org.jetbrains.jet.lang.psi.JetDotQualifiedExpression @@ -29,6 +28,7 @@ import org.jetbrains.jet.lang.psi.JetExpression import org.jetbrains.jet.lang.psi.JetCallExpression import org.jetbrains.jet.lang.psi.JetSimpleNameExpression import java.util.Collections +import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession object JetFileReferencesResolver { fun resolve( @@ -58,7 +58,7 @@ object JetFileReferencesResolver { } private class ResolveAllReferencesVisitor(file: JetFile, val visitReceivers: Boolean, val visitShortNames: Boolean) : JetTreeVisitorVoid() { - private val resolveSession = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(file) + private val resolveSession = file.getLazyResolveSession() private val resolveMap = HashMap() public val result: Map = resolveMap diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/ShortenReferences.kt b/idea/src/org/jetbrains/jet/plugin/codeInsight/ShortenReferences.kt index a05f44778dc..6b70a2265b5 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/ShortenReferences.kt +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/ShortenReferences.kt @@ -5,7 +5,6 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.DescriptorUtils; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper; import org.jetbrains.jet.renderer.DescriptorRenderer; @@ -19,6 +18,7 @@ import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyPackageFragmentF import org.jetbrains.jet.lang.resolve.java.descriptor.JavaMethodDescriptor import com.intellij.openapi.util.TextRange import com.intellij.psi.SmartPointerManager +import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession public object ShortenReferences { public fun process(element: JetElement) { @@ -83,7 +83,7 @@ public object ShortenReferences { val elementFilter: (PsiElement) -> FilterResult, val resolveMap: Map) : JetVisitorVoid() { private val resolveSession : ResolveSessionForBodies - get() = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(file) + get() = file.getLazyResolveSession() private val typesToShorten = ArrayList() @@ -158,7 +158,7 @@ public object ShortenReferences { val elementFilter: (PsiElement) -> FilterResult, val resolveMap: Map) : JetVisitorVoid() { private val resolveSession : ResolveSessionForBodies - get() = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(file) + get() = file.getLazyResolveSession() private fun bindingContext(expression: JetReferenceExpression): BindingContext = resolveMap[expression] ?: resolveSession.resolveToElement(expression) // binding context can be absent in the map if some references have been shortened already diff --git a/idea/src/org/jetbrains/jet/plugin/completion/CompletionSession.java b/idea/src/org/jetbrains/jet/plugin/completion/CompletionSession.java index 944fc0df7f3..0a9bd876742 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/CompletionSession.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/CompletionSession.java @@ -38,10 +38,10 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.plugin.caches.JetShortNamesCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.TipsManager; import org.jetbrains.jet.plugin.completion.smart.SmartCompletion; import org.jetbrains.jet.plugin.completion.weigher.WeigherPackage; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; import org.jetbrains.jet.plugin.references.JetSimpleNameReference; @@ -64,7 +64,7 @@ class CompletionSession { this.jetReference = jetReference; ResolveSessionForBodies resolveSession = - AnalyzerFacadeWithCache.getLazyResolveSessionForFile((JetFile) position.getContainingFile()); + ResolvePackage.getLazyResolveSession((JetFile) position.getContainingFile()); BindingContext expressionBindingContext = resolveSession.resolveToElement(jetReference.getExpression()); JetScope scope = expressionBindingContext.get(BindingContext.RESOLUTION_SCOPE, jetReference.getExpression()); diff --git a/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java b/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java index 6d1abf7245e..6d15da11df2 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java @@ -28,8 +28,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetPackageDirective; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.TipsManager; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; import org.jetbrains.jet.plugin.references.JetSimpleNameReference; @@ -71,8 +71,8 @@ public class JetPackagesContributor extends CompletionContributor { int prefixLength = parameters.getOffset() - simpleNameReference.getExpression().getTextOffset(); result = result.withPrefixMatcher(new PlainPrefixMatcher(name.substring(0, prefixLength))); - ResolveSessionForBodies resolveSession = AnalyzerFacadeWithCache - .getLazyResolveSessionForFile(simpleNameReference.getExpression().getContainingJetFile()); + ResolveSessionForBodies resolveSession = + ResolvePackage.getLazyResolveSession(simpleNameReference.getExpression().getContainingJetFile()); BindingContext bindingContext = resolveSession.resolveToElement(simpleNameReference.getExpression()); for (LookupElement variant : DescriptorLookupConverter.collectLookupElements( diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/RemoveExplicitTypeArguments.kt b/idea/src/org/jetbrains/jet/plugin/intentions/RemoveExplicitTypeArguments.kt index 100af59df2b..00bf63762de 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/RemoveExplicitTypeArguments.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/RemoveExplicitTypeArguments.kt @@ -21,19 +21,16 @@ import org.jetbrains.jet.lang.psi.JetCallExpression import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.psi.JetPsiFactory -import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace import org.jetbrains.jet.lang.resolve.calls.util.DelegatingCall import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo import org.jetbrains.jet.lang.types.TypeUtils -import org.jetbrains.jet.lang.descriptors.FunctionDescriptor -import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResults import org.jetbrains.jet.lang.resolve.scopes.JetScope import org.jetbrains.jet.lang.psi.JetTypeProjection import org.jetbrains.jet.lang.psi.Call import java.util.ArrayList -import org.jetbrains.jet.lang.psi.JetFile import org.jetbrains.jet.di.InjectorForMacros import org.jetbrains.jet.lang.resolve.BindingTraceContext +import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession public class RemoveExplicitTypeArguments : JetSelfTargetingIntention( "remove.explicit.type.arguments", javaClass()) { @@ -43,7 +40,7 @@ public class RemoveExplicitTypeArguments : JetSelfTargetingIntention implem } ResolveSessionForBodies resolveSessionForBodies = - AnalyzerFacadeWithCache.getLazyResolveSessionForFile(element.getContainingJetFile()); + ResolvePackage.getLazyResolveSession(element.getContainingJetFile()); List result = Lists.newArrayList(); if (!isSuppressedTopLevelImportInPosition(element)) { diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java index 48630f52e07..3d7fe85e6fb 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java @@ -33,7 +33,7 @@ import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; import java.util.*; @@ -60,7 +60,7 @@ public class MakeOverriddenMemberOpenFix extends JetIntentionAction { val enclosingDeclaration = commonParent.getParentByType(javaClass()) if (enclosingDeclaration == null) return MaybeError(JetRefactoringBundle.message("cannot.refactor.no.container")!!) - val resolveSession = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(originalFile) + val resolveSession = originalFile.getLazyResolveSession() val bindingContext = resolveSession.resolveToElement(enclosingDeclaration.getBodyExpression()) val pseudocode = PseudocodeUtil.generatePseudocode(enclosingDeclaration, bindingContext) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java b/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java index ab020e827f1..799b4c4f61f 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java @@ -58,6 +58,7 @@ import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.plugin.JetLanguage; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.ShortenReferences; import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; @@ -257,7 +258,7 @@ public class KotlinInlineValHandler extends InlineActionHandler { JetFile containingFile = inlinedExpressions.get(0).getContainingJetFile(); List functionsToAddParameters = Lists.newArrayList(); - ResolveSessionForBodies resolveSessionForBodies = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(containingFile); + ResolveSessionForBodies resolveSessionForBodies = ResolvePackage.getLazyResolveSession(containingFile); for (JetExpression inlinedExpression : inlinedExpressions) { JetFunctionLiteralExpression functionLiteralExpression = getFunctionLiteralExpression(inlinedExpression); assert functionLiteralExpression != null : "can't find function literal expression for " + inlinedExpression.getText(); @@ -317,7 +318,7 @@ public class KotlinInlineValHandler extends InlineActionHandler { JetFile containingFile = inlinedExpressions.get(0).getContainingJetFile(); List callsToAddArguments = Lists.newArrayList(); - ResolveSessionForBodies resolveSessionForBodies = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(containingFile); + ResolveSessionForBodies resolveSessionForBodies = ResolvePackage.getLazyResolveSession(containingFile); for (JetExpression inlinedExpression : inlinedExpressions) { JetCallExpression callExpression = getCallExpression(inlinedExpression); assert callExpression != null : "can't find call expression for " + inlinedExpression.getText(); diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java b/idea/src/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java index df2f5e03574..a366296e218 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java @@ -48,6 +48,7 @@ import org.jetbrains.jet.lang.types.TypeUtils; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.lexer.JetTokens; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils; import org.jetbrains.jet.plugin.codeInsight.ShortenReferences; import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; @@ -119,7 +120,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase { } } ResolveSessionForBodies resolveSession = - AnalyzerFacadeWithCache.getLazyResolveSessionForFile(expression.getContainingJetFile()); + ResolvePackage.getLazyResolveSession(expression.getContainingJetFile()); BindingContext bindingContext = resolveSession.resolveToElement(expression); final JetType expressionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression); //can be null or error type JetScope scope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, expression); diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java index 737214ccd87..c4958285b34 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java @@ -41,6 +41,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.OverrideResolver; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.JetLightProjectDescriptor; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; @@ -123,7 +124,7 @@ public abstract class AbstractOverrideImplementTest extends LightCodeInsightFixt assertNotNull("Caret should be inside class or object", classOrObject); final JetFile jetFile = classOrObject.getContainingJetFile(); - final ResolveSessionForBodies resolveSession = AnalyzerFacadeWithCache.getLazyResolveSessionForFile(jetFile); + final ResolveSessionForBodies resolveSession = ResolvePackage.getLazyResolveSession(jetFile); Set descriptors = handler.collectMethodsToGenerate(classOrObject, resolveSession.resolveToElement(classOrObject));