From 585b556f529cbc05aad80fb71b94884bef420eab Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 20 Nov 2014 15:30:02 +0300 Subject: [PATCH] Refactor: Introduce JetDeclaration#resolveToDescriptor utility --- .../jetbrains/jet/plugin/caches/resolve/resolutionApi.kt | 6 ++++++ .../jet/plugin/structureView/JetStructureViewElement.java | 2 +- .../jet/plugin/codeInsight/GotoSuperActionHandler.java | 2 +- .../codeInsight/JetFunctionPsiElementCellRenderer.java | 2 +- .../plugin/codeInsight/OverrideImplementMethodsHandler.java | 2 +- .../jet/plugin/completion/smart/SmartCompletion.kt | 4 ++-- .../jet/plugin/intentions/ConvertToExpressionBodyAction.kt | 4 ++-- .../jetbrains/jet/plugin/j2k/IdeaResolverForConverter.kt | 6 +++--- .../jet/plugin/quickfix/AddFunctionToSupertypeFix.java | 3 +-- .../jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java | 4 +--- 10 files changed, 19 insertions(+), 16 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/resolutionApi.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/resolutionApi.kt index 4c78575fe11..a41b3f06c9d 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/resolutionApi.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/resolutionApi.kt @@ -20,6 +20,8 @@ import org.jetbrains.jet.lang.psi.JetElement import org.jetbrains.jet.lang.psi.JetFile import org.jetbrains.jet.analyzer.AnalyzeExhaust import org.jetbrains.jet.lang.resolve.BindingContext +import org.jetbrains.jet.lang.psi.JetDeclaration +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor public fun JetElement.getLazyResolveSession(): ResolutionFacade { return KotlinCacheService.getInstance(getProject()).getResolutionFacade(listOf(this)) @@ -29,6 +31,10 @@ public fun JetElement.getAnalysisResults(vararg extraFiles: JetFile): AnalyzeExh return KotlinCacheService.getInstance(getProject()).getAnalysisResults(listOf(this) + extraFiles.toList()) } +public fun JetDeclaration.resolveToDescriptor(): DeclarationDescriptor { + return getLazyResolveSession().resolveToDescriptor(this) +} + public fun JetElement.getBindingContext(): BindingContext { return getAnalysisResults().bindingContext } diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java index 6650e3b006b..93e82064267 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java @@ -131,7 +131,7 @@ public class JetStructureViewElement implements StructureViewTreeElement, Querya return null; } - return ResolvePackage.getLazyResolveSession(declaration).resolveToDescriptor(declaration); + return ResolvePackage.resolveToDescriptor(declaration); } @NotNull diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java index 015dc26abbe..2d59d31ae26 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java @@ -59,7 +59,7 @@ public class GotoSuperActionHandler implements CodeInsightActionHandler { JetObjectDeclaration.class); if (declaration == null) return; - DeclarationDescriptor descriptor = ResolvePackage.getLazyResolveSession(declaration).resolveToDescriptor(declaration); + DeclarationDescriptor descriptor = ResolvePackage.resolveToDescriptor(declaration); Collection superDescriptors; String message; diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFunctionPsiElementCellRenderer.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFunctionPsiElementCellRenderer.java index cb01cd4e84c..6c680e1ed76 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFunctionPsiElementCellRenderer.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/JetFunctionPsiElementCellRenderer.java @@ -28,7 +28,7 @@ public class JetFunctionPsiElementCellRenderer extends DefaultPsiElementCellRend public String getElementText(PsiElement element) { if (element instanceof JetNamedFunction) { JetNamedFunction function = (JetNamedFunction) element; - DeclarationDescriptor descriptor = ResolvePackage.getLazyResolveSession(function).resolveToDescriptor(function); + DeclarationDescriptor descriptor = ResolvePackage.resolveToDescriptor(function); return DescriptorRenderer.SHORT_NAMES_IN_TYPES.render(descriptor); } return super.getElementText(element); diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java index a7428580c69..9cef31e0da5 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java @@ -260,7 +260,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns @NotNull public Set collectMethodsToGenerate(@NotNull JetClassOrObject classOrObject) { - DeclarationDescriptor descriptor = ResolvePackage.getLazyResolveSession(classOrObject).resolveToDescriptor(classOrObject); + DeclarationDescriptor descriptor = ResolvePackage.resolveToDescriptor(classOrObject); if (descriptor instanceof ClassDescriptor) { return collectMethodsToGenerate((ClassDescriptor) descriptor); } diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt index c6a70e13ac6..f3a2c899a79 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt @@ -29,11 +29,11 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns import org.jetbrains.jet.plugin.util.makeNotNullable import org.jetbrains.jet.plugin.util.makeNullable import com.intellij.psi.util.PsiTreeUtil -import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession import org.jetbrains.jet.renderer.DescriptorRenderer import org.jetbrains.jet.lang.psi.psiUtil.getReceiverExpression import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade +import org.jetbrains.jet.plugin.caches.resolve.resolveToDescriptor class SmartCompletion(val expression: JetSimpleNameExpression, val resolveSession: ResolutionFacade, @@ -151,7 +151,7 @@ class SmartCompletion(val expression: JetSimpleNameExpression, val offset = declaration.getTextRange()!!.getStartOffset() val originalDeclaration = PsiTreeUtil.findElementOfClassAtOffset(originalFile, offset, javaClass(), true) if (originalDeclaration != null) { - val originalDescriptor = originalDeclaration.getLazyResolveSession().resolveToDescriptor(originalDeclaration) as? CallableDescriptor + val originalDescriptor = originalDeclaration.resolveToDescriptor() as? CallableDescriptor val returnType = originalDescriptor?.getReturnType() return if (returnType != null) listOf(ExpectedInfo(returnType, declaration.getName(), null)) else null } diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToExpressionBodyAction.kt b/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToExpressionBodyAction.kt index d8b61c10be3..8deaba00b3b 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToExpressionBodyAction.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToExpressionBodyAction.kt @@ -26,8 +26,8 @@ import org.jetbrains.jet.lang.psi.* import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns import org.jetbrains.jet.lexer.JetTokens import com.intellij.openapi.util.TextRange -import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorWithVisibility +import org.jetbrains.jet.plugin.caches.resolve.resolveToDescriptor public class ConvertToExpressionBodyAction : PsiElementBaseIntentionAction() { override fun getFamilyName(): String = JetBundle.message("convert.to.expression.body.action.family.name") @@ -63,7 +63,7 @@ public class ConvertToExpressionBodyAction : PsiElementBaseIntentionAction() { private fun canOmitType(declaration: JetCallableDeclaration): Boolean { if (declaration.getModifierList()?.hasModifier(JetTokens.OVERRIDE_KEYWORD) ?: false) return true - val descriptor = declaration.getLazyResolveSession().resolveToDescriptor(declaration) + val descriptor = declaration.resolveToDescriptor() return !((descriptor as? DeclarationDescriptorWithVisibility)?.getVisibility()?.isPublicAPI() ?: false) } diff --git a/idea/src/org/jetbrains/jet/plugin/j2k/IdeaResolverForConverter.kt b/idea/src/org/jetbrains/jet/plugin/j2k/IdeaResolverForConverter.kt index d814ec84fb5..e8d59a8d30f 100644 --- a/idea/src/org/jetbrains/jet/plugin/j2k/IdeaResolverForConverter.kt +++ b/idea/src/org/jetbrains/jet/plugin/j2k/IdeaResolverForConverter.kt @@ -17,9 +17,9 @@ package org.jetbrains.jet.plugin.j2k import org.jetbrains.jet.j2k.ResolverForConverter -import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession import org.jetbrains.jet.lang.psi.JetDeclaration +import org.jetbrains.jet.plugin.caches.resolve.resolveToDescriptor -public object IdeaResolverForConverter: ResolverForConverter { - override fun resolveToDescriptor(declaration: JetDeclaration) = declaration.getLazyResolveSession().resolveToDescriptor(declaration) +public object IdeaResolverForConverter : ResolverForConverter { + override fun resolveToDescriptor(declaration: JetDeclaration) = declaration.resolveToDescriptor() } \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java index 9e2734fa0c1..7ab353494de 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java @@ -51,8 +51,7 @@ public class AddFunctionToSupertypeFix extends JetHintAction { } private static List generateFunctionsToAdd(JetNamedFunction functionElement) { - FunctionDescriptor functionDescriptor = - (FunctionDescriptor) ResolvePackage.getLazyResolveSession(functionElement).resolveToDescriptor(functionElement); + FunctionDescriptor functionDescriptor = (FunctionDescriptor) ResolvePackage.resolveToDescriptor(functionElement); DeclarationDescriptor containingDeclaration = functionDescriptor.getContainingDeclaration(); if (!(containingDeclaration instanceof ClassDescriptor)) return Collections.emptyList(); diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java index 71ee438d10e..454d1e4e6f9 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/MakeOverriddenMemberOpenFix.java @@ -34,7 +34,6 @@ import org.jetbrains.jet.lang.psi.JetCallableDeclaration; 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.caches.resolve.ResolutionFacade; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import java.util.*; @@ -61,8 +60,7 @@ public class MakeOverriddenMemberOpenFix extends JetIntentionAction