Refactor: Introduce JetDeclaration#resolveToDescriptor utility
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
+1
-1
@@ -131,7 +131,7 @@ public class JetStructureViewElement implements StructureViewTreeElement, Querya
|
||||
return null;
|
||||
}
|
||||
|
||||
return ResolvePackage.getLazyResolveSession(declaration).resolveToDescriptor(declaration);
|
||||
return ResolvePackage.resolveToDescriptor(declaration);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -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<? extends DeclarationDescriptor> superDescriptors;
|
||||
String message;
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
@@ -260,7 +260,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
|
||||
|
||||
@NotNull
|
||||
public Set<CallableMemberDescriptor> collectMethodsToGenerate(@NotNull JetClassOrObject classOrObject) {
|
||||
DeclarationDescriptor descriptor = ResolvePackage.getLazyResolveSession(classOrObject).resolveToDescriptor(classOrObject);
|
||||
DeclarationDescriptor descriptor = ResolvePackage.resolveToDescriptor(classOrObject);
|
||||
if (descriptor instanceof ClassDescriptor) {
|
||||
return collectMethodsToGenerate((ClassDescriptor) descriptor);
|
||||
}
|
||||
|
||||
@@ -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<JetDeclaration>(), 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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
@@ -51,8 +51,7 @@ public class AddFunctionToSupertypeFix extends JetHintAction<JetNamedFunction> {
|
||||
}
|
||||
|
||||
private static List<FunctionDescriptor> 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();
|
||||
|
||||
@@ -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<JetDeclarati
|
||||
overriddenNonOverridableMembers.clear();
|
||||
containingDeclarationsNames.clear();
|
||||
|
||||
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession((JetFile) file);
|
||||
DeclarationDescriptor descriptor = resolveSession.resolveToDescriptor(element);
|
||||
DeclarationDescriptor descriptor = ResolvePackage.resolveToDescriptor(element);
|
||||
if (!(descriptor instanceof CallableMemberDescriptor)) return false;
|
||||
|
||||
for (CallableMemberDescriptor overriddenDescriptor : getAllDeclaredNonOverridableOverriddenDescriptors(
|
||||
|
||||
Reference in New Issue
Block a user