Refactor: Introduce JetElement#resolveToElement utility
This commit is contained in:
@@ -35,6 +35,10 @@ public fun JetDeclaration.resolveToDescriptor(): DeclarationDescriptor {
|
||||
return getLazyResolveSession().resolveToDescriptor(this)
|
||||
}
|
||||
|
||||
public fun JetElement.resolveToElement(): BindingContext {
|
||||
return getLazyResolveSession().resolveToElement(this)
|
||||
}
|
||||
|
||||
public fun JetElement.getBindingContext(): BindingContext {
|
||||
return getAnalysisResults().bindingContext
|
||||
}
|
||||
|
||||
+1
-3
@@ -19,7 +19,6 @@ package org.jetbrains.jet.plugin.project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetElement;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||
|
||||
public final class AnalyzerFacadeWithCache {
|
||||
@@ -29,7 +28,6 @@ public final class AnalyzerFacadeWithCache {
|
||||
|
||||
@NotNull
|
||||
public static BindingContext getContextForElement(@NotNull JetElement jetElement) {
|
||||
ResolutionFacade resolveSessionForBodies = ResolvePackage.getLazyResolveSession(jetElement);
|
||||
return resolveSessionForBodies.resolveToElement(jetElement);
|
||||
return ResolvePackage.resolveToElement(jetElement);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,9 +24,9 @@ import org.jetbrains.jet.lang.psi.JetExpression
|
||||
import org.jetbrains.jet.lang.psi.JetDotQualifiedExpression
|
||||
import org.jetbrains.jet.lang.psi.JetBinaryExpression
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
||||
import org.jetbrains.jet.lang.psi.JetParenthesizedExpression
|
||||
import org.jetbrains.jet.lang.resolve.calls.callUtil.getResolvedCall
|
||||
import org.jetbrains.jet.plugin.caches.resolve.resolveToElement
|
||||
|
||||
public class ConvertToForEachLoopIntention : JetSelfTargetingIntention<JetExpression>("convert.to.for.each.loop.intention", javaClass()) {
|
||||
private fun getFunctionLiteralArgument(element: JetExpression): JetFunctionLiteralExpression? {
|
||||
@@ -78,7 +78,7 @@ public class ConvertToForEachLoopIntention : JetSelfTargetingIntention<JetExpres
|
||||
isWellFormedFunctionLiteral(functionLiteral) &&
|
||||
checkTotalNumberOfArguments(element)) {
|
||||
|
||||
val context = element.getContainingJetFile().getLazyResolveSession().resolveToElement(element)
|
||||
val context = element.resolveToElement()
|
||||
val resolvedCall = element.getResolvedCall(context)
|
||||
val functionFqName = if (resolvedCall != null) DescriptorUtils.getFqName(resolvedCall.getResultingDescriptor()).toString() else null
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@ import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.jet.plugin.codeInsight.ShortenReferences
|
||||
import org.jetbrains.jet.JetNodeTypes
|
||||
import org.jetbrains.jet.lexer.JetTokens
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
||||
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
||||
import org.jetbrains.jet.plugin.caches.resolve.resolveToElement
|
||||
|
||||
fun specifyTypeExplicitly(declaration: JetNamedFunction, typeText: String) {
|
||||
specifyTypeExplicitly(declaration, JetPsiFactory(declaration).createType(typeText))
|
||||
@@ -44,14 +44,12 @@ fun specifyTypeExplicitly(declaration: JetNamedFunction, typeReference: JetTypeR
|
||||
}
|
||||
|
||||
fun expressionType(expression: JetExpression): JetType? {
|
||||
val resolveSession = expression.getLazyResolveSession()
|
||||
val bindingContext = resolveSession.resolveToElement(expression)
|
||||
val bindingContext = expression.resolveToElement()
|
||||
return bindingContext.get(BindingContext.EXPRESSION_TYPE, expression)
|
||||
}
|
||||
|
||||
fun functionReturnType(function: JetNamedFunction): JetType? {
|
||||
val resolveSession = function.getLazyResolveSession()
|
||||
val bindingContext = resolveSession.resolveToElement(function)
|
||||
val bindingContext = function.resolveToElement()
|
||||
val descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, function)
|
||||
if (descriptor == null) return null
|
||||
return (descriptor as FunctionDescriptor).getReturnType()
|
||||
|
||||
@@ -16,17 +16,10 @@
|
||||
|
||||
package org.jetbrains.jet.plugin.refactoring
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||
import org.jetbrains.jet.lang.psi.psiUtil.getQualifiedElement
|
||||
import org.jetbrains.jet.lang.resolve.name.isOneSegmentFQN
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.psi.PsiDirectory
|
||||
import com.intellij.openapi.roots.JavaProjectRootsUtil
|
||||
import com.intellij.psi.PsiPackage
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiMember
|
||||
import org.jetbrains.jet.asJava.namedUnwrappedElement
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import com.intellij.refactoring.util.ConflictsUtil
|
||||
import org.jetbrains.jet.lang.psi.psiUtil.getPackage
|
||||
@@ -65,7 +58,6 @@ import com.intellij.psi.PsiDocumentManager
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||
import org.jetbrains.jet.lang.psi.psiUtil.getParentByType
|
||||
import org.jetbrains.jet.lang.psi.psiUtil.isAncestor
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
||||
import com.intellij.psi.PsiNamedElement
|
||||
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
||||
@@ -73,6 +65,7 @@ import org.jetbrains.jet.renderer.DescriptorRenderer
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import javax.swing.Icon
|
||||
import org.jetbrains.jet.plugin.util.string.collapseSpaces
|
||||
import org.jetbrains.jet.plugin.caches.resolve.resolveToElement
|
||||
|
||||
fun <T: Any> PsiElement.getAndRemoveCopyableUserData(key: Key<T>): T? {
|
||||
val data = getCopyableUserData(key)
|
||||
@@ -280,7 +273,7 @@ public fun JetElement.getContextForContainingDeclarationBody(): BindingContext?
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
return bodyElement?.let { getContainingJetFile().getLazyResolveSession().resolveToElement(it) }
|
||||
return bodyElement?.let { it.resolveToElement() }
|
||||
}
|
||||
|
||||
public fun chooseContainerElement<T>(
|
||||
|
||||
Reference in New Issue
Block a user