Refactor: Introduce JetElement#getModuleDescriptorForElement()
This commit is contained in:
@@ -22,6 +22,7 @@ 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
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||
|
||||
public fun JetElement.getLazyResolveSession(): ResolutionFacade {
|
||||
return KotlinCacheService.getInstance(getProject()).getResolutionFacade(listOf(this))
|
||||
@@ -39,6 +40,10 @@ public fun JetElement.resolveToElement(): BindingContext {
|
||||
return getLazyResolveSession().resolveToElement(this)
|
||||
}
|
||||
|
||||
public fun JetElement.getModuleDescriptorForElement(): ModuleDescriptor {
|
||||
return getLazyResolveSession().getModuleDescriptorForElement(this)
|
||||
}
|
||||
|
||||
public fun JetElement.getBindingContext(): BindingContext {
|
||||
return getAnalysisResults().bindingContext
|
||||
}
|
||||
|
||||
+2
-3
@@ -27,7 +27,6 @@ import org.jetbrains.jet.lang.psi.JetTypeProjection
|
||||
import org.jetbrains.jet.lang.psi.Call
|
||||
import org.jetbrains.jet.di.InjectorForMacros
|
||||
import org.jetbrains.jet.lang.resolve.BindingTraceContext
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
||||
import org.jetbrains.jet.lang.psi.JetProperty
|
||||
import org.jetbrains.jet.lang.psi.JetTypeArgumentList
|
||||
import org.jetbrains.jet.lang.psi.JetReturnExpression
|
||||
@@ -36,6 +35,7 @@ import org.jetbrains.jet.lang.resolve.calls.callUtil.getResolvedCall
|
||||
import org.jetbrains.jet.lang.psi.psiUtil.getTextWithLocation
|
||||
import org.jetbrains.jet.lang.resolve.bindingContextUtil.getDataFlowInfo
|
||||
import org.jetbrains.jet.plugin.util.approximateFlexibleTypes
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getModuleDescriptorForElement
|
||||
|
||||
public class RemoveExplicitTypeArguments : JetSelfTargetingIntention<JetTypeArgumentList>(
|
||||
"remove.explicit.type.arguments", javaClass()) {
|
||||
@@ -47,8 +47,7 @@ public class RemoveExplicitTypeArguments : JetSelfTargetingIntention<JetTypeArgu
|
||||
val context = AnalyzerFacadeWithCache.getContextForElement(callExpression)
|
||||
if (callExpression.getTypeArguments().isEmpty()) return false
|
||||
|
||||
val resolveSession = callExpression.getLazyResolveSession()
|
||||
val injector = InjectorForMacros(callExpression.getProject(), resolveSession.getModuleDescriptorForElement(callExpression))
|
||||
val injector = InjectorForMacros(callExpression.getProject(), callExpression.getModuleDescriptorForElement())
|
||||
|
||||
val scope = context[BindingContext.RESOLUTION_SCOPE, callExpression]
|
||||
val originalCall = callExpression.getResolvedCall(context)
|
||||
|
||||
+2
-3
@@ -40,7 +40,6 @@ import com.intellij.psi.PsiNamedElement
|
||||
import org.jetbrains.jet.lang.descriptors.impl.LocalVariableDescriptor
|
||||
import org.jetbrains.jet.utils.DFS
|
||||
import org.jetbrains.jet.utils.DFS.*
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
||||
import com.intellij.refactoring.util.RefactoringUIUtil
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache
|
||||
@@ -67,6 +66,7 @@ import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.traverseFollowingInstructi
|
||||
import org.jetbrains.jet.plugin.refactoring.extractFunction.OutputValueBoxer.AsList
|
||||
import org.jetbrains.jet.plugin.refactoring.getContextForContainingDeclarationBody
|
||||
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getModuleDescriptorForElement
|
||||
|
||||
private val DEFAULT_FUNCTION_NAME = "myFun"
|
||||
private val DEFAULT_RETURN_TYPE = KotlinBuiltIns.getInstance().getUnitType()
|
||||
@@ -697,12 +697,11 @@ fun ExtractionData.performAnalysis(): AnalysisResult {
|
||||
|
||||
val modifiedVarDescriptorsForControlFlow = HashMap(modifiedVarDescriptorsWithExpressions)
|
||||
modifiedVarDescriptorsForControlFlow.keySet().retainAll(localInstructions.getVarDescriptorsAccessedAfterwards(bindingContext))
|
||||
val moduleDescriptor = originalFile.getLazyResolveSession().getModuleDescriptorForElement(originalFile)
|
||||
val (controlFlow, controlFlowMessage) =
|
||||
analyzeControlFlow(
|
||||
localInstructions,
|
||||
pseudocode,
|
||||
moduleDescriptor,
|
||||
originalFile.getModuleDescriptorForElement(),
|
||||
bindingContext,
|
||||
modifiedVarDescriptorsForControlFlow,
|
||||
options,
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor;
|
||||
import org.jetbrains.jet.plugin.KotlinCodeInsightTestCase;
|
||||
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
import org.junit.Assert;
|
||||
@@ -65,8 +64,7 @@ public abstract class AbstractLazyResolveByStubTest extends KotlinCodeInsightTes
|
||||
|
||||
private void performTest(@NotNull String path, boolean checkPrimaryConstructors, boolean checkPropertyAccessors) {
|
||||
JetFile file = (JetFile) getFile();
|
||||
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession(file);
|
||||
ModuleDescriptor module = resolveSession.getModuleDescriptorForElement(file);
|
||||
ModuleDescriptor module = ResolvePackage.getModuleDescriptorForElement(file);
|
||||
PackageViewDescriptor packageViewDescriptor = module.getPackage(new FqName("test"));
|
||||
Assert.assertNotNull(packageViewDescriptor);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user