From 54f3dd20b3716be87a4b934461f86a24739c9d69 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 22 Apr 2014 19:06:33 +0400 Subject: [PATCH] KotlinCacheManagerUtil usages replaced by lazy resolve --- .../resolve/KotlinCacheManagerUtil.java | 34 ------------------- .../KotlinTypeHierarchyProvider.java | 4 +-- .../ConvertMemberToExtension.java | 4 +-- .../quickfix/AddFunctionToSupertypeFix.java | 16 ++++----- .../quickfix/ChangeFunctionReturnTypeFix.java | 4 +-- .../ChangeMemberFunctionSignatureFix.java | 4 +-- .../ChangeToConstructorInvocationFix.java | 4 +-- .../quickfix/MapPlatformClassToKotlinFix.java | 6 ++-- ...meParameterToMatchOverriddenMethodFix.java | 4 +-- .../KotlinAnnotatedElementsSearcher.java | 8 ++--- 10 files changed, 26 insertions(+), 62 deletions(-) delete mode 100644 idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManagerUtil.java diff --git a/idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManagerUtil.java b/idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManagerUtil.java deleted file mode 100644 index bef6eb0b31e..00000000000 --- a/idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManagerUtil.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.plugin.caches.resolve; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.psi.JetElement; -import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; -import org.jetbrains.jet.plugin.project.TargetPlatformDetector; - -public class KotlinCacheManagerUtil { - private KotlinCacheManagerUtil() { - } - - @NotNull - public static BindingContext getDeclarationsBindingContext(@NotNull JetElement element) { - return AnalyzerFacadeWithCache.analyzeFileWithCache(element.getContainingJetFile()).getBindingContext(); - } -} diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/KotlinTypeHierarchyProvider.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/KotlinTypeHierarchyProvider.java index 5c15f96c2bf..c8dbf3a37da 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/KotlinTypeHierarchyProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/KotlinTypeHierarchyProvider.java @@ -36,7 +36,7 @@ import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.plugin.JetPluginUtil; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.libraries.JetSourceNavigationHelper; import org.jetbrains.jet.plugin.stubindex.JetClassShortNameIndex; import org.jetbrains.jet.renderer.DescriptorRenderer; @@ -70,7 +70,7 @@ public class KotlinTypeHierarchyProvider extends JavaTypeHierarchyProvider { else if (target instanceof JetNamedFunction) { JetNamedFunction function = (JetNamedFunction) target; String functionName = function.getName(); - FunctionDescriptor functionDescriptor = KotlinCacheManagerUtil.getDeclarationsBindingContext(function) + FunctionDescriptor functionDescriptor = ResolvePackage.getBindingContext(function) .get(BindingContext.FUNCTION, target); if (functionDescriptor != null) { JetType type = functionDescriptor.getReturnType(); diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/declarations/ConvertMemberToExtension.java b/idea/src/org/jetbrains/jet/plugin/intentions/declarations/ConvertMemberToExtension.java index 476f0c3ebd0..56b03d36c27 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/declarations/ConvertMemberToExtension.java +++ b/idea/src/org/jetbrains/jet/plugin/intentions/declarations/ConvertMemberToExtension.java @@ -38,7 +38,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lexer.JetModifierKeywordToken; import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import java.util.List; @@ -87,7 +87,7 @@ public class ConvertMemberToExtension extends BaseIntentionAction { JetCallableDeclaration member = getTarget(editor, file); assert member != null : "Must be checked by isAvailable"; - BindingContext bindingContext = KotlinCacheManagerUtil.getDeclarationsBindingContext(member); + BindingContext bindingContext = ResolvePackage.getBindingContext(member); DeclarationDescriptor memberDescriptor = bindingContext.get(DECLARATION_TO_DESCRIPTOR, member); if (memberDescriptor == null) return; diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java index 0b4f906c582..e7b84ccfb20 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java @@ -36,7 +36,7 @@ import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.JetBundle; import org.jetbrains.jet.plugin.actions.JetAddFunctionToClassifierAction; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils; import java.util.Collections; @@ -52,10 +52,8 @@ public class AddFunctionToSupertypeFix extends JetHintAction { } private static List generateFunctionsToAdd(JetNamedFunction functionElement) { - BindingContext context = KotlinCacheManagerUtil.getDeclarationsBindingContext(functionElement); - - FunctionDescriptor functionDescriptor = context.get(BindingContext.FUNCTION, functionElement); - if (functionDescriptor == null) return Collections.emptyList(); + FunctionDescriptor functionDescriptor = + (FunctionDescriptor) ResolvePackage.getLazyResolveSession(functionElement).resolveToDescriptor(functionElement); DeclarationDescriptor containingDeclaration = functionDescriptor.getContainingDeclaration(); if (!(containingDeclaration instanceof ClassDescriptor)) return Collections.emptyList(); @@ -143,18 +141,18 @@ public class AddFunctionToSupertypeFix extends JetHintAction { } @Override - protected void invoke(@NotNull final Project project, final Editor editor, JetFile file) { + protected void invoke(@NotNull final Project project, final Editor editor, final JetFile file) { CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() { @Override public void run() { - createAction(project, editor).execute(); + createAction(project, editor, file).execute(); } }); } @NotNull - private JetAddFunctionToClassifierAction createAction(Project project, Editor editor) { - BindingContext bindingContext = KotlinCacheManagerUtil.getDeclarationsBindingContext(element); + private JetAddFunctionToClassifierAction createAction(Project project, Editor editor, JetFile file) { + BindingContext bindingContext = ResolvePackage.getLazyResolveSession(file).getBindingContext(); return new JetAddFunctionToClassifierAction(project, editor, bindingContext, functionsToAdd); } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java index 414e786ed8d..1f24f983173 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java @@ -42,7 +42,7 @@ import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.intentions.SpecifyTypeExplicitlyAction; import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.renderer.DescriptorRenderer; @@ -204,7 +204,7 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction JetFunction function = QuickFixUtil.getParentElementOfType(diagnostic, JetFunction.class); if (function != null) { - BindingContext context = KotlinCacheManagerUtil.getDeclarationsBindingContext(function); + BindingContext context = ResolvePackage.getBindingContext(function); JetType matchingReturnType = QuickFixUtil.findLowerBoundOfOverriddenCallablesReturnTypes(context, function); if (matchingReturnType != null) { actions.add(new ChangeFunctionReturnTypeFix(function, matchingReturnType)); diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java index 79c5233ce8c..3d6e4f239a2 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java @@ -42,7 +42,7 @@ import org.jetbrains.jet.lang.types.TypeUtils; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.plugin.JetBundle; import org.jetbrains.jet.plugin.actions.JetChangeFunctionSignatureAction; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils; import java.util.*; @@ -108,7 +108,7 @@ public class ChangeMemberFunctionSignatureFix extends JetHintAction computePossibleSignatures(JetNamedFunction functionElement) { - BindingContext context = KotlinCacheManagerUtil.getDeclarationsBindingContext(functionElement); + BindingContext context = ResolvePackage.getBindingContext(functionElement); FunctionDescriptor functionDescriptor = context.get(BindingContext.FUNCTION, functionElement); if (functionDescriptor == null) return Lists.newArrayList(); List superFunctions = getPossibleSuperFunctionsDescriptors(functionDescriptor); diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeToConstructorInvocationFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeToConstructorInvocationFix.java index d5ece8d18af..b5d1211303b 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeToConstructorInvocationFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeToConstructorInvocationFix.java @@ -30,7 +30,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.TypeUtils; import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import java.util.List; @@ -59,7 +59,7 @@ public class ChangeToConstructorInvocationFix extends JetIntentionAction diagnostics = context.getDiagnostics(); List imports = new ArrayList(); List usages = new ArrayList(); @@ -194,7 +194,7 @@ public class MapPlatformClassToKotlinFix extends JetIntentionAction{ private final JetParameter parameter; @@ -48,7 +48,7 @@ public class RenameParameterToMatchOverriddenMethodFix extends JetIntentionActio return false; } - BindingContext context = KotlinCacheManagerUtil.getDeclarationsBindingContext(parameter); + BindingContext context = ResolvePackage.getBindingContext(parameter); VariableDescriptor parameterDescriptor = context.get(BindingContext.VALUE_PARAMETER, parameter); if (parameterDescriptor == null) { return false; diff --git a/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinAnnotatedElementsSearcher.java b/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinAnnotatedElementsSearcher.java index 5b70eb8975f..44b79949993 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinAnnotatedElementsSearcher.java +++ b/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinAnnotatedElementsSearcher.java @@ -42,7 +42,7 @@ import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.DescriptorUtils; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.stubindex.JetAnnotationsIndex; import java.util.ArrayList; @@ -70,10 +70,10 @@ public class KotlinAnnotatedElementsSearcher extends AnnotatedElementsSearcher { JetDeclaration parentOfType = PsiTreeUtil.getParentOfType(elt, JetDeclaration.class); if (parentOfType == null) return; - //TODO LazyResolve - BindingContext context = KotlinCacheManagerUtil.getDeclarationsBindingContext(parentOfType); + JetAnnotationEntry annotationEntry = (JetAnnotationEntry) elt; - AnnotationDescriptor annotationDescriptor = context.get(BindingContext.ANNOTATION, (JetAnnotationEntry) elt); + BindingContext context = ResolvePackage.getBindingContext(annotationEntry); + AnnotationDescriptor annotationDescriptor = context.get(BindingContext.ANNOTATION, annotationEntry); if (annotationDescriptor == null) return; ClassifierDescriptor descriptor = annotationDescriptor.getType().getConstructor().getDeclarationDescriptor();