diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/findUsages/UsageTypeUtils.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/findUsages/UsageTypeUtils.kt index 6f4cb1987ae..00eabcb7ca2 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/findUsages/UsageTypeUtils.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/findUsages/UsageTypeUtils.kt @@ -21,7 +21,6 @@ import org.jetbrains.jet.lang.psi.JetForExpression import org.jetbrains.jet.lang.psi.JetMultiDeclaration import org.jetbrains.jet.lang.psi.psiUtil.getParentByType import org.jetbrains.jet.lang.psi.JetReferenceExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.psi.JetImportDirective import org.jetbrains.jet.lang.psi.psiUtil.getParentByTypeAndBranch import org.jetbrains.jet.lang.psi.JetCallableReferenceExpression @@ -61,8 +60,8 @@ import org.jetbrains.jet.lang.descriptors.ClassKind import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor import com.intellij.psi.PsiPackage import org.jetbrains.jet.lang.descriptors.VariableDescriptor -import org.jetbrains.jet.plugin.JetBundle import org.jetbrains.jet.plugin.findUsages.UsageTypeEnum.* +import org.jetbrains.jet.plugin.caches.resolve.analyze public object UsageTypeUtils { public fun getUsageType(element: PsiElement?): UsageTypeEnum? { @@ -74,7 +73,7 @@ public object UsageTypeUtils { val refExpr = element?.getParentByType(javaClass()) if (refExpr == null) return null - val context = AnalyzerFacadeWithCache.getContextForElement(refExpr) + val context = refExpr.analyze() fun getCommonUsageType(): UsageTypeEnum? { return when { diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/intentions/OperatorToFunctionIntention.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/intentions/OperatorToFunctionIntention.kt index 2ab9d4375a5..f0183ab7a3c 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/intentions/OperatorToFunctionIntention.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/intentions/OperatorToFunctionIntention.kt @@ -27,10 +27,10 @@ import org.jetbrains.jet.lexer.JetTokens import org.jetbrains.jet.lang.psi.JetPsiFactory import org.jetbrains.jet.lang.psi.JetElement import org.jetbrains.jet.lang.psi.JetDotQualifiedExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.descriptors.FunctionDescriptor import org.jetbrains.jet.lang.resolve.calls.callUtil.getResolvedCall +import org.jetbrains.jet.plugin.caches.resolve.analyze public class OperatorToFunctionIntention : JetSelfTargetingIntention("operator.to.function", javaClass()) { class object { @@ -57,7 +57,7 @@ public class OperatorToFunctionIntention : JetSelfTargetingIntention( "remove.explicit.type.arguments", javaClass()) { @@ -44,7 +44,7 @@ public class RemoveExplicitTypeArguments : JetSelfTargetingIntention @@ -72,18 +72,15 @@ public abstract class AbstractJetReference(element: T) override fun isSoft(): Boolean = false private fun resolveToPsiElements(): Collection { - val context = AnalyzerFacadeWithCache.getContextForElement(expression) - return resolveToPsiElements(context, getTargetDescriptors(context)) + return resolveToPsiElements(expression.analyze(), getTargetDescriptors(expression.analyze())) } override fun resolveToDescriptors(): Collection { - val context = AnalyzerFacadeWithCache.getContextForElement(expression) - return getTargetDescriptors(context) + return getTargetDescriptors(expression.analyze()) } override fun resolveMap(): Map> { - val context = AnalyzerFacadeWithCache.getContextForElement(expression) - return getTargetDescriptors(context) keysToMap { DescriptorToDeclarationUtil.resolveToPsiElements(expression.getProject(), it) } + return getTargetDescriptors(expression.analyze()) keysToMap { DescriptorToDeclarationUtil.resolveToPsiElements(expression.getProject(), it) } } private fun resolveToPsiElements(context: BindingContext, targetDescriptors: Collection): Collection { diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.kt index 261d918239a..4e81dcc5d5a 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.kt @@ -31,12 +31,12 @@ import org.jetbrains.jet.plugin.refactoring.fqName.getKotlinFqName import org.jetbrains.jet.lang.types.expressions.OperatorConventions import org.jetbrains.jet.lexer.JetToken import org.jetbrains.jet.plugin.intentions.OperatorToFunctionIntention -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import com.intellij.util.IncorrectOperationException import org.jetbrains.jet.lang.psi.psiUtil.getParentByTypeAndBranch import org.jetbrains.jet.lang.resolve.name.Name import org.jetbrains.jet.lang.resolve.dataClassUtils.isComponentLike +import org.jetbrains.jet.plugin.caches.resolve.analyze public class JetSimpleNameReference( jetSimpleNameExpression: JetSimpleNameExpression @@ -78,13 +78,13 @@ public class JetSimpleNameReference( val opExpression = PsiTreeUtil.getParentOfType(expression, javaClass(), javaClass()) if (elementType is JetToken && OperatorConventions.getNameForOperationSymbol(elementType) != null && opExpression != null) { - val oldDescriptor = AnalyzerFacadeWithCache.getContextForElement(expression)[BindingContext.REFERENCE_TARGET, expression] + val oldDescriptor = expression.analyze()[BindingContext.REFERENCE_TARGET, expression] val newExpression = OperatorToFunctionIntention.convert(opExpression) newExpression.accept( object: JetTreeVisitorVoid() { override fun visitCallExpression(expression: JetCallExpression) { val callee = expression.getCalleeExpression() as? JetSimpleNameExpression - if (callee != null && AnalyzerFacadeWithCache.getContextForElement(callee)[BindingContext.REFERENCE_TARGET, callee] == oldDescriptor) { + if (callee != null && callee.analyze()[BindingContext.REFERENCE_TARGET, callee] == oldDescriptor) { nameElement = callee.getReferencedNameElement() } else { diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt index 5b9c8217e66..34dfc233562 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt @@ -33,13 +33,13 @@ import org.jetbrains.jet.asJava.LightClassUtil.PropertyAccessorsPsiMethods import org.jetbrains.jet.lang.psi.psiUtil.* import org.jetbrains.jet.lang.resolve.name.Name import org.jetbrains.jet.lexer.JetSingleValueToken -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor import org.jetbrains.jet.lexer.JetTokens import org.jetbrains.jet.plugin.references.* import org.jetbrains.jet.lang.psi.JetDeclaration import com.intellij.util.containers.ContainerUtil +import org.jetbrains.jet.plugin.caches.resolve.analyze val isTargetUsage = (PsiReference::matchesTarget).searchFilter @@ -75,7 +75,7 @@ public fun PsiNamedElement.getSpecialNamesToSearch(): List { this is JetParameter -> { if (!hasValOrVarNode()) return Collections.emptyList() - val context = AnalyzerFacadeWithCache.getContextForElement(this) + val context = this.analyze() val paramDescriptor = context[BindingContext.DECLARATION_TO_DESCRIPTOR, this] as? ValueParameterDescriptor context[BindingContext.DATA_CLASS_COMPONENT_FUNCTION, paramDescriptor]?.let { listOf(it.getName().asString(), JetTokens.LPAR.getValue()) diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt index 431b2e3537c..4c08f4e5734 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt @@ -21,7 +21,6 @@ import org.jetbrains.jet.lang.descriptors.* import org.jetbrains.jet.lang.psi.* import org.jetbrains.jet.lang.psi.psiUtil.* import org.jetbrains.jet.lang.resolve.BindingContext -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import com.intellij.psi.PsiReference import org.jetbrains.jet.lang.resolve.DescriptorUtils import org.jetbrains.jet.codegen.PropertyCodegen @@ -31,12 +30,13 @@ import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils import org.jetbrains.jet.plugin.references.* import org.jetbrains.jet.plugin.findUsages.UsageTypeUtils import org.jetbrains.jet.plugin.findUsages.UsageTypeEnum +import org.jetbrains.jet.plugin.caches.resolve.analyze val JetDeclaration.descriptor: DeclarationDescriptor? - get() = AnalyzerFacadeWithCache.getContextForElement(this).get(BindingContext.DECLARATION_TO_DESCRIPTOR, this) + get() = this.analyze().get(BindingContext.DECLARATION_TO_DESCRIPTOR, this) val JetParameter.propertyDescriptor: PropertyDescriptor? - get() = AnalyzerFacadeWithCache.getContextForElement(this).get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, this) + get() = this.analyze().get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, this) fun PsiReference.checkUsageVsOriginalDescriptor( target: JetDeclaration, @@ -82,7 +82,7 @@ fun PsiReference.isConstructorUsage(jetClassOrObject: JetClassOrObject): Boolean fun checkKotlinUsage(): Boolean { if (this !is JetElement) return false - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(this) + val bindingContext = this.analyze() val descriptor = getCallDescriptor(bindingContext) if (descriptor !is ConstructorDescriptor) return false diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt index bc0a144cce8..008b88d63a6 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt @@ -16,21 +16,16 @@ package org.jetbrains.jet.plugin.structureView -import com.intellij.ide.util.treeView.smartTree.TreeElement import com.intellij.ide.util.InheritedMembersNodeProvider import com.intellij.ide.util.treeView.smartTree.TreeElement -import org.jetbrains.jet.lang.psi.JetClassOrObject -import com.intellij.psi.NavigatablePsiElement import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil -import org.jetbrains.jet.lang.psi.JetDeclaration -import org.jetbrains.jet.lang.resolve.BindingContext -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import java.util.ArrayList import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor import com.intellij.psi.NavigatablePsiElement import org.jetbrains.jet.lang.psi.JetClassOrObject +import org.jetbrains.jet.plugin.caches.resolve.analyze public class KotlinInheritedMembersNodeProvider: InheritedMembersNodeProvider() { override fun provideNodes(node: TreeElement): Collection { @@ -42,7 +37,7 @@ public class KotlinInheritedMembersNodeProvider: InheritedMembersNodeProvider(doc.getLineNumber(elementTextRange.getStartOffset()), doc.getLineNumber(elementTextRange.getEndOffset())) - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(element) + val bindingContext = element.analyze() val result = OrderedSet() // TODO support class initializers, local functions, delegated properties with specified type, setter for properties diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java index a298cb6e954..49d4570ea25 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java @@ -42,7 +42,7 @@ import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.renderer.DescriptorRenderer; import javax.swing.*; @@ -164,7 +164,7 @@ public class KotlinCallHierarchyNodeDescriptor extends HierarchyNodeDescriptor i elementText = ((JetFile) element).getName(); } else if (element instanceof JetNamedDeclaration) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement((JetElement) element); + BindingContext bindingContext = ResolvePackage.analyze((JetElement) element); DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, element); if (descriptor == null) return null; diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java index de65a1b332c..99c7fdcce62 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java @@ -27,7 +27,7 @@ import com.intellij.psi.PsiReference; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.asJava.KotlinLightMethod; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import java.util.ArrayList; import java.util.HashMap; @@ -84,7 +84,7 @@ public class KotlinCalleeMethodsTreeStructure extends KotlinCallTreeStructure { final Map referencesToCalleeElements = new HashMap(); for (JetElement element : elementsToAnalyze) { element.accept( - new CalleeReferenceVisitorBase(AnalyzerFacadeWithCache.getContextForElement(element), false) { + new CalleeReferenceVisitorBase(ResolvePackage.analyze(element), false) { @Override protected void processDeclaration(JetReferenceExpression reference, PsiElement declaration) { referencesToCalleeElements.put(reference.getReference(), declaration); diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java index ffe0ae03b72..a775d261346 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java @@ -37,8 +37,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.asJava.LightClassUtil; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.hierarchy.HierarchyUtils; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.references.JetReference; import org.jetbrains.jet.plugin.search.usagesSearch.UsagesSearchPackage; @@ -68,7 +68,7 @@ public class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStructure { JetElement codeBlockForLocalDeclaration = getEnclosingElementForLocalDeclaration(element); if (codeBlockForLocalDeclaration != null) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement((JetElement) element); + BindingContext bindingContext = ResolvePackage.analyze((JetElement) element); final Map referencesToElements = new HashMap(); codeBlockForLocalDeclaration.accept(new CalleeReferenceVisitorBase(bindingContext, true) { diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/markers/SuperDeclarationMarker.kt b/idea/src/org/jetbrains/jet/plugin/highlighter/markers/SuperDeclarationMarker.kt index 61dbd7ff666..65f24dadb1b 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/markers/SuperDeclarationMarker.kt +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/markers/SuperDeclarationMarker.kt @@ -35,8 +35,8 @@ import com.intellij.codeInsight.daemon.GutterIconNavigationHandler import java.util.ArrayList import com.intellij.util.Function import org.jetbrains.jet.lang.psi.JetDeclaration -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext +import org.jetbrains.jet.plugin.caches.resolve.analyze object SuperDeclarationMarkerTooltip: Function { override fun `fun`(jetDeclaration: JetDeclaration?): String? { @@ -112,7 +112,7 @@ public data class ResolveWithParentsResult( val overriddenDescriptors: Collection) public fun resolveDeclarationWithParents(element: JetDeclaration): ResolveWithParentsResult { - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(element) + val bindingContext = element.analyze() val descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, element) if (descriptor !is CallableMemberDescriptor) return ResolveWithParentsResult(null, listOf()) diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/ConvertAssertToIfWithThrowIntention.kt b/idea/src/org/jetbrains/jet/plugin/intentions/ConvertAssertToIfWithThrowIntention.kt index 6f95fdbfa35..5ab75659b96 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/ConvertAssertToIfWithThrowIntention.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/ConvertAssertToIfWithThrowIntention.kt @@ -18,7 +18,6 @@ package org.jetbrains.jet.plugin.intentions import com.intellij.openapi.editor.Editor import org.jetbrains.jet.lang.psi.JetCallExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.psi.JetPsiFactory import org.jetbrains.jet.lang.psi.JetPrefixExpression import org.jetbrains.jet.plugin.codeInsight.ShortenReferences @@ -32,6 +31,7 @@ import org.jetbrains.jet.lang.resolve.calls.callUtil.getResolvedCall import org.jetbrains.jet.lang.psi.JetBlockExpression import org.jetbrains.jet.lang.psi.JetThrowExpression import org.jetbrains.jet.lang.psi.psiUtil.replaced +import org.jetbrains.jet.plugin.caches.resolve.analyze public class ConvertAssertToIfWithThrowIntention : JetSelfTargetingIntention( "convert.assert.to.if.with.throw", javaClass()) { @@ -45,7 +45,7 @@ public class ConvertAssertToIfWithThrowIntention : JetSelfTargetingIntention("convert.if.with.throw.to.assert", javaClass()) { @@ -48,7 +48,7 @@ public class ConvertIfWithThrowToAssertIntention : val paramAmount = thrownExpr.getValueArguments().size if (paramAmount > 1) return false - val context = AnalyzerFacadeWithCache.getContextForElement(thrownExpr) + val context = thenExpr.analyze() val resolvedCall = thrownExpr.getResolvedCall(context) if (resolvedCall == null) return false diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToConcatenatedStringIntention.kt b/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToConcatenatedStringIntention.kt index cdf063617ed..c6c6b5f21f8 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToConcatenatedStringIntention.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/ConvertToConcatenatedStringIntention.kt @@ -7,11 +7,11 @@ import org.jetbrains.jet.lang.psi.JetStringTemplateEntry import org.jetbrains.jet.lang.psi.JetBinaryExpression import org.jetbrains.jet.lang.psi.JetStringTemplateEntryWithExpression import org.jetbrains.jet.lang.psi.JetExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContextUtils import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns import org.jetbrains.jet.lang.psi.JetIfExpression import org.jetbrains.jet.lang.psi.JetBlockExpression +import org.jetbrains.jet.plugin.caches.resolve.analyze public class ConvertToConcatenatedStringIntention : JetSelfTargetingIntention("convert.to.concatenated.string.intention", javaClass()) { override fun isApplicableTo(element: JetStringTemplateExpression): Boolean { @@ -62,7 +62,7 @@ public class ConvertToConcatenatedStringIntention : JetSelfTargetingIntention("convert.to.string.template", javaClass()) { override fun isApplicableTo(element: JetBinaryExpression): Boolean { if (element.getOperationToken() != JetTokens.PLUS) return false - val context = AnalyzerFacadeWithCache.getContextForElement(element) + val context = element.analyze() val elementType = BindingContextUtils.getRecordedTypeInfo(element, context)?.getType() if (!(KotlinBuiltIns.getInstance().isString(elementType))) return false @@ -80,7 +80,7 @@ public class ConvertToStringTemplateIntention : JetSelfTargetingIntention { - val context = AnalyzerFacadeWithCache.getContextForElement(expression) + val context = expression.analyze() val trace = DelegatingBindingTrace(context, "Trace for evaluating constant") val constant = ConstantExpressionEvaluator.evaluate(expression, trace, null) if (constant is IntegerValueTypeConstant) { diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/InsertExplicitTypeArguments.kt b/idea/src/org/jetbrains/jet/plugin/intentions/InsertExplicitTypeArguments.kt index 1b9a58dbf50..02ec9b74196 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/InsertExplicitTypeArguments.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/InsertExplicitTypeArguments.kt @@ -18,13 +18,13 @@ package org.jetbrains.jet.plugin.intentions import com.intellij.openapi.editor.Editor import org.jetbrains.jet.lang.psi.JetCallExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.psi.JetPsiFactory import org.jetbrains.jet.lang.types.ErrorUtils import org.jetbrains.jet.plugin.codeInsight.ShortenReferences import org.jetbrains.jet.lang.resolve.calls.callUtil.getResolvedCall import org.jetbrains.jet.lang.psi.JetTypeArgumentList import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers +import org.jetbrains.jet.plugin.caches.resolve.analyze public class InsertExplicitTypeArguments : JetSelfTargetingIntention( "insert.explicit.type.arguments", javaClass()) { @@ -40,7 +40,7 @@ public class InsertExplicitTypeArguments : JetSelfTargetingIntention( "make.type.explicit.in.lambda", javaClass()) { @@ -42,7 +42,7 @@ public class MakeTypeExplicitInLambdaIntention : JetSelfTargetingIntention("replace.with.infix.function.call.intention", javaClass()) { override fun isApplicableTo(element: JetCallExpression): Boolean { @@ -88,7 +88,7 @@ public open class ReplaceWithInfixFunctionCallIntention : JetSelfTargetingIntent val operatorText = element.getCalleeExpression()!!.getText() val valueArguments = element.getValueArgumentList()?.getArguments() ?: listOf() val functionLiteralArguments = element.getFunctionLiteralArguments() - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(parent) + val bindingContext = parent.analyze() val receiverType = bindingContext[BindingContext.EXPRESSION_TYPE, receiver] if (receiverType == null) { if (bindingContext[BindingContext.QUALIFIER, receiver] != null) { diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceWithOperatorAssignIntention.kt b/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceWithOperatorAssignIntention.kt index fc520b87005..d473c8967aa 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceWithOperatorAssignIntention.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceWithOperatorAssignIntention.kt @@ -21,13 +21,11 @@ import com.intellij.openapi.editor.Editor import org.jetbrains.jet.lexer.JetTokens import org.jetbrains.jet.lang.psi.JetPsiFactory import org.jetbrains.jet.lang.psi.JetSimpleNameExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.descriptors.ClassDescriptor import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns -import org.jetbrains.jet.plugin.util.psi.patternMatching.JetPsiUnifier -import org.jetbrains.jet.plugin.util.psi.patternMatching.UnificationResult import org.jetbrains.jet.plugin.util.psi.patternMatching.matches +import org.jetbrains.jet.plugin.caches.resolve.analyze public class ReplaceWithOperatorAssignIntention : JetSelfTargetingIntention("replace.with.operator.assign.intention", javaClass()) { @@ -44,7 +42,7 @@ public class ReplaceWithOperatorAssignIntention : JetSelfTargetingIntention( "simplify.boolean.with.constants", javaClass()) { @@ -128,7 +128,7 @@ public class SimplifyBooleanWithConstantsIntention : JetSelfTargetingIntention @@ -94,7 +94,7 @@ fun JetThrowExpression.throwsNullPointerExceptionWithNoArguments(): Boolean { val thrownExpression = this.getThrownExpression() if (thrownExpression !is JetCallExpression) return false - val context = AnalyzerFacadeWithCache.getContextForElement(this) + val context = this.analyze() val descriptor = context.get(BindingContext.REFERENCE_TARGET, thrownExpression.getCalleeExpression() as JetSimpleNameExpression) val declDescriptor = descriptor?.getContainingDeclaration() if (declDescriptor == null) return false @@ -169,7 +169,7 @@ fun JetPostfixExpression.inlineBaseExpressionIfApplicableWithPrompt(editor: Edit } fun JetExpression.isStableVariable(): Boolean { - val context = AnalyzerFacadeWithCache.getContextForElement(this) + val context = this.analyze() val descriptor = BindingContextUtils.extractVariableDescriptorIfAny(context, this, false) return descriptor is VariableDescriptor && DataFlowValueFactory.isStableVariable(descriptor) } diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/branchedTransformations/branchedTransformationUtils.kt b/idea/src/org/jetbrains/jet/plugin/intentions/branchedTransformations/branchedTransformationUtils.kt index b6156e7e1ac..7eeae2da720 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/branchedTransformations/branchedTransformationUtils.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/branchedTransformations/branchedTransformationUtils.kt @@ -25,10 +25,7 @@ import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.PsiWhiteSpace import java.util.Collections import com.intellij.util.containers.ContainerUtil -import org.jetbrains.jet.plugin.util.psi.patternMatching.JetPsiUnifier -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.plugin.util.psi.patternMatching.toRange -import org.jetbrains.jet.plugin.util.psi.patternMatching.UnificationResult import org.jetbrains.jet.plugin.util.psi.patternMatching.matches public val TRANSFORM_WITHOUT_CHECK: String = "Expression must be checked before applying transformation" diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/declarations/DeclarationUtils.java b/idea/src/org/jetbrains/jet/plugin/intentions/declarations/DeclarationUtils.java index aa17a9d779b..124a9cff38d 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/declarations/DeclarationUtils.java +++ b/idea/src/org/jetbrains/jet/plugin/intentions/declarations/DeclarationUtils.java @@ -22,10 +22,9 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.ShortenReferences; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers; -import org.jetbrains.jet.renderer.DescriptorRenderer; import static org.jetbrains.jet.lang.psi.PsiPackage.JetPsiFactory; @@ -45,7 +44,7 @@ public class DeclarationUtils { private static JetType getPropertyTypeIfNeeded(@NotNull JetProperty property) { if (property.getTypeReference() != null) return null; - JetType type = AnalyzerFacadeWithCache.getContextForElement(property).get( + JetType type = ResolvePackage.analyze(property).get( BindingContext.EXPRESSION_TYPE, property.getInitializer() ); return type == null || type.isError() ? null : type; diff --git a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/AnonymousTemplateEditingListener.java b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/AnonymousTemplateEditingListener.java index 8e16a162cfc..4232a9da599 100644 --- a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/AnonymousTemplateEditingListener.java +++ b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/AnonymousTemplateEditingListener.java @@ -32,8 +32,8 @@ import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.JetReferenceExpression; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.ImplementMethodsHandler; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import java.util.HashMap; import java.util.Map; @@ -60,7 +60,7 @@ class AnonymousTemplateEditingListener extends TemplateEditingAdapter { PsiElement name = psiFile.findElementAt(variableRange.getStartOffset()); if (name != null && name.getParent() instanceof JetReferenceExpression) { JetReferenceExpression ref = (JetReferenceExpression) name.getParent(); - DeclarationDescriptor descriptor = AnalyzerFacadeWithCache.getContextForElement(ref).get(BindingContext.REFERENCE_TARGET, ref); + DeclarationDescriptor descriptor = ResolvePackage.analyze(ref).get(BindingContext.REFERENCE_TARGET, ref); if (descriptor instanceof ClassDescriptor) { classRef = ref; classDescriptor = (ClassDescriptor) descriptor; diff --git a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetAnonymousSuperMacro.java b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetAnonymousSuperMacro.java index ba29922b378..6b9956671c6 100644 --- a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetAnonymousSuperMacro.java +++ b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetAnonymousSuperMacro.java @@ -40,7 +40,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils; import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import java.util.ArrayList; import java.util.LinkedHashSet; @@ -91,7 +91,7 @@ public class JetAnonymousSuperMacro extends Macro { JetExpression expression = PsiTreeUtil.getParentOfType(psiFile.findElementAt(context.getStartOffset()), JetExpression.class); if (expression == null) return null; - BindingContext bc = AnalyzerFacadeWithCache.getContextForElement(expression); + BindingContext bc = ResolvePackage.analyze(expression); JetScope scope = bc.get(BindingContext.RESOLUTION_SCOPE, expression); if (scope == null) return null; diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromCallWithConstructorCalleeActionFactory.kt b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromCallWithConstructorCalleeActionFactory.kt index 9a2aa53db96..b551e6b958c 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromCallWithConstructorCalleeActionFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromCallWithConstructorCalleeActionFactory.kt @@ -2,7 +2,6 @@ package org.jetbrains.jet.plugin.quickfix.createFromUsage.createClass import org.jetbrains.jet.lang.diagnostics.Diagnostic import com.intellij.codeInsight.intention.IntentionAction -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.plugin.quickfix.createFromUsage.callableBuilder.TypeInfo import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.types.Variance @@ -14,12 +13,11 @@ import org.jetbrains.jet.lang.psi.JetAnnotationEntry import org.jetbrains.jet.lang.psi.JetUserType import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.jet.lang.psi.JetDelegatorToSuperCall -import org.jetbrains.jet.lang.psi.JetDelegatorToThisCall import org.jetbrains.jet.lang.psi.JetCallElement import org.jetbrains.jet.lang.psi.psiUtil.isAncestor import org.jetbrains.jet.lang.psi.JetConstructorCalleeExpression -import org.jetbrains.jet.lang.psi.JetSimpleNameExpression import java.util.Collections +import org.jetbrains.jet.plugin.caches.resolve.analyze public object CreateClassFromCallWithConstructorCalleeActionFactory : JetSingleIntentionActionFactory() { override fun createAction(diagnostic: Diagnostic): IntentionAction? { @@ -42,7 +40,7 @@ public object CreateClassFromCallWithConstructorCalleeActionFactory : JetSingleI val typeRef = callee.getTypeReference() ?: return null val userType = typeRef.getTypeElement() as? JetUserType ?: return null - val context = AnalyzerFacadeWithCache.getContextForElement(userType) + val context = userType.analyze() val qualifier = userType.getQualifier()?.getReferenceExpression() val qualifierDescriptor = qualifier?.let { context[BindingContext.REFERENCE_TARGET, it] } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt index 307b7360dbb..ab36488b86b 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt @@ -12,8 +12,8 @@ import org.jetbrains.jet.plugin.quickfix.createFromUsage.callableBuilder.TypeInf import org.jetbrains.jet.lang.types.Variance import org.jetbrains.jet.lang.psi.JetDelegatorToSuperClass import org.jetbrains.jet.lang.psi.JetConstructorCalleeExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.utils.addToStdlib.singletonOrEmptyList +import org.jetbrains.jet.plugin.caches.resolve.analyze public object CreateClassFromTypeReferenceActionFactory: JetIntentionActionsFactory() { override fun doCreateActions(diagnostic: Diagnostic): List { @@ -28,7 +28,7 @@ public object CreateClassFromTypeReferenceActionFactory: JetIntentionActionsFact val traitExpected = typeRefParent is JetDelegatorToSuperClass - val context = AnalyzerFacadeWithCache.getContextForElement(userType) + val context = userType.analyze() val file = userType.getContainingFile() as? JetFile ?: return Collections.emptyList() diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateFunctionOrPropertyFromCallActionFactory.kt b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateFunctionOrPropertyFromCallActionFactory.kt index 53019ea3ead..58a346a6277 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateFunctionOrPropertyFromCallActionFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateFunctionOrPropertyFromCallActionFactory.kt @@ -9,7 +9,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns import org.jetbrains.jet.lang.psi.JetSimpleNameExpression import org.jetbrains.jet.lexer.JetTokens import org.jetbrains.jet.lang.psi.JetQualifiedExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.calls.callUtil.getCall import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue import org.jetbrains.jet.lang.resolve.scopes.receivers.Qualifier @@ -26,6 +25,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.psi.JetTypeReference import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.jet.lang.psi.JetAnnotationEntry +import org.jetbrains.jet.plugin.caches.resolve.analyze object CreateFunctionOrPropertyFromCallActionFactory : JetSingleIntentionActionFactory() { override fun createAction(diagnostic: Diagnostic): IntentionAction? { @@ -33,22 +33,22 @@ object CreateFunctionOrPropertyFromCallActionFactory : JetSingleIntentionActionF if (PsiTreeUtil.getParentOfType(diagElement, javaClass(), javaClass()) != null) return null val callExpr = when (diagnostic.getFactory()) { - in Errors.UNRESOLVED_REFERENCE_DIAGNOSTICS, Errors.EXPRESSION_EXPECTED_PACKAGE_FOUND -> { - val parent = diagElement.getParent() - if (parent is JetCallExpression && parent.getCalleeExpression() == diagElement) parent else diagElement - } + in Errors.UNRESOLVED_REFERENCE_DIAGNOSTICS, Errors.EXPRESSION_EXPECTED_PACKAGE_FOUND -> { + val parent = diagElement.getParent() + if (parent is JetCallExpression && parent.getCalleeExpression() == diagElement) parent else diagElement + } - Errors.NO_VALUE_FOR_PARAMETER, - Errors.TOO_MANY_ARGUMENTS -> diagElement.getParentByType(javaClass()) + Errors.NO_VALUE_FOR_PARAMETER, + Errors.TOO_MANY_ARGUMENTS -> diagElement.getParentByType(javaClass()) - else -> throw AssertionError("Unexpected diagnostic: ${diagnostic.getFactory()}") - } as? JetExpression ?: return null + else -> throw AssertionError("Unexpected diagnostic: ${diagnostic.getFactory()}") + } as? JetExpression ?: return null val calleeExpr = when (callExpr) { - is JetCallExpression -> callExpr.getCalleeExpression() - is JetSimpleNameExpression -> callExpr - else -> null - } as? JetSimpleNameExpression ?: return null + is JetCallExpression -> callExpr.getCalleeExpression() + is JetSimpleNameExpression -> callExpr + else -> null + } as? JetSimpleNameExpression ?: return null if (calleeExpr.getReferencedNameElementType() != JetTokens.IDENTIFIER) return null @@ -56,7 +56,7 @@ object CreateFunctionOrPropertyFromCallActionFactory : JetSingleIntentionActionF val fullCallExpr = if (callParent is JetQualifiedExpression && callParent.getSelectorExpression() == callExpr) callParent else callExpr - val context = AnalyzerFacadeWithCache.getContextForElement(callExpr) + val context = calleeExpr.analyze() val receiver = callExpr.getCall(context)?.getExplicitReceiver() val receiverType = when (receiver) { diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreatePropertyDelegateAccessorsActionFactory.kt b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreatePropertyDelegateAccessorsActionFactory.kt index 39c593e2603..3c2dba01352 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreatePropertyDelegateAccessorsActionFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreatePropertyDelegateAccessorsActionFactory.kt @@ -8,7 +8,6 @@ import org.jetbrains.jet.lang.types.Variance import org.jetbrains.jet.plugin.quickfix.createFromUsage.callableBuilder.ParameterInfo import org.jetbrains.jet.plugin.quickfix.createFromUsage.callableBuilder.FunctionInfo import org.jetbrains.jet.lang.psi.JetProperty -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.descriptors.PropertyDescriptor import org.jetbrains.jet.lang.psi.psiUtil.getParentByType @@ -17,11 +16,12 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns import org.jetbrains.jet.plugin.quickfix.createFromUsage.callableBuilder.CallableInfo import com.intellij.util.SmartList import org.jetbrains.jet.lang.descriptors.PropertyAccessorDescriptor +import org.jetbrains.jet.plugin.caches.resolve.analyze object CreatePropertyDelegateAccessorsActionFactory : JetSingleIntentionActionFactory() { override fun createAction(diagnostic: Diagnostic): IntentionAction? { val expression = diagnostic.getPsiElement() as? JetExpression ?: return null - val context = AnalyzerFacadeWithCache.getContextForElement(expression) + val context = expression.analyze() [suppress("UNCHECKED_CAST")] fun isApplicableForAccessor(accessor: PropertyAccessorDescriptor?): Boolean = diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateSetFunctionActionFactory.kt b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateSetFunctionActionFactory.kt index 82d2af6e748..c988eb481e2 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateSetFunctionActionFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/createFromUsage/createFunction/CreateSetFunctionActionFactory.kt @@ -15,8 +15,8 @@ import org.jetbrains.jet.lang.psi.JetOperationExpression import org.jetbrains.jet.lang.psi.JetUnaryExpression import org.jetbrains.jet.lang.types.expressions.OperatorConventions import org.jetbrains.jet.lang.resolve.calls.callUtil.getResolvedCall -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.types.ErrorUtils +import org.jetbrains.jet.plugin.caches.resolve.analyze object CreateSetFunctionActionFactory : JetSingleIntentionActionFactory() { override fun createAction(diagnostic: Diagnostic): IntentionAction? { @@ -38,7 +38,7 @@ object CreateSetFunctionActionFactory : JetSingleIntentionActionFactory() { is JetUnaryExpression -> { if (assignmentExpr.getOperationToken() !in OperatorConventions.INCREMENT_OPERATIONS) return null - val context = AnalyzerFacadeWithCache.getContextForElement(assignmentExpr) + val context = assignmentExpr.analyze() val rhsType = assignmentExpr.getResolvedCall(context)?.getResultingDescriptor()?.getReturnType() TypeInfo(if (rhsType == null || ErrorUtils.containsErrorType(rhsType)) builtIns.getAnyType() else rhsType, Variance.IN_VARIANCE) } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameSuggester.java b/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameSuggester.java index 24e080775a3..5a09ce2e146 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameSuggester.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameSuggester.java @@ -33,7 +33,7 @@ import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.lexer.JetLexer; import org.jetbrains.jet.lexer.JetTokens; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import java.util.ArrayList; import java.util.regex.Matcher; @@ -67,7 +67,7 @@ public class JetNameSuggester { public static @NotNull String[] suggestNames(@NotNull JetExpression expression, @NotNull JetNameValidator validator, @Nullable String defaultName) { ArrayList result = new ArrayList(); - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(expression); + BindingContext bindingContext = ResolvePackage.analyze(expression); JetType jetType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression); if (jetType != null) { addNamesForType(result, jetType, validator); diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java b/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java index 4cd38e75ede..3d1ab7907d4 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java @@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.psi.JetVisitorVoid; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import java.util.HashSet; import java.util.Set; @@ -72,7 +72,7 @@ public class JetNameValidatorImpl extends JetNameValidator { private boolean checkElement(String name, PsiElement sibling, final Set visitedScopes) { if (!(sibling instanceof JetElement)) return true; - final BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement((JetElement) sibling); + final BindingContext bindingContext = ResolvePackage.analyze((JetElement) sibling); final Name identifier = Name.identifier(name); final Ref result = new Ref(true); diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java b/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java index 66e1739adc6..f3c7d87a448 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java @@ -51,9 +51,9 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; 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.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils; import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers; import org.jetbrains.jet.plugin.util.string.StringPackage; import org.jetbrains.jet.renderer.DescriptorRenderer; @@ -127,7 +127,7 @@ public class JetRefactoringUtil { @Nullable Collection ignore, @NotNull String actionStringKey ) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(declaration); + BindingContext bindingContext = ResolvePackage.analyze(declaration); CallableDescriptor declarationDescriptor = (CallableDescriptor)bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, declaration); @@ -262,7 +262,7 @@ public class JetRefactoringUtil { PsiElement originalDeclaration = AsJavaPackage.getUnwrapped(method); if (originalDeclaration instanceof JetDeclaration) { JetDeclaration jetDeclaration = (JetDeclaration) originalDeclaration; - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(jetDeclaration); + BindingContext bindingContext = ResolvePackage.analyze(jetDeclaration); DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, jetDeclaration); if (descriptor != null) return formatFunctionDescriptor(descriptor); @@ -272,7 +272,7 @@ public class JetRefactoringUtil { @NotNull public static String formatClass(@NotNull JetClassOrObject classOrObject) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(classOrObject); + BindingContext bindingContext = ResolvePackage.analyze(classOrObject); DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, classOrObject); if (descriptor instanceof ClassDescriptor) return formatClassDescriptor(descriptor); @@ -425,7 +425,7 @@ public class JetRefactoringUtil { } if (addExpression) { JetExpression expression = (JetExpression)element; - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(expression); + BindingContext bindingContext = ResolvePackage.analyze(expression); JetType expressionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression); if (expressionType == null || !KotlinBuiltIns.getInstance().isUnit(expressionType)) { expressions.add(expression); diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java index 2323c66dc55..39c8c79b58e 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java @@ -32,10 +32,13 @@ import com.intellij.refactoring.util.CommonRefactoringUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; -import org.jetbrains.jet.lang.descriptors.*; +import org.jetbrains.jet.lang.descriptors.ClassDescriptor; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; +import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; +import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle; import java.util.Collection; @@ -74,7 +77,7 @@ public class JetChangeSignatureHandler implements ChangeSignatureHandler { JetElement jetElement = PsiTreeUtil.getParentOfType(element, JetElement.class); if (jetElement == null) return null; - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(jetElement); + BindingContext bindingContext = ResolvePackage.analyze(jetElement); DeclarationDescriptor descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, (JetSimpleNameExpression) receiverExpr); @@ -92,7 +95,7 @@ public class JetChangeSignatureHandler implements ChangeSignatureHandler { @NotNull Project project, @Nullable Editor editor ) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(element); + BindingContext bindingContext = ResolvePackage.analyze(element); FunctionDescriptor functionDescriptor = findDescriptor(element, project, editor, bindingContext); if (functionDescriptor == null) { return; diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java index d96cd55c81c..87a9d777caa 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java @@ -41,7 +41,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.refactoring.changeSignature.usages.JetFunctionCallUsage; import org.jetbrains.jet.plugin.refactoring.changeSignature.usages.JetFunctionDefinitionUsage; import org.jetbrains.jet.plugin.refactoring.changeSignature.usages.JetParameterUsage; @@ -129,7 +129,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro JetChangeInfo changeInfo = (JetChangeInfo) info; PsiElement function = info.getMethod(); PsiElement element = function != null ? function : changeInfo.getContext(); - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement((JetElement) element); + BindingContext bindingContext = ResolvePackage.analyze((JetElement) element); FunctionDescriptor oldDescriptor = changeInfo.getOldDescriptor(); JetScope parametersScope = null; DeclarationDescriptor containingDeclaration = oldDescriptor != null ? oldDescriptor.getContainingDeclaration() : null; diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetParameterInfo.java b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetParameterInfo.java index 9ea98d0ed0d..ebd98b65a2e 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetParameterInfo.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetParameterInfo.java @@ -22,7 +22,6 @@ import com.intellij.refactoring.changeSignature.ParameterInfo; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.JetExpression; -import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFunction; import org.jetbrains.jet.lang.psi.JetParameter; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -30,7 +29,7 @@ import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lexer.JetTokens; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.renderer.DescriptorRenderer; import java.util.List; @@ -91,7 +90,7 @@ public class JetParameterInfo implements ParameterInfo { String inheritedParamName = inheritedParam.getName(); if (oldParam.getName().equals(inheritedParamName)) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(inheritedJetFunction); + BindingContext bindingContext = ResolvePackage.analyze(inheritedJetFunction); JetScope parametersScope = JetChangeSignatureUsageProcessor.getFunctionBodyScope(inheritedJetFunction, bindingContext); if (parametersScope != null && parametersScope.getLocalVariable(Name.identifier(name)) == null) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt index 0c698333458..f24b03fa9fb 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt @@ -42,7 +42,6 @@ import org.jetbrains.jet.utils.DFS import org.jetbrains.jet.utils.DFS.* import com.intellij.refactoring.util.RefactoringUIUtil import com.intellij.util.containers.MultiMap -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.diagnostics.Errors import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.Status import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.ErrorMessage @@ -67,6 +66,7 @@ import org.jetbrains.jet.plugin.refactoring.extractFunction.OutputValueBoxer.AsL import org.jetbrains.jet.plugin.refactoring.getContextForContainingDeclarationBody import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers import org.jetbrains.jet.plugin.caches.resolve.findModuleDescriptor +import org.jetbrains.jet.plugin.caches.resolve.analyze private val DEFAULT_FUNCTION_NAME = "myFun" private val DEFAULT_RETURN_TYPE = KotlinBuiltIns.getInstance().getUnitType() @@ -776,7 +776,7 @@ fun ExtractableCodeDescriptor.validate(): ExtractableCodeDescriptorWithConflicts val result = generateDeclaration(ExtractionGeneratorOptions(inTempFile = true)) val valueParameterList = (result.declaration as? JetNamedFunction)?.getValueParameterList() - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(result.declaration.getGeneratedBlockBody()) + val bindingContext = result.declaration.getGeneratedBlockBody().analyze() for ((originalOffset, resolveResult) in extractionData.refOffsetToDeclaration) { if (resolveResult.declaration.isInsideOf(extractionData.originalElements)) continue diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java b/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java index 60ab537a773..7ac65f74431 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/inline/KotlinInlineValHandler.java @@ -62,7 +62,6 @@ import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.codeInsight.ShortenReferences; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers; import java.util.List; @@ -231,7 +230,7 @@ public class KotlinInlineValHandler extends InlineActionHandler { return null; } - BindingContext context = AnalyzerFacadeWithCache.getContextForElement(initializer); + BindingContext context = ResolvePackage.analyze(initializer); SimpleFunctionDescriptor fun = context.get(BindingContext.FUNCTION, functionLiteralExpression.getFunctionLiteral()); if (fun == null || ErrorUtils.containsErrorType(fun)) { return null; @@ -343,7 +342,7 @@ public class KotlinInlineValHandler extends InlineActionHandler { @Nullable private static String getTypeArgumentsStringForCall(@NotNull JetExpression initializer) { - BindingContext context = AnalyzerFacadeWithCache.getContextForElement(initializer); + BindingContext context = ResolvePackage.analyze(initializer); ResolvedCall call = CallUtilPackage.getResolvedCall(initializer, context); if (call == null) return null; diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt index 5bb5081593e..a28ff681f98 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt @@ -59,7 +59,6 @@ import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.psi.psiUtil.getParentByType import org.jetbrains.jet.lang.psi.psiUtil.isAncestor import com.intellij.psi.PsiNamedElement -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.descriptors.FunctionDescriptor import org.jetbrains.jet.renderer.DescriptorRenderer import com.intellij.openapi.util.text.StringUtil @@ -299,7 +298,7 @@ public fun chooseContainerElement( private fun JetElement.renderDeclaration(): String? { val name = renderName() - val descriptor = AnalyzerFacadeWithCache.getContextForElement(this)[BindingContext.DECLARATION_TO_DESCRIPTOR, this] + val descriptor = this.analyze()[BindingContext.DECLARATION_TO_DESCRIPTOR, this] val params = (descriptor as? FunctionDescriptor)?.let { descriptor -> descriptor.getValueParameters() .map { DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(it.getType()) } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/move/MoveJavaInnerClassKotlinUsagesHandler.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/move/MoveJavaInnerClassKotlinUsagesHandler.kt index 8ad7fb341d7..a5de61670b7 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/move/MoveJavaInnerClassKotlinUsagesHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/move/MoveJavaInnerClassKotlinUsagesHandler.kt @@ -21,12 +21,8 @@ import com.intellij.usageView.UsageInfo import com.intellij.psi.PsiClass import org.jetbrains.jet.lang.psi.JetQualifiedExpression import org.jetbrains.jet.lang.psi.psiUtil.getQualifiedElementSelector -import org.jetbrains.jet.lang.psi.JetReferenceExpression -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache -import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.psi.JetCallExpression import org.jetbrains.jet.lang.psi.JetPsiFactory -import java.util.Collections import java.util.ArrayList import org.jetbrains.jet.lang.psi.JetSimpleNameExpression import com.intellij.psi.util.PsiTreeUtil diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/rename/RenameKotlinPropertyProcessor.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/rename/RenameKotlinPropertyProcessor.kt index f1586fd602d..f831af8d688 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/rename/RenameKotlinPropertyProcessor.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/rename/RenameKotlinPropertyProcessor.kt @@ -33,7 +33,6 @@ import com.intellij.usageView.UsageInfo import com.intellij.refactoring.listeners.RefactoringElementListener import com.intellij.openapi.editor.Editor import org.jetbrains.jet.lexer.JetTokens -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.psi.JetClassOrObject import com.intellij.openapi.ui.Messages @@ -42,6 +41,7 @@ import org.jetbrains.jet.asJava.namedUnwrappedElement import org.jetbrains.jet.lang.resolve.OverrideResolver import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils import org.jetbrains.jet.plugin.util.application.runReadAction +import org.jetbrains.jet.plugin.caches.resolve.analyze public class RenameKotlinPropertyProcessor : RenamePsiElementProcessor() { override fun canProcessElement(element: PsiElement): Boolean = element.namedUnwrappedElement is JetProperty @@ -170,7 +170,7 @@ public class RenameKotlinPropertyProcessor : RenamePsiElementProcessor() { private fun findDeepestOverriddenProperty(jetProperty: JetProperty): JetProperty? { if (jetProperty.getModifierList()?.hasModifier(JetTokens.OVERRIDE_KEYWORD) == true) { - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(jetProperty) + val bindingContext = jetProperty.analyze() val descriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, jetProperty] if (descriptor != null) { diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt index 5dc6fae8bc6..2240438d439 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt @@ -16,25 +16,21 @@ package org.jetbrains.jet.plugin.refactoring.safeDelete -import com.intellij.psi.PsiElement import com.intellij.psi.PsiMethod import com.intellij.psi.PsiParameter import com.intellij.psi.PsiReference -import com.intellij.psi.util.PsiTreeUtil import com.intellij.refactoring.safeDelete.JavaSafeDeleteDelegate import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceSimpleDeleteUsageInfo import com.intellij.usageView.UsageInfo import org.jetbrains.jet.asJava.unwrapped -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor import org.jetbrains.jet.lang.psi.* import org.jetbrains.jet.lang.resolve.BindingContext -import org.jetbrains.jet.lang.resolve.BindingContextUtils -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.plugin.references.JetReference import org.jetbrains.jet.lang.psi.psiUtil.getParentByType import org.jetbrains.jet.lang.psi.psiUtil.isAncestor import org.jetbrains.jet.lang.psi.psiUtil.parameterIndex import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils +import org.jetbrains.jet.plugin.caches.resolve.analyze public class KotlinJavaSafeDeleteDelegate : JavaSafeDeleteDelegate { override fun createUsageInfoForParameter( @@ -50,7 +46,7 @@ public class KotlinJavaSafeDeleteDelegate : JavaSafeDeleteDelegate { val calleeExpression = callExpression.getCalleeExpression() if (!(calleeExpression is JetReferenceExpression && calleeExpression.isAncestor(element))) return - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(element) + val bindingContext = element.analyze() val descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, calleeExpression) if (descriptor == null) return diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinOverridingDialog.java b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinOverridingDialog.java index 32e3fda5ca3..4a86d0bfb81 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinOverridingDialog.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinOverridingDialog.java @@ -36,10 +36,13 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.psi.JetElement; +import org.jetbrains.jet.lang.psi.JetNamedFunction; +import org.jetbrains.jet.lang.psi.JetProperty; +import org.jetbrains.jet.lang.psi.JetPsiUtil; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.refactoring.JetRefactoringUtil; import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers; import org.jetbrains.jet.renderer.DescriptorRenderer; @@ -90,7 +93,7 @@ class KotlinOverridingDialog extends DialogWrapper { private static String formatElement(PsiElement element) { element = JetPsiUtil.ascendIfPropertyAccessor(element); if (element instanceof JetNamedFunction || element instanceof JetProperty) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement((JetElement) element); + BindingContext bindingContext = ResolvePackage.analyze((JetElement) element); DeclarationDescriptor declarationDescriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, element); if (declarationDescriptor instanceof CallableMemberDescriptor) { diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt index 50604aad9ee..c28be5e209a 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt @@ -39,12 +39,12 @@ import org.jetbrains.jet.lang.psi.* import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lexer.JetTokens import org.jetbrains.jet.plugin.JetBundle -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.plugin.refactoring.JetRefactoringUtil import org.jetbrains.jet.plugin.references.JetReference import java.util.* import org.jetbrains.jet.lang.psi.psiUtil.getParentByType import org.jetbrains.jet.lang.psi.psiUtil.deleteElementAndCleanParent +import org.jetbrains.jet.plugin.caches.resolve.analyze public class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { override fun handlesElement(element: PsiElement): Boolean = element.canDeleteElement() @@ -208,7 +208,7 @@ public class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { val modifierList = jetClass.getModifierList() if (modifierList != null && modifierList.hasModifier(JetTokens.ABSTRACT_KEYWORD)) return null - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(element as JetElement) + val bindingContext = (element as JetElement).analyze() val declarationDescriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, element) if (declarationDescriptor !is CallableMemberDescriptor) return null diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteImportDirectiveUsageInfo.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteImportDirectiveUsageInfo.kt index 3d11f14bec9..d7ce5d295ac 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteImportDirectiveUsageInfo.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteImportDirectiveUsageInfo.kt @@ -17,10 +17,9 @@ package org.jetbrains.jet.plugin.refactoring.safeDelete import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceSimpleDeleteUsageInfo -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor import org.jetbrains.jet.lang.psi.* import org.jetbrains.jet.lang.resolve.BindingContext -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache +import org.jetbrains.jet.plugin.caches.resolve.analyze public class SafeDeleteImportDirectiveUsageInfo( importDirective: JetImportDirective, declaration: JetDeclaration @@ -39,7 +38,7 @@ fun JetImportDirective.isSafeToDelete(declaration: JetDeclaration): Boolean { } if (importReference != null) { - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(importReference) + val bindingContext = importReference.analyze() val referenceDescriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, importReference) val declarationDescriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, declaration) return referenceDescriptor == declarationDescriptor diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java index 2353be2ef4d..97e46b48ec0 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java @@ -43,7 +43,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.plugin.MainFunctionDetector; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.stubindex.JetTopLevelFunctionsFqnNameIndex; import java.util.*; @@ -271,7 +271,7 @@ public class JetRunConfiguration extends ModuleBasedConfiguration mainFunctions = JetTopLevelFunctionsFqnNameIndex.getInstance().get( mainFunFqName, module.getProject(), module.getModuleRuntimeScope(true)); for (JetNamedFunction function : mainFunctions) { - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(function); + BindingContext bindingContext = ResolvePackage.analyze(function); MainFunctionDetector mainFunctionDetector = new MainFunctionDetector(bindingContext); if (mainFunctionDetector.isMain(function)) { return function; diff --git a/idea/tests/org/jetbrains/jet/completion/DataFlowValueRenderingTest.kt b/idea/tests/org/jetbrains/jet/completion/DataFlowValueRenderingTest.kt index 1b11415e5d8..053cdbfae73 100644 --- a/idea/tests/org/jetbrains/jet/completion/DataFlowValueRenderingTest.kt +++ b/idea/tests/org/jetbrains/jet/completion/DataFlowValueRenderingTest.kt @@ -17,9 +17,7 @@ package org.jetbrains.jet.completion import org.jetbrains.jet.plugin.PluginTestCaseBase -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache import org.jetbrains.jet.lang.psi.JetFile -import org.jetbrains.jet.lang.resolve.BindingContext import org.jetbrains.jet.lang.psi.JetExpression import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.jet.plugin.completion.renderDataFlowValue @@ -30,6 +28,7 @@ import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase import com.intellij.testFramework.LightProjectDescriptor import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import org.jetbrains.jet.lang.resolve.bindingContextUtil.getDataFlowInfo +import org.jetbrains.jet.plugin.caches.resolve.analyze public abstract class AbstractDataFlowValueRenderingTest: JetLightCodeInsightFixtureTestCase() { override fun getTestDataPath() : String { @@ -47,7 +46,7 @@ public abstract class AbstractDataFlowValueRenderingTest: JetLightCodeInsightFix val jetFile = fixture.getFile() as JetFile val element = jetFile.findElementAt(fixture.getCaretOffset()) val expression = PsiTreeUtil.getParentOfType(element, javaClass())!! - val info = AnalyzerFacadeWithCache.getContextForElement(expression).getDataFlowInfo(expression) + val info = expression.analyze().getDataFlowInfo(expression) val allValues = (info.getCompleteTypeInfo().keySet() + info.getCompleteNullabilityInfo().keySet()).toSet() val actual = allValues.map { renderDataFlowValue(it) }.filterNotNull().sort().makeString("\n") diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractInsertImportOnPasteTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractInsertImportOnPasteTest.java index 29ac2de5b33..a628da812eb 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractInsertImportOnPasteTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractInsertImportOnPasteTest.java @@ -33,7 +33,6 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase; import org.jetbrains.jet.plugin.PluginTestCaseBase; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import java.io.File; import java.util.List; @@ -112,7 +111,7 @@ public abstract class AbstractInsertImportOnPasteTest extends JetLightCodeInsigh DebugInfoUtil.markDebugAnnotations(file, bindingContext, new DebugInfoUtil.DebugInfoReporter() { @Override public void preProcessReference(@NotNull JetReferenceExpression expression) { - AnalyzerFacadeWithCache.getContextForElement(expression); + ResolvePackage.analyze(expression); } @Override diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java index 433e309f53a..993c6fdab38 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java @@ -33,7 +33,7 @@ import org.jetbrains.jet.lang.resolve.dataClassUtils.DataClassUtilsPackage; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.KotlinCodeInsightTestCase; import org.jetbrains.jet.plugin.PluginTestCaseBase; -import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle; import java.io.File; @@ -235,7 +235,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase { return true; } }; - BindingContext context = AnalyzerFacadeWithCache.getContextForElement(method); + BindingContext context = ResolvePackage.analyze(method); ChangeSignaturePackage .runChangeSignature(getProject(), changeInfo.getOldDescriptor(), empty, context, method, "test"); @@ -298,7 +298,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase { JetElement element = (JetElement) new JetChangeSignatureHandler().findTargetMember(file, editor); assertNotNull("Target element is null", element); - BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(element); + BindingContext bindingContext = ResolvePackage.analyze(element); PsiElement context = file.findElementAt(editor.getCaretModel().getOffset()); assertNotNull(context);