From d98825683105e593ef34fbff780f6f84ecbc5162 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 8 Jul 2014 18:17:04 +0400 Subject: [PATCH] Refactor: Remove context parameter from BindingContextUtils.descriptorToDeclaration utilities family --- .../jet/codegen/AnnotationCodegen.java | 2 +- .../codegen/DefaultParameterValueLoader.java | 2 +- .../jet/codegen/ExpressionCodegen.java | 4 +-- .../jet/codegen/FunctionCodegen.java | 6 ++-- .../codegen/ImplementationBodyCodegen.java | 2 +- .../jet/codegen/binding/CodegenBinding.java | 4 +-- .../codegen/binding/PsiCodegenPredictor.java | 6 ++-- .../jet/codegen/inline/InlineCodegen.java | 4 +-- .../jet/codegen/inline/InlineCodegenUtil.java | 6 ++-- ...FactoryForDuplicateSignatureDiagnostics.kt | 6 ++-- .../jet/codegen/state/JetTypeMapper.java | 4 +-- .../messages/AnalyzerWithCompilerReport.java | 2 +- .../CliLightClassGenerationSupport.java | 2 +- .../lang/cfg/JetFlowInformationProvider.java | 4 +-- .../jet/lang/diagnostics/DiagnosticUtils.java | 6 ++-- .../jet/lang/resolve/BindingContext.java | 4 +-- .../jet/lang/resolve/BindingContextUtils.java | 34 ++++++++----------- .../jet/lang/resolve/DeclarationResolver.java | 10 +++--- .../jet/lang/resolve/DeclarationsChecker.java | 5 ++- .../lang/resolve/InlineDescriptorUtils.java | 2 +- .../jet/lang/resolve/LibrarySourceHacks.java | 9 +++-- .../jet/lang/resolve/OverloadResolver.java | 3 +- .../jet/lang/resolve/OverrideResolver.java | 18 ++++------ .../TraceBasedRedeclarationHandler.java | 2 +- .../lang/resolve/TypeHierarchyResolver.java | 2 +- .../tasks/CallableDescriptorCollectors.java | 6 ++-- .../descriptors/LazyClassMemberScope.java | 3 +- .../ControlStructureTypingVisitor.java | 5 ++- .../expressions/ExpressionTypingUtils.java | 4 +-- .../lang/types/expressions/LabelResolver.java | 4 +-- .../asJava/KotlinJavaFileStubProvider.java | 6 ++-- .../jet/resolve/ExpectedResolveData.java | 2 +- .../constraintSystem/MyDeclarations.kt | 4 +-- .../JetAddFunctionToClassifierAction.java | 18 ++-------- .../DescriptorToDeclarationUtil.java | 21 ++++-------- .../codeInsight/GotoSuperActionHandler.java | 4 +-- .../JetTypeDeclarationProvider.java | 2 +- .../OverrideImplementMethodsHandler.java | 11 +++--- .../completion/DescriptorLookupConverter.java | 13 +++---- .../completion/JetCompletionResultSet.java | 4 +-- .../completion/JetPackagesContributor.java | 8 +++-- .../completion/smart/SmartCompletion.kt | 6 ++-- .../plugin/completion/smart/StaticMembers.kt | 2 +- .../jet/plugin/completion/smart/ThisItems.kt | 2 +- .../smart/TypeInstantiationItems.kt | 6 ++-- .../jet/plugin/completion/smart/Utils.kt | 4 +-- .../debugger/KotlinSmartStepIntoHandler.kt | 6 ++-- .../calls/CalleeReferenceVisitorBase.java | 2 +- .../highlighter/JetLineMarkerProvider.java | 2 +- ...icitFunctionLiteralParamWithItIntention.kt | 3 +- ...thExplicitFunctionLiteralParamIntention.kt | 3 +- .../macro/BaseJetVariableMacro.java | 2 +- .../macro/JetAnonymousSuperMacro.java | 2 +- .../JetFunctionParameterInfoHandler.java | 12 +++---- .../quickfix/AddFunctionToSupertypeFix.java | 4 +-- .../quickfix/ChangeFunctionReturnTypeFix.java | 8 ++--- .../quickfix/ChangeFunctionSignatureFix.java | 3 +- .../quickfix/ChangeVariableMutabilityFix.java | 2 +- .../quickfix/ChangeVariableTypeFix.java | 4 +-- .../quickfix/CreateFunctionFromUsageFix.kt | 10 +++--- .../quickfix/MakeOverriddenMemberOpenFix.java | 2 +- .../QuickFixFactoryForTypeMismatchError.java | 10 +++--- .../jet/plugin/quickfix/QuickFixUtil.java | 6 ++-- .../refactoring/JetRefactoringUtil.java | 18 +++------- .../changeSignature/JetChangeSignature.kt | 4 +-- .../JetChangeSignatureData.java | 6 +--- .../JetChangeSignatureUsageProcessor.java | 8 ++--- .../extractFunction/ExtractionData.kt | 4 +-- .../extractFunction/extractFunctionUtils.kt | 20 +++++------ ...MoveKotlinTopLevelDeclarationsProcessor.kt | 2 +- .../jet/plugin/refactoring/move/moveUtils.kt | 2 +- .../rename/RenameKotlinPropertyProcessor.kt | 2 +- .../KotlinJavaSafeDeleteDelegate.kt | 2 +- .../safeDelete/KotlinSafeDeleteProcessor.kt | 8 ++--- .../references/BuiltInsReferenceResolver.java | 6 +--- .../jet/plugin/references/JetReference.kt | 10 +++--- .../jet/plugin/search/usagesSearch/utils.kt | 2 +- .../KotlinInheritedMembersNodeProvider.kt | 2 +- .../AbstractOverrideImplementTest.java | 11 +++--- .../refactoring/rename/AbstractRenameTest.kt | 2 +- .../k2js/translate/callTranslator/CallInfo.kt | 2 +- .../k2js/translate/context/StaticContext.java | 7 ++-- .../expression/FunctionTranslator.java | 3 +- .../InlinedCallExpressionTranslator.java | 2 +- .../k2js/translate/utils/BindingUtils.java | 31 +++++++---------- .../translate/utils/ErrorReportingUtils.java | 14 ++------ .../utils/FunctionBodyTranslator.java | 2 +- 87 files changed, 225 insertions(+), 310 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java index 4c01aec2443..fae82d8de22 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java @@ -105,7 +105,7 @@ public abstract class AnnotationCodegen { psiElement = null; } else { - psiElement = descriptorToDeclaration(bindingContext, (DeclarationDescriptor) annotated); + psiElement = descriptorToDeclaration((DeclarationDescriptor) annotated); } JetModifierList modifierList = null; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/DefaultParameterValueLoader.java b/compiler/backend/src/org/jetbrains/jet/codegen/DefaultParameterValueLoader.java index 75db958ee06..9007697c0d6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/DefaultParameterValueLoader.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/DefaultParameterValueLoader.java @@ -32,7 +32,7 @@ public interface DefaultParameterValueLoader { ValueParameterDescriptor descriptor, ExpressionCodegen codegen ) { - JetParameter jetParameter = (JetParameter) descriptorToDeclaration(codegen.getBindingContext(), descriptor); + JetParameter jetParameter = (JetParameter) descriptorToDeclaration(descriptor); assert jetParameter != null; Type propertyType = codegen.typeMapper.mapType(descriptor.getType()); codegen.gen(jetParameter.getDefaultValue(), propertyType); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 396fb4db8f8..19c316ba033 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1614,13 +1614,13 @@ public class ExpressionCodegen extends JetVisitor implem if (expression.getLabelName() == null) { //non labeled return couldn't be local in lambda FunctionDescriptor containingFunction = - BindingContextUtils.getContainingFunctionSkipFunctionLiterals(bindingContext, descriptor, true).getFirst(); + BindingContextUtils.getContainingFunctionSkipFunctionLiterals(descriptor, true).getFirst(); //ROOT_LABEL to prevent clashing with existing labels return new NonLocalReturnInfo(typeMapper.mapReturnType(containingFunction), InlineCodegenUtil.ROOT_LABEL); } PsiElement element = bindingContext.get(LABEL_TARGET, expression.getTargetLabel()); - if (element != callableDescriptorToDeclaration(bindingContext, context.getContextDescriptor())) { + if (element != callableDescriptorToDeclaration(context.getContextDescriptor())) { DeclarationDescriptor elementDescriptor = typeMapper.getBindingContext().get(DECLARATION_TO_DESCRIPTOR, element); assert element != null : "Expression should be not null " + expression.getText(); assert elementDescriptor != null : "Descriptor should be not null: " + element.getText(); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index 6d859f6d627..8271c15d2fb 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -450,7 +450,7 @@ public class FunctionCodegen extends ParentCodegenAware { ); if (!bridgesToGenerate.isEmpty()) { - PsiElement origin = descriptor.getKind() == DECLARATION ? callableDescriptorToDeclaration(bindingContext, descriptor) : null; + PsiElement origin = descriptor.getKind() == DECLARATION ? callableDescriptorToDeclaration(descriptor) : null; for (Bridge bridge : bridgesToGenerate) { generateBridge(origin, descriptor, bridge.getFrom(), bridge.getTo()); } @@ -570,7 +570,7 @@ public class FunctionCodegen extends ParentCodegenAware { if (this.owner instanceof PackageFacadeContext) { mv.visitCode(); generateStaticDelegateMethodBody(mv, defaultMethod, (PackageFacadeContext) this.owner); - endVisit(mv, "default method delegation", callableDescriptorToDeclaration(state.getBindingContext(), functionDescriptor)); + endVisit(mv, "default method delegation", callableDescriptorToDeclaration(functionDescriptor)); } else { generateDefaultImpl(owner, signature, functionDescriptor, isStatic(kind), mv, loadStrategy, function); @@ -589,7 +589,7 @@ public class FunctionCodegen extends ParentCodegenAware { ) { mv.visitCode(); generateDefaultImplBody(methodContext, signature, functionDescriptor, isStatic, mv, loadStrategy, function, getParentCodegen(), state); - endVisit(mv, "default method", callableDescriptorToDeclaration(state.getBindingContext(), functionDescriptor)); + endVisit(mv, "default method", callableDescriptorToDeclaration(functionDescriptor)); } public static void generateDefaultImplBody( diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 48e97a859cf..7beba57edfb 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -1530,7 +1530,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { private void generateDelegationToTraitImpl(@NotNull final FunctionDescriptor traitFun, @NotNull FunctionDescriptor inheritedFun) { functionCodegen.generateMethod( - DelegationToTraitImpl(descriptorToDeclaration(bindingContext, traitFun), traitFun), + DelegationToTraitImpl(descriptorToDeclaration(traitFun), traitFun), typeMapper.mapSignature(inheritedFun), inheritedFun, new FunctionGenerationStrategy.CodegenBased(state, inheritedFun) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenBinding.java b/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenBinding.java index 5df29c9d41e..71ad9363e59 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenBinding.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenBinding.java @@ -186,7 +186,7 @@ public class CodegenBinding { MutableClosure closure = new MutableClosure(superCall, enclosing, enclosingReceiver); - assert PsiCodegenPredictor.checkPredictedNameFromPsi(bindingTrace.getBindingContext(), classDescriptor, asmType); + assert PsiCodegenPredictor.checkPredictedNameFromPsi(classDescriptor, asmType); bindingTrace.record(ASM_TYPE, classDescriptor, asmType); bindingTrace.record(CLOSURE, classDescriptor, closure); @@ -290,7 +290,7 @@ public class CodegenBinding { } Type asmType = Type.getObjectType(getAsmTypeImpl(bindingContext, klass)); - assert PsiCodegenPredictor.checkPredictedNameFromPsi(bindingContext, klass, asmType); + assert PsiCodegenPredictor.checkPredictedNameFromPsi(klass, asmType); return asmType; } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java b/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java index 09947049a9f..944b00f299a 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java @@ -48,10 +48,8 @@ public final class PsiCodegenPredictor { private PsiCodegenPredictor() { } - public static boolean checkPredictedNameFromPsi( - @NotNull BindingContext bindingContext, @NotNull DeclarationDescriptor descriptor, @Nullable Type nameFromDescriptors - ) { - PsiElement element = descriptorToDeclaration(bindingContext, descriptor); + public static boolean checkPredictedNameFromPsi(@NotNull DeclarationDescriptor descriptor, @Nullable Type nameFromDescriptors) { + PsiElement element = descriptorToDeclaration(descriptor); if (element instanceof JetDeclaration) { String classNameFromPsi = getPredefinedJvmInternalName((JetDeclaration) element); assert classNameFromPsi == null || Type.getObjectType(classNameFromPsi).equals(nameFromDescriptors) : diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegen.java index c608e2904ee..922c9953fa4 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegen.java @@ -126,7 +126,7 @@ public class InlineCodegen implements CallGenerator { } catch (Exception e) { boolean generateNodeText = !(e instanceof InlineException); - PsiElement element = BindingContextUtils.descriptorToDeclaration(bindingContext, this.codegen.getContext().getContextDescriptor()); + PsiElement element = BindingContextUtils.descriptorToDeclaration(this.codegen.getContext().getContextDescriptor()); throw new CompilationException("Couldn't inline method call '" + functionDescriptor.getName() + "' into \n" + (element != null ? element.getText() : "null psi element " + this.codegen.getContext().getContextDescriptor()) + @@ -165,7 +165,7 @@ public class InlineCodegen implements CallGenerator { } } else { - PsiElement element = BindingContextUtils.descriptorToDeclaration(bindingContext, functionDescriptor); + PsiElement element = BindingContextUtils.descriptorToDeclaration(functionDescriptor); if (element == null) { throw new RuntimeException("Couldn't find declaration for function " + descriptorName(functionDescriptor)); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java index 5794acc3b8c..27c9f4595a2 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java @@ -155,7 +155,7 @@ public class InlineCodegenUtil { private static String getInlineName(@NotNull CodegenContext codegenContext, @NotNull DeclarationDescriptor currentDescriptor, @NotNull JetTypeMapper typeMapper) { if (currentDescriptor instanceof PackageFragmentDescriptor) { - PsiFile file = getContainingFile(codegenContext, typeMapper); + PsiFile file = getContainingFile(codegenContext); Type packagePartType; if (file == null) { @@ -245,9 +245,9 @@ public class InlineCodegenUtil { } @Nullable - public static PsiFile getContainingFile(CodegenContext codegenContext, JetTypeMapper typeMapper) { + public static PsiFile getContainingFile(CodegenContext codegenContext) { DeclarationDescriptor contextDescriptor = codegenContext.getContextDescriptor(); - PsiElement psiElement = BindingContextUtils.descriptorToDeclaration(typeMapper.getBindingContext(), contextDescriptor); + PsiElement psiElement = BindingContextUtils.descriptorToDeclaration(contextDescriptor); if (psiElement != null) { return psiElement.getContainingFile(); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt b/compiler/backend/src/org/jetbrains/jet/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt index 0c2512666e7..6bbefcc8091 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt @@ -34,7 +34,7 @@ import org.jetbrains.jet.lang.resolve.java.descriptor.SamAdapterDescriptor class BuilderFactoryForDuplicateSignatureDiagnostics( builderFactory: ClassBuilderFactory, - private val bindingContext: BindingContext, + bindingContext: BindingContext, private val diagnostics: DiagnosticHolder ) : SignatureCollectingClassBuilderFactory(builderFactory) { @@ -79,9 +79,9 @@ class BuilderFactoryForDuplicateSignatureDiagnostics( if (member.getKind() != DELEGATION) { // Delegates don't have declarations in the code - memberElement = BindingContextUtils.callableDescriptorToDeclaration(bindingContext, member) + memberElement = BindingContextUtils.callableDescriptorToDeclaration(member) if (memberElement == null && member is PropertyAccessorDescriptor) { - memberElement = BindingContextUtils.callableDescriptorToDeclaration(bindingContext, member.getCorrespondingProperty()) + memberElement = BindingContextUtils.callableDescriptorToDeclaration(member.getCorrespondingProperty()) } } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java index 752a0246885..9b12a386a8f 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java @@ -310,12 +310,12 @@ public class JetTypeMapper { @NotNull private String generateErrorMessageForErrorType(@NotNull JetType type, @NotNull DeclarationDescriptor descriptor) { - PsiElement declarationElement = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor); + PsiElement declarationElement = BindingContextUtils.descriptorToDeclaration(descriptor); PsiElement parentDeclarationElement = null; if (declarationElement != null) { DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration(); if (containingDeclaration != null) { - parentDeclarationElement = BindingContextUtils.descriptorToDeclaration(bindingContext, containingDeclaration); + parentDeclarationElement = BindingContextUtils.descriptorToDeclaration(containingDeclaration); } } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java b/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java index 195cbe4c18f..0609910fde7 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java @@ -117,7 +117,7 @@ public final class AnalyzerWithCompilerReport { if (!descriptorsWithErrors.isEmpty()) { StringBuilder message = new StringBuilder("The following Java entities have annotations with wrong Kotlin signatures:\n"); for (DeclarationDescriptor descriptor : descriptorsWithErrors) { - PsiElement declaration = BindingContextUtils.descriptorToDeclaration(bc, descriptor); + PsiElement declaration = BindingContextUtils.descriptorToDeclaration(descriptor); assert declaration instanceof PsiModifierListOwner; List errors = bc.get(JavaBindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS, descriptor); diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java index 0461738bbbc..fcf27d8cd50 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java @@ -125,7 +125,7 @@ public class CliLightClassGenerationSupport extends LightClassGenerationSupport public Collection findClassOrObjectDeclarations(@NotNull FqName fqName, @NotNull GlobalSearchScope searchScope) { ClassDescriptor classDescriptor = getTrace().get(BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, fqName.toUnsafe()); if (classDescriptor != null) { - PsiElement element = BindingContextUtils.classDescriptorToDeclaration(trace.getBindingContext(), classDescriptor); + PsiElement element = BindingContextUtils.classDescriptorToDeclaration(classDescriptor); if (element != null && PsiSearchScopeUtil.isInScope(searchScope, element)) { return Collections.singletonList((JetClassOrObject) element); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java index 5f9b8469fa3..bcc2bb6d0e7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java @@ -469,7 +469,7 @@ public class JetFlowInformationProvider { if (variableDescriptor instanceof PropertyDescriptor && !ctxt.enterInitState.isInitialized && ctxt.exitInitState.isInitialized) { if (!variableDescriptor.isVar()) return false; if (!trace.get(BindingContext.BACKING_FIELD_REQUIRED, (PropertyDescriptor) variableDescriptor)) return false; - PsiElement property = BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), variableDescriptor); + PsiElement property = BindingContextUtils.descriptorToDeclaration(variableDescriptor); assert property instanceof JetProperty; if (((PropertyDescriptor) variableDescriptor).getModality() == Modality.FINAL && ((JetProperty) property).getSetter() == null) { return false; @@ -505,7 +505,7 @@ public class JetFlowInformationProvider { report(Errors.NOT_PROPERTY_BACKING_FIELD.on(element), cxtx); return true; } - PsiElement property = BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), variableDescriptor); + PsiElement property = BindingContextUtils.descriptorToDeclaration(variableDescriptor); boolean insideSelfAccessors = PsiTreeUtil.isAncestor(property, element, false); if (!trace.get(BindingContext.BACKING_FIELD_REQUIRED, (PropertyDescriptor) variableDescriptor) && // not to generate error in accessors of abstract properties, there is one: declared accessor of abstract property diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/DiagnosticUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/DiagnosticUtils.java index 4529d93fea4..390b720c134 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/DiagnosticUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/DiagnosticUtils.java @@ -51,10 +51,10 @@ public class DiagnosticUtils { private DiagnosticUtils() { } - public static String atLocation(BindingContext bindingContext, DeclarationDescriptor descriptor) { - PsiElement element = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor); + public static String atLocation(DeclarationDescriptor descriptor) { + PsiElement element = BindingContextUtils.descriptorToDeclaration(descriptor); if (element == null) { - element = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor.getOriginal()); + element = BindingContextUtils.descriptorToDeclaration(descriptor.getOriginal()); } if (element == null && descriptor instanceof ASTNode) { element = DiagnosticUtils.getClosestPsiElement((ASTNode) descriptor); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java index 0ca7c314434..0073aaefca1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java @@ -156,9 +156,7 @@ public interface BindingContext { return false; } backingFieldRequired = valueNotFound ? false : backingFieldRequired; - assert backingFieldRequired != null; - // TODO: user BindingContextAccessors - PsiElement declarationPsiElement = BindingContextUtils.descriptorToDeclaration(null, propertyDescriptor); + PsiElement declarationPsiElement = BindingContextUtils.descriptorToDeclaration(propertyDescriptor); if (declarationPsiElement instanceof JetParameter) { JetParameter jetParameter = (JetParameter) declarationPsiElement; return jetParameter.hasValOrVarNode() || diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java index f0126f8bff7..52f12d4d3e4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java @@ -74,7 +74,7 @@ public class BindingContextUtils { DeclarationDescriptor descriptor = findTopLevelParent(declarationDescriptor); if (descriptor == null) return null; - PsiElement declaration = descriptorToDeclaration(context, descriptor); + PsiElement declaration = descriptorToDeclaration(descriptor); if (declaration == null) return null; PsiFile containingFile = declaration.getContainingFile(); @@ -105,12 +105,12 @@ public class BindingContextUtils { // NOTE this is also used by KDoc @Nullable - public static PsiElement descriptorToDeclaration(@Nullable BindingContext context, @NotNull DeclarationDescriptor descriptor) { + public static PsiElement descriptorToDeclaration(@NotNull DeclarationDescriptor descriptor) { if (descriptor instanceof CallableMemberDescriptor) { - return callableDescriptorToDeclaration(context, (CallableMemberDescriptor) descriptor); + return callableDescriptorToDeclaration((CallableMemberDescriptor) descriptor); } else if (descriptor instanceof ClassDescriptor) { - return classDescriptorToDeclaration(context, (ClassDescriptor) descriptor); + return classDescriptorToDeclaration((ClassDescriptor) descriptor); } else { return doGetDescriptorToDeclaration(descriptor); @@ -118,12 +118,12 @@ public class BindingContextUtils { } @NotNull - public static List descriptorToDeclarations(@NotNull BindingContext context, @NotNull DeclarationDescriptor descriptor) { + public static List descriptorToDeclarations(@NotNull DeclarationDescriptor descriptor) { if (descriptor instanceof CallableMemberDescriptor) { - return callableDescriptorToDeclarations(context, (CallableMemberDescriptor) descriptor); + return callableDescriptorToDeclarations((CallableMemberDescriptor) descriptor); } else { - PsiElement psiElement = descriptorToDeclaration(context, descriptor); + PsiElement psiElement = descriptorToDeclaration(descriptor); if (psiElement != null) { return Lists.newArrayList(psiElement); } else { @@ -133,7 +133,7 @@ public class BindingContextUtils { } @Nullable - public static PsiElement callableDescriptorToDeclaration(@Nullable BindingContext context, @NotNull CallableMemberDescriptor callable) { + public static PsiElement callableDescriptorToDeclaration(@NotNull CallableMemberDescriptor callable) { if (callable.getKind() == DECLARATION || callable.getKind() == SYNTHESIZED) { return doGetDescriptorToDeclaration(callable); } @@ -146,10 +146,7 @@ public class BindingContextUtils { } @NotNull - public static List callableDescriptorToDeclarations( - @NotNull BindingContext context, - @NotNull CallableMemberDescriptor callable - ) { + public static List callableDescriptorToDeclarations(@NotNull CallableMemberDescriptor callable) { if (callable.getKind() == DECLARATION || callable.getKind() == SYNTHESIZED) { PsiElement psiElement = doGetDescriptorToDeclaration(callable); return psiElement != null ? Lists.newArrayList(psiElement) : Lists.newArrayList(); @@ -158,13 +155,13 @@ public class BindingContextUtils { List r = new ArrayList(); Set overriddenDescriptors = callable.getOverriddenDescriptors(); for (CallableMemberDescriptor overridden : overriddenDescriptors) { - r.addAll(callableDescriptorToDeclarations(context, overridden)); + r.addAll(callableDescriptorToDeclarations(overridden)); } return r; } @Nullable - public static PsiElement classDescriptorToDeclaration(@NotNull BindingContext context, @NotNull ClassDescriptor clazz) { + public static PsiElement classDescriptorToDeclaration(@NotNull ClassDescriptor clazz) { return doGetDescriptorToDeclaration(clazz); } @@ -224,7 +221,7 @@ public class BindingContextUtils { ) { Collection targets = Lists.newArrayList(); for (DeclarationDescriptor descriptor : declarationsByLabel) { - PsiElement element = descriptorToDeclaration(trace.getBindingContext(), descriptor); + PsiElement element = descriptorToDeclaration(descriptor); assert element != null : "Label can only point to something in the same lexical scope"; targets.add(element); } @@ -279,16 +276,15 @@ public class BindingContextUtils { @NotNull public static Pair getContainingFunctionSkipFunctionLiterals( - @NotNull BindingContext context, @Nullable DeclarationDescriptor startDescriptor, boolean strict ) { FunctionDescriptor containingFunctionDescriptor = DescriptorUtils.getParentOfType(startDescriptor, FunctionDescriptor.class, strict); - PsiElement containingFunction = containingFunctionDescriptor != null ? callableDescriptorToDeclaration(context, containingFunctionDescriptor) : null; + PsiElement containingFunction = + containingFunctionDescriptor != null ? callableDescriptorToDeclaration(containingFunctionDescriptor) : null; while (containingFunction instanceof JetFunctionLiteral) { containingFunctionDescriptor = DescriptorUtils.getParentOfType(containingFunctionDescriptor, FunctionDescriptor.class); - containingFunction = containingFunctionDescriptor != null ? callableDescriptorToDeclaration(context, - containingFunctionDescriptor) : null; + containingFunction = containingFunctionDescriptor != null ? callableDescriptorToDeclaration(containingFunctionDescriptor) : null; } return new Pair(containingFunctionDescriptor, containingFunction); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java index edbff9af384..acf5dd633d0 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java @@ -330,7 +330,7 @@ public class DeclarationResolver { }); } else { - declarations = Collections.singletonList(BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), declarationDescriptor)); + declarations = Collections.singletonList(BindingContextUtils.descriptorToDeclaration(declarationDescriptor)); } return declarations; } @@ -379,12 +379,12 @@ public class DeclarationResolver { } redeclarations.add(Pair.create( - BindingContextUtils.classDescriptorToDeclaration(trace.getBindingContext(), (ClassDescriptor) descriptor), - descriptor.getName())); + BindingContextUtils.classDescriptorToDeclaration((ClassDescriptor) descriptor), descriptor.getName() + )); if (descriptor2 instanceof PropertyDescriptor) { redeclarations.add(Pair.create( - BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), descriptor2), - descriptor2.getName())); + BindingContextUtils.descriptorToDeclaration(descriptor2), descriptor2.getName() + )); } } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java index 8c4c3bd712c..fe7261d8e8c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java @@ -203,8 +203,7 @@ public class DeclarationsChecker { if (conflictingTypes.size() > 1) { DeclarationDescriptor containingDeclaration = typeParameterDescriptor.getContainingDeclaration(); assert containingDeclaration instanceof ClassDescriptor : containingDeclaration; - JetClassOrObject psiElement = (JetClassOrObject) BindingContextUtils - .classDescriptorToDeclaration(trace.getBindingContext(), classDescriptor); + JetClassOrObject psiElement = (JetClassOrObject) BindingContextUtils.classDescriptorToDeclaration(classDescriptor); JetDelegationSpecifierList delegationSpecifierList = psiElement.getDelegationSpecifierList(); assert delegationSpecifierList != null; // trace.getErrorHandler().genericError(delegationSpecifierList.getNode(), "Type parameter " + typeParameterDescriptor.getName() + " of " + containingDeclaration.getName() + " has inconsistent values: " + conflictingTypes); @@ -322,7 +321,7 @@ public class DeclarationsChecker { private void checkOpenMembers(ClassDescriptorWithResolutionScopes classDescriptor) { for (CallableMemberDescriptor memberDescriptor : classDescriptor.getDeclaredCallableMembers()) { if (memberDescriptor.getKind() != CallableMemberDescriptor.Kind.DECLARATION) continue; - JetNamedDeclaration member = (JetNamedDeclaration) BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), memberDescriptor); + JetNamedDeclaration member = (JetNamedDeclaration) BindingContextUtils.descriptorToDeclaration(memberDescriptor); if (member != null && classDescriptor.getModality() == Modality.FINAL && member.hasModifier(JetTokens.OPEN_KEYWORD)) { trace.report(NON_FINAL_MEMBER_IN_FINAL_CLASS.on(member)); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/InlineDescriptorUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/InlineDescriptorUtils.java index 2702c1d805d..f0911d4fee1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/InlineDescriptorUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/InlineDescriptorUtils.java @@ -70,7 +70,7 @@ public class InlineDescriptorUtils { containingFunctionDescriptor = getContainingClassOrFunctionDescriptor(containingFunctionDescriptor, true); containingFunction = containingFunctionDescriptor != null - ? BindingContextUtils.descriptorToDeclaration(bindingContext, containingFunctionDescriptor) + ? BindingContextUtils.descriptorToDeclaration(containingFunctionDescriptor) : null; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LibrarySourceHacks.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LibrarySourceHacks.java index 319db4932ac..c73e93cc6b7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LibrarySourceHacks.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LibrarySourceHacks.java @@ -36,17 +36,17 @@ public class LibrarySourceHacks { public static final Key SKIP_TOP_LEVEL_MEMBERS = Key.create("SKIP_TOP_LEVEL_MEMBERS"); // used when analyzing library source - public static List filterOutMembersFromLibrarySource(Collection members, BindingTrace trace) { + public static List filterOutMembersFromLibrarySource(Collection members) { List filteredMembers = Lists.newArrayList(); for (D member : members) { - if (!shouldSkip(member, trace)) { + if (!shouldSkip(member)) { filteredMembers.add(member); } } return filteredMembers; } - private static boolean shouldSkip(CallableDescriptor member, BindingTrace trace) { + private static boolean shouldSkip(CallableDescriptor member) { CallableDescriptor original = member.getOriginal(); if (!(original instanceof CallableMemberDescriptor)) { return false; @@ -55,8 +55,7 @@ public class LibrarySourceHacks { return false; } - PsiElement declaration = callableDescriptorToDeclaration(trace.getBindingContext(), - (CallableMemberDescriptor) original); + PsiElement declaration = callableDescriptorToDeclaration((CallableMemberDescriptor) original); if (declaration == null) { return false; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java index b17b86e8dd2..c3712d3f643 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java @@ -170,8 +170,7 @@ public class OverloadResolver { OverloadUtil.OverloadCompatibilityInfo overloadable = OverloadUtil.isOverloadable(member, member2); if (!overloadable.isSuccess()) { - JetDeclaration jetDeclaration = (JetDeclaration) BindingContextUtils - .descriptorToDeclaration(trace.getBindingContext(), member); + JetDeclaration jetDeclaration = (JetDeclaration) BindingContextUtils.descriptorToDeclaration(member); if (jetDeclaration != null) { redeclarations.add(Pair.create(jetDeclaration, member)); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java index 8843a35bd6b..bab26931534 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java @@ -110,8 +110,7 @@ public class OverrideResolver { } } - JetClassOrObject classOrObject = (JetClassOrObject) BindingContextUtils - .classDescriptorToDeclaration(trace.getBindingContext(), classDescriptor); + JetClassOrObject classOrObject = (JetClassOrObject) BindingContextUtils.classDescriptorToDeclaration(classDescriptor); if (classOrObject != null) { DelegationResolver.generateDelegatesInAClass(classDescriptor, trace, classOrObject); } @@ -155,8 +154,7 @@ public class OverrideResolver { @Override public void conflict(@NotNull CallableMemberDescriptor fromSuper, @NotNull CallableMemberDescriptor fromCurrent) { - JetDeclaration declaration = - (JetDeclaration) BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), fromCurrent); + JetDeclaration declaration = (JetDeclaration) BindingContextUtils.descriptorToDeclaration(fromCurrent); //noinspection ConstantConditions trace.report(CONFLICTING_OVERLOADS.on(declaration, fromCurrent, fromCurrent.getContainingDeclaration().getName().asString())); } @@ -190,7 +188,7 @@ public class OverrideResolver { reportOn = descriptor; } //noinspection ConstantConditions - PsiElement element = BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), reportOn); + PsiElement element = BindingContextUtils.descriptorToDeclaration(reportOn); if (element instanceof JetDeclaration) { trace.report(CANNOT_INFER_VISIBILITY.on((JetDeclaration) element, descriptor)); } @@ -611,7 +609,7 @@ public class OverrideResolver { return; } - final JetNamedDeclaration member = (JetNamedDeclaration) BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), declared); + final JetNamedDeclaration member = (JetNamedDeclaration) BindingContextUtils.descriptorToDeclaration(declared); if (member == null) { throw new IllegalStateException("declared descriptor is not resolved to declaration: " + declared); } @@ -864,8 +862,7 @@ public class OverrideResolver { boolean isDeclaration = declared.getKind() == CallableMemberDescriptor.Kind.DECLARATION; if (isDeclaration) { // No check if the function is not marked as 'override' - JetModifierListOwner declaration = - (JetModifierListOwner) BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), declared); + JetModifierListOwner declaration = (JetModifierListOwner) BindingContextUtils.descriptorToDeclaration(declared); if (declaration != null && !declaration.hasModifier(JetTokens.OVERRIDE_KEYWORD)) { return; } @@ -895,7 +892,7 @@ public class OverrideResolver { } private void checkNameAndDefaultForDeclaredParameter(@NotNull ValueParameterDescriptor descriptor, boolean multipleDefaultsInSuper) { - JetParameter parameter = (JetParameter) BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), descriptor); + JetParameter parameter = (JetParameter) BindingContextUtils.descriptorToDeclaration(descriptor); assert parameter != null : "Declaration not found for parameter: " + descriptor; if (descriptor.declaresDefaultValue()) { @@ -924,8 +921,7 @@ public class OverrideResolver { boolean multipleDefaultsInSuper ) { DeclarationDescriptor containingClass = containingFunction.getContainingDeclaration(); - JetClassOrObject classElement = - (JetClassOrObject) BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), containingClass); + JetClassOrObject classElement = (JetClassOrObject) BindingContextUtils.descriptorToDeclaration(containingClass); assert classElement != null : "Declaration not found for class: " + containingClass; if (multipleDefaultsInSuper) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java index 4d58f1a80b5..5462f05230a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java @@ -37,7 +37,7 @@ public class TraceBasedRedeclarationHandler implements RedeclarationHandler { } private void report(DeclarationDescriptor descriptor) { - PsiElement firstElement = BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), descriptor); + PsiElement firstElement = BindingContextUtils.descriptorToDeclaration(descriptor); if (firstElement != null) { trace.report(REDECLARATION.on(firstElement, descriptor.getName().asString())); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java index 673b036f9e4..95641146c76 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java @@ -284,7 +284,7 @@ public class TypeHierarchyResolver { @NotNull ClassDescriptor classDescriptor, @NotNull ClassDescriptor superclass ) { - PsiElement psiElement = BindingContextUtils.classDescriptorToDeclaration(trace.getBindingContext(), classDescriptor); + PsiElement psiElement = BindingContextUtils.classDescriptorToDeclaration(classDescriptor); PsiElement elementToMark = null; if (psiElement instanceof JetClassOrObject) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java index 5d1e88f60c3..e40be4ea5da 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java @@ -184,19 +184,19 @@ public class CallableDescriptorCollectors implemen @NotNull @Override public Collection getNonExtensionsByName(JetScope scope, Name name, @NotNull BindingTrace bindingTrace) { - return filterOutMembersFromLibrarySource(delegate.getNonExtensionsByName(scope, name, bindingTrace), bindingTrace); + return filterOutMembersFromLibrarySource(delegate.getNonExtensionsByName(scope, name, bindingTrace)); } @NotNull @Override public Collection getMembersByName(@NotNull JetType receiver, Name name, @NotNull BindingTrace bindingTrace) { - return filterOutMembersFromLibrarySource(delegate.getMembersByName(receiver, name, bindingTrace), bindingTrace); + return filterOutMembersFromLibrarySource(delegate.getMembersByName(receiver, name, bindingTrace)); } @NotNull @Override public Collection getNonMembersByName(JetScope scope, Name name, @NotNull BindingTrace bindingTrace) { - return filterOutMembersFromLibrarySource(delegate.getNonMembersByName(scope, name, bindingTrace), bindingTrace); + return filterOutMembersFromLibrarySource(delegate.getNonMembersByName(scope, name, bindingTrace)); } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java index 435d96b95b4..fe74cb84698 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java @@ -121,8 +121,7 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope containingFunInfo = - BindingContextUtils.getContainingFunctionSkipFunctionLiterals(context.trace.getBindingContext(), declarationDescriptor, - false); + BindingContextUtils.getContainingFunctionSkipFunctionLiterals(declarationDescriptor, false); FunctionDescriptor containingFunctionDescriptor = containingFunInfo.getFirst(); if (containingFunctionDescriptor != null) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java index fc8ef5c88c4..a08bb7d0779 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java @@ -142,7 +142,7 @@ public class ExpressionTypingUtils { @NotNull DeclarationDescriptor scopeContainer, @NotNull DeclarationDescriptor variableParent ) { - PsiElement scopeDeclaration = BindingContextUtils.descriptorToDeclaration(context, scopeContainer); + PsiElement scopeDeclaration = BindingContextUtils.descriptorToDeclaration(scopeContainer); if (!(scopeDeclaration instanceof JetFunctionLiteral)) { return false; } @@ -429,7 +429,7 @@ public class ExpressionTypingUtils { public static void checkVariableShadowing(@NotNull ExpressionTypingContext context, @NotNull VariableDescriptor variableDescriptor, VariableDescriptor oldDescriptor) { if (oldDescriptor != null && isLocal(variableDescriptor.getContainingDeclaration(), oldDescriptor)) { - PsiElement declaration = BindingContextUtils.descriptorToDeclaration(context.trace.getBindingContext(), variableDescriptor); + PsiElement declaration = BindingContextUtils.descriptorToDeclaration(variableDescriptor); if (declaration != null) { context.trace.report(Errors.NAME_SHADOWING.on(declaration, variableDescriptor.getName().asString())); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java index 466ab14c43c..f143f1187b7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java @@ -142,7 +142,7 @@ public class LabelResolver { DeclarationDescriptor declarationDescriptor = declarationsByLabel.iterator().next(); JetElement element; if (declarationDescriptor instanceof FunctionDescriptor || declarationDescriptor instanceof ClassDescriptor) { - element = (JetElement) BindingContextUtils.descriptorToDeclaration(context.trace.getBindingContext(), declarationDescriptor); + element = (JetElement) BindingContextUtils.descriptorToDeclaration(declarationDescriptor); } else { throw new UnsupportedOperationException(declarationDescriptor.getClass().toString()); // TODO @@ -198,7 +198,7 @@ public class LabelResolver { else { throw new UnsupportedOperationException("Unsupported descriptor: " + declarationDescriptor); // TODO } - PsiElement element = BindingContextUtils.descriptorToDeclaration(context.trace.getBindingContext(), declarationDescriptor); + PsiElement element = BindingContextUtils.descriptorToDeclaration(declarationDescriptor); assert element != null : "No PSI element for descriptor: " + declarationDescriptor; context.trace.record(LABEL_TARGET, targetLabel, element); context.trace.record(REFERENCE_TARGET, referenceExpression, declarationDescriptor); diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinJavaFileStubProvider.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinJavaFileStubProvider.java index a0ef8d0a8d9..6e3dc59045d 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinJavaFileStubProvider.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinJavaFileStubProvider.java @@ -61,6 +61,8 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; +import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration; + public class KotlinJavaFileStubProvider implements CachedValueProvider { @NotNull @@ -166,9 +168,7 @@ public class KotlinJavaFileStubProvider innerClassesMap = ContainerUtil.newHashMap(); for (ClassDescriptor innerClassDescriptor : allInnerClasses) { - JetClassOrObject innerClass = (JetClassOrObject) BindingContextUtils.descriptorToDeclaration( - bindingContext, innerClassDescriptor - ); + JetClassOrObject innerClass = (JetClassOrObject) descriptorToDeclaration(innerClassDescriptor); if (innerClass == null) continue; InnerKotlinClassLightClassData innerLightClassData = new InnerKotlinClassLightClassData( diff --git a/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java index b3dfaf639b8..2cbfa5c677f 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java +++ b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java @@ -279,7 +279,7 @@ public abstract class ExpectedResolveData { PsiElement actual = referenceTarget == null ? bindingContext.get(BindingContext.LABEL_TARGET, referenceExpression) - : BindingContextUtils.descriptorToDeclaration(bindingContext, referenceTarget); + : BindingContextUtils.descriptorToDeclaration(referenceTarget); if (actual instanceof JetSimpleNameExpression) { actual = ((JetSimpleNameExpression)actual).getIdentifier(); } diff --git a/compiler/tests/org/jetbrains/jet/resolve/constraintSystem/MyDeclarations.kt b/compiler/tests/org/jetbrains/jet/resolve/constraintSystem/MyDeclarations.kt index b706ceef0e6..3683d26a0ec 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/constraintSystem/MyDeclarations.kt +++ b/compiler/tests/org/jetbrains/jet/resolve/constraintSystem/MyDeclarations.kt @@ -30,7 +30,7 @@ import org.jetbrains.jet.lang.types.JetTypeImpl import org.jetbrains.jet.lang.descriptors.annotations.Annotations public class MyDeclarations( - private val context: BindingContext, + context: BindingContext, private val project: Project, private val typeResolver: TypeResolver ) { @@ -40,7 +40,7 @@ public class MyDeclarations( { val functions = context.getSliceContents(BindingContext.FUNCTION) functionFoo = findFunctionByName(functions.values(), "foo") - val function = (BindingContextUtils.descriptorToDeclaration(context, functionFoo) as JetFunction) + val function = BindingContextUtils.descriptorToDeclaration(functionFoo) as JetFunction val fooBody = function.getBodyExpression() scopeToResolveTypeParameters = context.get(BindingContext.RESOLUTION_SCOPE, fooBody)!! } diff --git a/idea/src/org/jetbrains/jet/plugin/actions/JetAddFunctionToClassifierAction.java b/idea/src/org/jetbrains/jet/plugin/actions/JetAddFunctionToClassifierAction.java index 853d29129b3..7eb504d3cf6 100644 --- a/idea/src/org/jetbrains/jet/plugin/actions/JetAddFunctionToClassifierAction.java +++ b/idea/src/org/jetbrains/jet/plugin/actions/JetAddFunctionToClassifierAction.java @@ -37,7 +37,6 @@ import org.jetbrains.jet.lang.psi.JetClass; import org.jetbrains.jet.lang.psi.JetClassBody; import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.lang.psi.JetPsiFactory; -import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.JetBundle; @@ -57,31 +56,21 @@ public class JetAddFunctionToClassifierAction implements QuestionAction { private final List functionsToAdd; private final Project project; private final Editor editor; - private final BindingContext bindingContext; - /** - * @param project Project where action takes place. - * @param editor Editor where modification should be done. - * @param bindingContext BindingContext to be used for finding type declarations. - * @param functionsToAdd List of possible functions to add. - */ public JetAddFunctionToClassifierAction( @NotNull Project project, @NotNull Editor editor, - @NotNull BindingContext bindingContext, @NotNull List functionsToAdd ) { this.project = project; this.editor = editor; - this.bindingContext = bindingContext; this.functionsToAdd = new ArrayList(functionsToAdd); } private static void addFunction( @NotNull final Project project, @NotNull final ClassDescriptor typeDescriptor, - @NotNull final FunctionDescriptor functionDescriptor, - @NotNull BindingContext bindingContext + @NotNull final FunctionDescriptor functionDescriptor ) { final String signatureString = CodeInsightUtils.createFunctionSignatureStringFromDescriptor( functionDescriptor, @@ -89,7 +78,7 @@ public class JetAddFunctionToClassifierAction implements QuestionAction { PsiDocumentManager.getInstance(project).commitAllDocuments(); - final JetClass classifierDeclaration = (JetClass) DescriptorToDeclarationUtil.getDeclaration(project, typeDescriptor, bindingContext); + final JetClass classifierDeclaration = (JetClass) DescriptorToDeclarationUtil.getDeclaration(project, typeDescriptor); CommandProcessor.getInstance().executeCommand(project, new Runnable() { @Override public void run() { @@ -177,7 +166,6 @@ public class JetAddFunctionToClassifierAction implements QuestionAction { } private void addFunction(FunctionDescriptor functionToAdd) { - addFunction(project, (ClassDescriptor) functionToAdd.getContainingDeclaration(), - functionToAdd, bindingContext); + addFunction(project, (ClassDescriptor) functionToAdd.getContainingDeclaration(), functionToAdd); } } diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java index 972bcc2804f..a547b6fe807 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java @@ -23,7 +23,6 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.plugin.libraries.DecompiledNavigationUtils; import org.jetbrains.jet.plugin.references.BuiltInsReferenceResolver; @@ -36,23 +35,15 @@ public final class DescriptorToDeclarationUtil { } @Nullable - public static PsiElement getDeclaration( - @NotNull JetFile file, - @NotNull DeclarationDescriptor descriptor, - @NotNull BindingContext bindingContext - ) { - return getDeclaration(file.getProject(), descriptor, bindingContext); + public static PsiElement getDeclaration(@NotNull JetFile file, @NotNull DeclarationDescriptor descriptor) { + return getDeclaration(file.getProject(), descriptor); } @Nullable - public static PsiElement getDeclaration( - @NotNull Project project, - @NotNull DeclarationDescriptor descriptor, - @NotNull BindingContext bindingContext - ) { - Collection elements = BindingContextUtils.descriptorToDeclarations(bindingContext, descriptor); + public static PsiElement getDeclaration(@NotNull Project project, @NotNull DeclarationDescriptor descriptor) { + Collection elements = BindingContextUtils.descriptorToDeclarations(descriptor); if (elements.isEmpty()) { - elements = findDeclarationsForDescriptorWithoutTrace(project, descriptor); + elements = findDecompiledAndBuiltInDeclarations(project, descriptor); } if (!elements.isEmpty()) { return elements.iterator().next(); @@ -61,7 +52,7 @@ public final class DescriptorToDeclarationUtil { } @NotNull - public static Collection findDeclarationsForDescriptorWithoutTrace( + public static Collection findDecompiledAndBuiltInDeclarations( @NotNull Project project, @NotNull DeclarationDescriptor descriptor ) { diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java index a7579c7356d..20d49f300f8 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/GotoSuperActionHandler.java @@ -60,7 +60,7 @@ public class GotoSuperActionHandler implements CodeInsightActionHandler { JetObjectDeclaration.class); if (declaration == null) return; - final BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(declaration); + BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(declaration); DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, declaration); @@ -102,7 +102,7 @@ public class GotoSuperActionHandler implements CodeInsightActionHandler { if (KotlinBuiltIns.getInstance().getAny() == descriptor) { return null; } - return BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor); + return BindingContextUtils.descriptorToDeclaration(descriptor); } }); if (superDeclarations.isEmpty()) return; diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/JetTypeDeclarationProvider.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/JetTypeDeclarationProvider.java index fe41382bfa3..e672bc8943d 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/JetTypeDeclarationProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/JetTypeDeclarationProvider.java @@ -40,7 +40,7 @@ public class JetTypeDeclarationProvider implements TypeDeclarationProvider { if (type != null) { ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor(); if (classifierDescriptor != null) { - PsiElement typeElement = BindingContextUtils.descriptorToDeclaration(bindingContext, classifierDescriptor); + PsiElement typeElement = BindingContextUtils.descriptorToDeclaration(classifierDescriptor); if (typeElement != null) { return new PsiElement[] {typeElement}; } diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java index 5ec199d9a05..55c0966cac8 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java @@ -57,16 +57,15 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns private static final Logger LOG = Logger.getInstance(OverrideImplementMethodsHandler.class.getCanonicalName()); public static List membersFromDescriptors( - JetFile file, Iterable missingImplementations, - BindingContext bindingContext + JetFile file, Iterable missingImplementations ) { List members = new ArrayList(); for (CallableMemberDescriptor memberDescriptor : missingImplementations) { - - PsiElement declaration = DescriptorToDeclarationUtil.getDeclaration(file, memberDescriptor, bindingContext); + PsiElement declaration = DescriptorToDeclarationUtil.getDeclaration(file, memberDescriptor); if (declaration == null) { LOG.error("Can not find declaration for descriptor " + memberDescriptor); - } else { + } + else { DescriptorClassMember member = new DescriptorClassMember(declaration, memberDescriptor); members.add(member); } @@ -254,7 +253,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns HintManager.getInstance().showErrorHint(editor, getNoMethodsFoundHint()); return; } - List members = membersFromDescriptors((JetFile) file, missingImplementations, bindingContext); + List members = membersFromDescriptors((JetFile) file, missingImplementations); final List selectedElements; if (implementAll) { diff --git a/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java b/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java index 8754f860fdc..5509aafa6f8 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java @@ -122,24 +122,21 @@ public final class DescriptorLookupConverter { } @NotNull - public static LookupElement createLookupElement( - @NotNull KotlinCodeAnalyzer analyzer, - @NotNull BindingContext bindingContext, - @NotNull DeclarationDescriptor descriptor) { + public static LookupElement createLookupElement(@NotNull KotlinCodeAnalyzer analyzer, @NotNull DeclarationDescriptor descriptor) { if (descriptor instanceof CallableMemberDescriptor) { descriptor = DescriptorUtils.unwrapFakeOverride((CallableMemberDescriptor) descriptor); } - return createLookupElement(analyzer, descriptor, BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor)); + return createLookupElement(analyzer, descriptor, BindingContextUtils.descriptorToDeclaration(descriptor)); } public static LookupElement[] collectLookupElements( @NotNull KotlinCodeAnalyzer analyzer, - @NotNull BindingContext bindingContext, - @NotNull Iterable descriptors) { + @NotNull Iterable descriptors + ) { List result = Lists.newArrayList(); for (DeclarationDescriptor descriptor : descriptors) { - result.add(createLookupElement(analyzer, bindingContext, descriptor)); + result.add(createLookupElement(analyzer, descriptor)); } return result.toArray(new LookupElement[result.size()]); diff --git a/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionResultSet.java b/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionResultSet.java index d9fbc2d7f55..84d62ba92d3 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionResultSet.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionResultSet.java @@ -78,7 +78,7 @@ public class JetCompletionResultSet { return; } - addElement(DescriptorLookupConverter.createLookupElement(resolveSession, bindingContext, descriptor)); + addElement(DescriptorLookupConverter.createLookupElement(resolveSession, descriptor)); // add special item for function with one argument of function type with more than one parameter if (descriptor instanceof FunctionDescriptor) { @@ -89,7 +89,7 @@ public class JetCompletionResultSet { if (KotlinBuiltIns.getInstance().isFunctionOrExtensionFunctionType(parameterType)) { int parameterCount = KotlinBuiltIns.getInstance().getParameterTypeProjectionsFromFunctionType(parameterType).size(); if (parameterCount > 1) { - LookupElement lookupElement = DescriptorLookupConverter.createLookupElement(resolveSession, bindingContext, descriptor); + LookupElement lookupElement = DescriptorLookupConverter.createLookupElement(resolveSession, descriptor); addElement(new LookupElementDecorator(lookupElement) { @Override public void renderElement(@NotNull LookupElementPresentation presentation) { diff --git a/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java b/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java index 8340ca40c19..80e4f4114a3 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/JetPackagesContributor.java @@ -25,6 +25,7 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.util.ProcessingContext; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetPackageDirective; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -33,6 +34,8 @@ import org.jetbrains.jet.plugin.codeInsight.TipsManager; import org.jetbrains.jet.plugin.project.ResolveSessionForBodies; import org.jetbrains.jet.plugin.references.JetSimpleNameReference; +import java.util.Collection; + /** * Performs completion in package directive. Should suggest only packages and avoid showing fake package produced by * DUMMY_IDENTIFIER. @@ -75,8 +78,9 @@ public class JetPackagesContributor extends CompletionContributor { ResolvePackage.getLazyResolveSession(simpleNameReference.getExpression()); BindingContext bindingContext = resolveSession.resolveToElement(simpleNameReference.getExpression()); - for (LookupElement variant : DescriptorLookupConverter.collectLookupElements( - resolveSession, bindingContext, TipsManager.getPackageReferenceVariants(simpleNameReference.getExpression(), bindingContext))) { + Collection variants = + TipsManager.getPackageReferenceVariants(simpleNameReference.getExpression(), bindingContext); + for (LookupElement variant : DescriptorLookupConverter.collectLookupElements(resolveSession, variants)) { if (!variant.getLookupString().contains(DUMMY_IDENTIFIER)) { result.addElement(variant); } diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt index 58de916d56c..b827c0ad6a5 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/SmartCompletion.kt @@ -96,7 +96,7 @@ class SmartCompletion(val expression: JetSimpleNameExpression, else -> ExpectedInfoClassification.NOT_MATCHES } } - result.addLookupElements(expectedInfos, classifier, { createLookupElement(descriptor, resolveSession, bindingContext) }) + result.addLookupElements(expectedInfos, classifier, { createLookupElement(descriptor, resolveSession) }) if (receiver == null) { toFunctionReferenceLookupElement(descriptor, functionExpectedInfos)?.let { result.add(it) } @@ -104,7 +104,7 @@ class SmartCompletion(val expression: JetSimpleNameExpression, } if (receiver == null) { - TypeInstantiationItems(bindingContext, resolveSession, visibilityFilter).addToCollection(result, expectedInfos) + TypeInstantiationItems(resolveSession, visibilityFilter).addToCollection(result, expectedInfos) StaticMembers(bindingContext, resolveSession).addToCollection(result, expectedInfos, expression, itemsToSkip) @@ -177,7 +177,7 @@ class SmartCompletion(val expression: JetSimpleNameExpression, val matchedExpectedInfos = functionExpectedInfos.filter { functionType.isSubtypeOf(it.`type`) } if (matchedExpectedInfos.isEmpty()) return null - var lookupElement = createLookupElement(descriptor, resolveSession, bindingContext) + var lookupElement = createLookupElement(descriptor, resolveSession) val text = "::" + (if (descriptor is ConstructorDescriptor) descriptor.getContainingDeclaration().getName() else descriptor.getName()) lookupElement = object: LookupElementDecorator(lookupElement) { override fun getLookupString() = text diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt index 3ab76a8d8c0..7efad5ad0b2 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt @@ -107,7 +107,7 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso } private fun createLookupElement(memberDescriptor: DeclarationDescriptor, classDescriptor: ClassDescriptor): LookupElement { - val lookupElement = createLookupElement(memberDescriptor, resolveSession, bindingContext) + val lookupElement = createLookupElement(memberDescriptor, resolveSession) val qualifierPresentation = classDescriptor.getName().asString() val lookupString = qualifierPresentation + "." + lookupElement.getLookupString() val qualifierText = DescriptorUtils.getFqName(classDescriptor).asString() //TODO: escape keywords diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/ThisItems.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/ThisItems.kt index 0a6082f00a0..df04be700e0 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/ThisItems.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/ThisItems.kt @@ -68,7 +68,7 @@ class ThisItems(val bindingContext: BindingContext) { val name: Name = descriptor.getName() if (!name.isSpecial()) return name.asString() - val psiElement = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor) + val psiElement = BindingContextUtils.descriptorToDeclaration(descriptor) val expression: JetExpression? = when (psiElement) { is JetFunctionLiteral -> psiElement.getParent() as? JetFunctionLiteralExpression is JetObjectDeclaration -> psiElement.getParent() as? JetObjectLiteralExpression diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt index 0dc8370318d..6e9b34527db 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt @@ -38,9 +38,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor import org.jetbrains.jet.lang.descriptors.Visibilities import org.jetbrains.jet.plugin.util.makeNotNullable -class TypeInstantiationItems(val bindingContext: BindingContext, - val resolveSession: ResolveSessionForBodies, - val visibilityFilter: (DeclarationDescriptor) -> Boolean) { +class TypeInstantiationItems(val resolveSession: ResolveSessionForBodies, val visibilityFilter: (DeclarationDescriptor) -> Boolean) { public fun addToCollection(collection: MutableCollection, expectedInfos: Collection) { val expectedInfosGrouped: Map> = expectedInfos.groupBy { it.`type`.makeNotNullable() } for ((jetType, types) in expectedInfosGrouped) { @@ -65,7 +63,7 @@ class TypeInstantiationItems(val bindingContext: BindingContext, } if (allConstructors.isNotEmpty() && visibleConstructors.isEmpty()) return - var lookupElement = createLookupElement(classifier, resolveSession, bindingContext) + var lookupElement = createLookupElement(classifier, resolveSession) var lookupString = lookupElement.getLookupString() diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/Utils.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/Utils.kt index ebc4e640e5d..96be84290f0 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/Utils.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/Utils.kt @@ -167,8 +167,8 @@ fun functionType(function: FunctionDescriptor): JetType? { function.getReturnType() ?: return null) } -fun createLookupElement(descriptor: DeclarationDescriptor, resolveSession: ResolveSessionForBodies, bindingContext: BindingContext): LookupElement { - val element = DescriptorLookupConverter.createLookupElement(resolveSession, bindingContext, descriptor) +fun createLookupElement(descriptor: DeclarationDescriptor, resolveSession: ResolveSessionForBodies): LookupElement { + val element = DescriptorLookupConverter.createLookupElement(resolveSession, descriptor) return if (descriptor is FunctionDescriptor && descriptor.getValueParameters().isNotEmpty()) element.keepOldArgumentListOnTab() else element } diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/KotlinSmartStepIntoHandler.kt b/idea/src/org/jetbrains/jet/plugin/debugger/KotlinSmartStepIntoHandler.kt index d10a5f1c2a9..25609b21152 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/KotlinSmartStepIntoHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/debugger/KotlinSmartStepIntoHandler.kt @@ -131,7 +131,7 @@ public class KotlinSmartStepIntoHandler : JvmSmartStepIntoHandler() { if (getterDescriptor != null && !getterDescriptor.isDefault()) { val delegatedResolvedCall = bindingContext[BindingContext.DELEGATED_PROPERTY_RESOLVED_CALL, getterDescriptor] if (delegatedResolvedCall == null) { - val getter = BindingContextUtils.callableDescriptorToDeclaration(bindingContext, getterDescriptor) + val getter = BindingContextUtils.callableDescriptorToDeclaration(getterDescriptor) if (getter is JetPropertyAccessor && (getter.getBodyExpression() != null || getter.getEqualsToken() != null)) { val psiMethod = LightClassUtil.getLightClassAccessorMethod(getter) if (psiMethod != null) { @@ -142,7 +142,7 @@ public class KotlinSmartStepIntoHandler : JvmSmartStepIntoHandler() { else { val delegatedPropertyGetterDescriptor = delegatedResolvedCall.getResultingDescriptor() if (delegatedPropertyGetterDescriptor is CallableMemberDescriptor) { - val function = BindingContextUtils.callableDescriptorToDeclaration(bindingContext, delegatedPropertyGetterDescriptor) + val function = BindingContextUtils.callableDescriptorToDeclaration(delegatedPropertyGetterDescriptor) if (function is JetNamedFunction) { val psiMethod = LightClassUtil.getLightClassMethod(function) if (psiMethod != null) { @@ -163,7 +163,7 @@ public class KotlinSmartStepIntoHandler : JvmSmartStepIntoHandler() { val descriptor = resolvedCall.getResultingDescriptor() if (descriptor is CallableMemberDescriptor) { - val function = BindingContextUtils.callableDescriptorToDeclaration(bindingContext, descriptor) + val function = BindingContextUtils.callableDescriptorToDeclaration(descriptor) if (function is JetNamedFunction) { val psiMethod = LightClassUtil.getLightClassMethod(function) if (psiMethod != null) { diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/CalleeReferenceVisitorBase.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/CalleeReferenceVisitorBase.java index bd4b26faa90..4be32a776a9 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/CalleeReferenceVisitorBase.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/CalleeReferenceVisitorBase.java @@ -50,7 +50,7 @@ public abstract class CalleeReferenceVisitorBase extends JetTreeVisitorVoid { DeclarationDescriptor descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, expression); if (descriptor == null) return; - PsiElement declaration = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor); + PsiElement declaration = BindingContextUtils.descriptorToDeclaration(descriptor); if (declaration == null) return; if (isProperty(descriptor, declaration) || isCallable(descriptor, declaration, expression)) { diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java b/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java index 9589ff59444..59570267712 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java @@ -299,7 +299,7 @@ public class JetLineMarkerProvider implements LineMarkerProvider { if (overriddenMembers.isEmpty()) return; List list = Lists.newArrayList(); for (CallableMemberDescriptor overriddenMember : overriddenMembers) { - PsiElement declarationPsiElement = BindingContextUtils.descriptorToDeclaration(bindingContext, overriddenMember); + PsiElement declarationPsiElement = BindingContextUtils.descriptorToDeclaration(overriddenMember); list.add(declarationPsiElement); } if (list.isEmpty()) { diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceExplicitFunctionLiteralParamWithItIntention.kt b/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceExplicitFunctionLiteralParamWithItIntention.kt index d89c75e8b9c..c4140e6a6e6 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceExplicitFunctionLiteralParamWithItIntention.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceExplicitFunctionLiteralParamWithItIntention.kt @@ -78,8 +78,7 @@ public class ReplaceExplicitFunctionLiteralParamWithItIntention() : PsiElementBa if (variableDescriptor != null) { val containingDescriptor = variableDescriptor.getContainingDeclaration() if (containingDescriptor is AnonymousFunctionDescriptor) { - val context = AnalyzerFacadeWithCache.getContextForElement(expression) - return BindingContextUtils.descriptorToDeclaration(context, containingDescriptor) as? JetFunctionLiteral + return BindingContextUtils.descriptorToDeclaration(containingDescriptor) as? JetFunctionLiteral } } diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceItWithExplicitFunctionLiteralParamIntention.kt b/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceItWithExplicitFunctionLiteralParamIntention.kt index e6ade302640..864bd6472e3 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceItWithExplicitFunctionLiteralParamIntention.kt +++ b/idea/src/org/jetbrains/jet/plugin/intentions/ReplaceItWithExplicitFunctionLiteralParamIntention.kt @@ -41,8 +41,7 @@ public class ReplaceItWithExplicitFunctionLiteralParamIntention() : PsiElementBa val simpleNameReference = simpleNameExpression.getReference() as JetReference? val target = simpleNameReference?.resolveToDescriptors()?.first()!! - val bindingContext = AnalyzerFacadeWithCache.getContextForElement(simpleNameExpression) - val funcExpr = BindingContextUtils.descriptorToDeclaration(bindingContext, target.getContainingDeclaration()!!) as JetFunctionLiteral + val funcExpr = BindingContextUtils.descriptorToDeclaration(target.getContainingDeclaration()!!) as JetFunctionLiteral val newExpr = JetPsiFactory.createExpression(project, "{ it -> 42 }") as JetFunctionLiteralExpression funcExpr.addRangeAfter(newExpr.getFunctionLiteral().getValueParameterList(), diff --git a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/BaseJetVariableMacro.java b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/BaseJetVariableMacro.java index 44d6601b6a6..ac59bcab6e0 100644 --- a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/BaseJetVariableMacro.java +++ b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/BaseJetVariableMacro.java @@ -83,7 +83,7 @@ public abstract class BaseJetVariableMacro extends Macro { List declarations = new ArrayList(); for (DeclarationDescriptor declarationDescriptor : TipsManager.excludeNotCallableExtensions(filteredDescriptors, scope)) { - PsiElement declaration = BindingContextUtils.descriptorToDeclaration(bc, declarationDescriptor); + PsiElement declaration = BindingContextUtils.descriptorToDeclaration(declarationDescriptor); assert declaration == null || declaration instanceof PsiNamedElement; if (declaration instanceof JetProperty || declaration instanceof JetParameter) { 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 1dd4b9fe255..f2ffc7755b1 100644 --- a/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetAnonymousSuperMacro.java +++ b/idea/src/org/jetbrains/jet/plugin/liveTemplates/macro/JetAnonymousSuperMacro.java @@ -102,7 +102,7 @@ public class JetAnonymousSuperMacro extends Macro { if (!classDescriptor.getModality().isOverridable()) continue; ClassKind kind = classDescriptor.getKind(); if (kind == ClassKind.TRAIT || kind == ClassKind.CLASS) { - PsiElement declaration = BindingContextUtils.descriptorToDeclaration(bc, descriptor); + PsiElement declaration = BindingContextUtils.descriptorToDeclaration(descriptor); if (declaration != null) { result.add((PsiNamedElement) declaration); } diff --git a/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java b/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java index c31950ace67..7613ceddfa4 100644 --- a/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java @@ -151,7 +151,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith return true; } - private static String renderParameter(ValueParameterDescriptor parameter, boolean named, BindingContext bindingContext) { + private static String renderParameter(ValueParameterDescriptor parameter, boolean named) { StringBuilder builder = new StringBuilder(); if (named) builder.append("["); if (parameter.getVarargElementType() != null) { @@ -161,7 +161,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith .append(": ") .append(DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(getActualParameterType(parameter))); if (parameter.hasDefaultValue()) { - PsiElement parameterDeclaration = BindingContextUtils.descriptorToDeclaration(bindingContext, parameter); + PsiElement parameterDeclaration = BindingContextUtils.descriptorToDeclaration(parameter); builder.append(" = ").append(getDefaultExpressionString(parameterDeclaration)); } if (named) builder.append("]"); @@ -258,7 +258,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith } else { ValueParameterDescriptor param = valueParameters.get(i); - builder.append(renderParameter(param, false, bindingContext)); + builder.append(renderParameter(param, false)); if (i <= currentParameterIndex && !isArgumentTypeValid(bindingContext, argument, param)) { isGrey = true; } @@ -267,7 +267,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith } else { ValueParameterDescriptor param = valueParameters.get(i); - builder.append(renderParameter(param, false, bindingContext)); + builder.append(renderParameter(param, false)); } } @@ -282,7 +282,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith if (referenceExpression != null && !usedIndexes[j] && param.getName().equals(referenceExpression.getReferencedNameAsName())) { takeAnyArgument = false; usedIndexes[j] = true; - builder.append(renderParameter(param, true, bindingContext)); + builder.append(renderParameter(param, true)); if (i < currentParameterIndex && !isArgumentTypeValid(bindingContext, argument, param)) { isGrey = true; } @@ -301,7 +301,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith ValueParameterDescriptor param = valueParameters.get(j); if (!usedIndexes[j]) { usedIndexes[j] = true; - builder.append(renderParameter(param, true, bindingContext)); + builder.append(renderParameter(param, true)); break; } } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java index aac9af29ccd..d49fe7dac15 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/AddFunctionToSupertypeFix.java @@ -28,7 +28,6 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetNamedFunction; -import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.TypeUtils; @@ -152,8 +151,7 @@ public class AddFunctionToSupertypeFix extends JetHintAction { @NotNull private JetAddFunctionToClassifierAction createAction(Project project, Editor editor, JetFile file) { - BindingContext bindingContext = ResolvePackage.getBindingContext(element); - return new JetAddFunctionToClassifierAction(project, editor, bindingContext, functionsToAdd); + return new JetAddFunctionToClassifierAction(project, editor, functionsToAdd); } public static JetIntentionActionsFactory createFactory() { diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java index d6a0d2db83e..77de3a0334c 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java @@ -145,7 +145,7 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction BindingContext context = ResolvePackage.getBindingContext((JetFile) entry.getContainingFile().getContainingFile()); ResolvedCall resolvedCall = context.get(BindingContext.COMPONENT_RESOLVED_CALL, entry); if (resolvedCall == null) return null; - JetFunction componentFunction = (JetFunction) BindingContextUtils.descriptorToDeclaration(context, resolvedCall.getCandidateDescriptor()); + JetFunction componentFunction = (JetFunction) BindingContextUtils.descriptorToDeclaration(resolvedCall.getCandidateDescriptor()); JetType expectedType = context.get(BindingContext.TYPE, entry.getTypeRef()); if (componentFunction != null && expectedType != null) { return new ChangeFunctionReturnTypeFix(componentFunction, expectedType); @@ -166,7 +166,7 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction BindingContext context = ResolvePackage.getBindingContext(expression.getContainingJetFile()); ResolvedCall resolvedCall = context.get(BindingContext.LOOP_RANGE_HAS_NEXT_RESOLVED_CALL, expression); if (resolvedCall == null) return null; - JetFunction hasNextFunction = (JetFunction) BindingContextUtils.descriptorToDeclaration(context, resolvedCall.getCandidateDescriptor()); + JetFunction hasNextFunction = (JetFunction) BindingContextUtils.descriptorToDeclaration(resolvedCall.getCandidateDescriptor()); if (hasNextFunction != null) { return new ChangeFunctionReturnTypeFix(hasNextFunction, KotlinBuiltIns.getInstance().getBooleanType()); } @@ -186,7 +186,7 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction BindingContext context = ResolvePackage.getBindingContext(expression.getContainingJetFile()); ResolvedCall resolvedCall = BindingContextUtilPackage.getResolvedCall(expression, context); if (resolvedCall == null) return null; - PsiElement compareTo = BindingContextUtils.descriptorToDeclaration(context, resolvedCall.getCandidateDescriptor()); + PsiElement compareTo = BindingContextUtils.descriptorToDeclaration(resolvedCall.getCandidateDescriptor()); if (!(compareTo instanceof JetFunction)) return null; return new ChangeFunctionReturnTypeFix((JetFunction) compareTo, KotlinBuiltIns.getInstance().getIntType()); } @@ -224,7 +224,7 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction } if (overriddenMismatchingFunctions.size() == 1) { - PsiElement overriddenFunction = BindingContextUtils.descriptorToDeclaration(context, overriddenMismatchingFunctions.get(0)); + PsiElement overriddenFunction = BindingContextUtils.descriptorToDeclaration(overriddenMismatchingFunctions.get(0)); if (overriddenFunction instanceof JetFunction) { actions.add(new ChangeFunctionReturnTypeFix((JetFunction) overriddenFunction, functionType)); } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java index 2be9908055b..21853167c83 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java @@ -79,8 +79,7 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction declarations = BindingContextUtils.callableDescriptorToDeclarations(bindingContext, functionDescriptor); + List declarations = BindingContextUtils.callableDescriptorToDeclarations(functionDescriptor); if (declarations.isEmpty()) { return false; } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFix.java index c57626dbf43..e10a09660e8 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFix.java @@ -73,7 +73,7 @@ public class ChangeVariableMutabilityFix implements IntentionAction { BindingContext bindingContext = ResolvePackage.getBindingContext(file); VariableDescriptor descriptor = BindingContextUtils.extractVariableDescriptorIfAny(bindingContext, simpleNameExpression, true); if (descriptor != null) { - PsiElement declaration = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor); + PsiElement declaration = BindingContextUtils.descriptorToDeclaration(descriptor); if (declaration instanceof JetProperty) { return (JetProperty) declaration; } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java index cba92ae55f3..ddb86264a91 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java @@ -112,7 +112,7 @@ public class ChangeVariableTypeFix extends JetIntentionAction resolvedCall = context.get(BindingContext.COMPONENT_RESOLVED_CALL, entry); if (resolvedCall == null) return null; - JetFunction componentFunction = (JetFunction) BindingContextUtils.descriptorToDeclaration(context, resolvedCall.getCandidateDescriptor()); + JetFunction componentFunction = (JetFunction) BindingContextUtils.descriptorToDeclaration(resolvedCall.getCandidateDescriptor()); if (componentFunction == null) return null; JetType expectedType = resolvedCall.getCandidateDescriptor().getReturnType(); return expectedType == null ? null : new ChangeVariableTypeFix(entry, expectedType); @@ -168,7 +168,7 @@ public class ChangeVariableTypeFix extends JetIntentionAction resolvedCall = BindingContextUtilPackage.getResolvedCall(expression, context); if (resolvedCall != null) { - JetFunction declaration = getFunctionDeclaration(context, resolvedCall); + JetFunction declaration = getFunctionDeclaration(resolvedCall); if (declaration != null) { actions.add(new ChangeFunctionReturnTypeFix(declaration, expectedType)); } @@ -84,7 +84,7 @@ public class QuickFixFactoryForTypeMismatchError implements JetIntentionActionsF if (parentBinary.getRight() == expression) { ResolvedCall resolvedCall = BindingContextUtilPackage.getResolvedCall(parentBinary, context); if (resolvedCall != null) { - JetFunction declaration = getFunctionDeclaration(context, resolvedCall); + JetFunction declaration = getFunctionDeclaration(resolvedCall); if (declaration != null) { JetParameter binaryOperatorParameter = declaration.getValueParameterList().getParameters().get(0); actions.add(new ChangeParameterTypeFix(binaryOperatorParameter, expressionType)); @@ -97,7 +97,7 @@ public class QuickFixFactoryForTypeMismatchError implements JetIntentionActionsF if (expression instanceof JetCallExpression) { ResolvedCall resolvedCall = BindingContextUtilPackage.getResolvedCall(expression, context); if (resolvedCall != null) { - JetFunction declaration = getFunctionDeclaration(context, resolvedCall); + JetFunction declaration = getFunctionDeclaration(resolvedCall); if (declaration != null) { actions.add(new ChangeFunctionReturnTypeFix(declaration, expectedType)); } @@ -131,8 +131,8 @@ public class QuickFixFactoryForTypeMismatchError implements JetIntentionActionsF } @Nullable - private static JetFunction getFunctionDeclaration(@NotNull BindingContext context, @NotNull ResolvedCall resolvedCall) { - PsiElement result = QuickFixUtil.safeGetDeclaration(context, resolvedCall); + private static JetFunction getFunctionDeclaration(@NotNull ResolvedCall resolvedCall) { + PsiElement result = QuickFixUtil.safeGetDeclaration(resolvedCall); if (result instanceof JetFunction) { return (JetFunction) result; } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java index c77378bde01..c11eae51e90 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java @@ -110,7 +110,7 @@ public class QuickFixUtil { BindingContext context = ResolvePackage.getBindingContext(callExpression.getContainingJetFile()); ResolvedCall resolvedCall = BindingContextUtilPackage.getResolvedCall(callExpression, context); if (resolvedCall == null) return null; - PsiElement declaration = safeGetDeclaration(context, resolvedCall); + PsiElement declaration = safeGetDeclaration(resolvedCall); if (declaration instanceof JetFunction) { return ((JetFunction) declaration).getValueParameterList(); } @@ -121,8 +121,8 @@ public class QuickFixUtil { } @Nullable - public static PsiElement safeGetDeclaration(@NotNull BindingContext context, @NotNull ResolvedCall resolvedCall) { - List declarations = BindingContextUtils.descriptorToDeclarations(context, resolvedCall.getResultingDescriptor()); + public static PsiElement safeGetDeclaration(@NotNull ResolvedCall resolvedCall) { + List declarations = BindingContextUtils.descriptorToDeclarations(resolvedCall.getResultingDescriptor()); //do not create fix if descriptor has more than one overridden declaration if (declarations.size() == 1) { return declarations.iterator().next(); diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java b/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java index 43af6fed9b4..f4437b73ba5 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/JetRefactoringUtil.java @@ -141,7 +141,7 @@ public class JetRefactoringUtil { @Override public Pair fun(CallableDescriptor descriptor) { return new Pair( - DescriptorToDeclarationUtil.getDeclaration(project, descriptor, bindingContext), + DescriptorToDeclarationUtil.getDeclaration(project, descriptor), descriptor ); } @@ -220,12 +220,8 @@ public class JetRefactoringUtil { } @NotNull - public static String formatClass( - @NotNull DeclarationDescriptor classDescriptor, - @NotNull BindingContext bindingContext, - boolean inCode - ) { - PsiElement element = BindingContextUtils.descriptorToDeclaration(bindingContext, classDescriptor); + public static String formatClass(@NotNull DeclarationDescriptor classDescriptor, boolean inCode) { + PsiElement element = BindingContextUtils.descriptorToDeclaration(classDescriptor); if (element instanceof PsiClass) { return formatPsiClass((PsiClass) element, false, inCode); } @@ -234,12 +230,8 @@ public class JetRefactoringUtil { } @NotNull - public static String formatFunction( - @NotNull DeclarationDescriptor functionDescriptor, - @NotNull BindingContext bindingContext, - boolean inCode - ) { - PsiElement element = BindingContextUtils.descriptorToDeclaration(bindingContext, functionDescriptor); + public static String formatFunction(@NotNull DeclarationDescriptor functionDescriptor, boolean inCode) { + PsiElement element = BindingContextUtils.descriptorToDeclaration(functionDescriptor); if (element instanceof PsiMethod) { return formatPsiMethod((PsiMethod) element, false, inCode); } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignature.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignature.kt index 30ff4ca18a6..f9455868b95 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignature.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignature.kt @@ -135,7 +135,7 @@ public class JetChangeSignature(val project: Project, fun createChangeSignatureDialog(descriptorsForSignatureChange: Collection): JetChangeSignatureDialog? { val baseDescriptor = preferContainedInClass(descriptorsForSignatureChange) - val functionDeclaration = DescriptorToDeclarationUtil.getDeclaration(project, baseDescriptor, bindingContext) + val functionDeclaration = DescriptorToDeclarationUtil.getDeclaration(project, baseDescriptor) if (functionDeclaration == null) { LOG.error("Could not find declaration for $baseDescriptor") return null @@ -145,7 +145,7 @@ public class JetChangeSignature(val project: Project, return null } - val changeSignatureData = JetChangeSignatureData(baseDescriptor, functionDeclaration, bindingContext, descriptorsForSignatureChange) + val changeSignatureData = JetChangeSignatureData(baseDescriptor, functionDeclaration, descriptorsForSignatureChange) configuration.configure(changeSignatureData, bindingContext) return JetChangeSignatureDialog(project, changeSignatureData, defaultValueContext, commandName) } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureData.java b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureData.java index 4c8c8d97254..c39436c600f 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureData.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureData.java @@ -49,20 +49,16 @@ public final class JetChangeSignatureData implements JetMethodDescriptor { @NotNull private final List parameters; @NotNull - private final BindingContext bindingContext; - @NotNull private final Collection descriptorsForSignatureChange; private Collection affectedFunctions = null; public JetChangeSignatureData( @NotNull FunctionDescriptor baseDescriptor, @NotNull PsiElement baseDeclaration, - @NotNull BindingContext bindingContext, @NotNull Collection descriptorsForSignatureChange ) { this.baseDescriptor = baseDescriptor; this.baseDeclaration = baseDeclaration; - this.bindingContext = bindingContext; this.descriptorsForSignatureChange = descriptorsForSignatureChange; final List valueParameters = this.baseDeclaration instanceof JetFunction ? ((JetFunction) this.baseDeclaration).getValueParameters() @@ -110,7 +106,7 @@ public final class JetChangeSignatureData implements JetMethodDescriptor { @NotNull private Collection computeHierarchyFrom(@NotNull FunctionDescriptor baseDescriptor) { - PsiElement declaration = DescriptorToDeclarationUtil.getDeclaration(baseDeclaration.getProject(), baseDescriptor, bindingContext); + PsiElement declaration = DescriptorToDeclarationUtil.getDeclaration(baseDeclaration.getProject(), baseDescriptor); Set result = Sets.newHashSet(); result.add(declaration); if (!(declaration instanceof JetNamedFunction)) { 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 9a329482d48..1e0aa750955 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java @@ -146,7 +146,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro if (!changeInfo.isConstructor() && functionScope != null && !info.getNewName().isEmpty()) { for (FunctionDescriptor conflict : functionScope.getFunctions(Name.identifier(info.getNewName()))) { if (conflict != oldDescriptor && getFunctionParameterTypes(conflict).equals(getFunctionParameterTypes(oldDescriptor))) { - PsiElement conflictElement = BindingContextUtils.descriptorToDeclaration(bindingContext, conflict); + PsiElement conflictElement = BindingContextUtils.descriptorToDeclaration(conflict); result.putValue(conflictElement, "Function already exists: '" + DescriptorRenderer.SHORT_NAMES_IN_TYPES.render(conflict) + "'"); break; } @@ -163,7 +163,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro if (parametersScope != null) { if (changeInfo.isConstructor() && valOrVar != JetValVar.None) { for (VariableDescriptor property : parametersScope.getProperties(Name.identifier(parameterName))) { - PsiElement propertyDeclaration = BindingContextUtils.descriptorToDeclaration(bindingContext, property); + PsiElement propertyDeclaration = BindingContextUtils.descriptorToDeclaration(property); if (propertyDeclaration != null && !(propertyDeclaration.getParent() instanceof JetParameterList)) { result.putValue(propertyDeclaration, "Duplicating property '" + parameterName + "'"); @@ -175,7 +175,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro VariableDescriptor variable = parametersScope.getLocalVariable(Name.identifier(parameterName)); if (variable != null && !(variable instanceof ValueParameterDescriptor)) { - PsiElement conflictElement = BindingContextUtils.descriptorToDeclaration(bindingContext, variable); + PsiElement conflictElement = BindingContextUtils.descriptorToDeclaration(variable); result.putValue(conflictElement, "Duplicating local variable '" + parameterName + "'"); } } @@ -190,7 +190,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro if (containingDeclaration instanceof ClassDescriptor) return ((ClassDescriptor) containingDeclaration).getMemberScope(ContainerUtil.emptyList()); else if (containingDeclaration instanceof FunctionDescriptorImpl) { - PsiElement container = BindingContextUtils.descriptorToDeclaration(bindingContext, containingDeclaration); + PsiElement container = BindingContextUtils.descriptorToDeclaration(containingDeclaration); if (container instanceof JetFunction) return getFunctionBodyScope((JetFunction) container, bindingContext); diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt index 0a8f36c5b81..90172b4c5c0 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt @@ -105,7 +105,7 @@ class ExtractionData( val refOffsetToDeclaration by Delegates.lazy { fun isExtractableIt(descriptor: DeclarationDescriptor, context: BindingContext): Boolean { if (!(descriptor is ValueParameterDescriptor && (context[BindingContext.AUTO_CREATED_IT, descriptor] ?: false))) return false - val function = BindingContextUtils.descriptorToDeclaration(context, descriptor.getContainingDeclaration()) as? JetFunctionLiteral + val function = BindingContextUtils.descriptorToDeclaration(descriptor.getContainingDeclaration()) as? JetFunctionLiteral return function == null || !function.isInsideOf(originalElements) } @@ -122,7 +122,7 @@ class ExtractionData( val descriptor = context[BindingContext.REFERENCE_TARGET, ref] if (descriptor == null) continue - val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor, context) as? PsiNamedElement + val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor) as? PsiNamedElement ?: if (isExtractableIt(descriptor, context)) itFakeDeclaration else continue val offset = ref.getTextRange()!!.getStartOffset() - originalStartOffset diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt index 8e4bbee43e5..59a6da9f30a 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt @@ -284,7 +284,6 @@ fun TypeParameter.collectReferencedTypes(bindingContext: BindingContext): List, nonDenotableTypes: MutableSet, processTypeArguments: Boolean = true @@ -292,7 +291,7 @@ private fun JetType.processTypeIfExtractable( return collectReferencedTypes(processTypeArguments).fold(true) { (extractable, typeToCheck) -> val parameterTypeDescriptor = typeToCheck.getConstructor().getDeclarationDescriptor() as? TypeParameterDescriptor val typeParameter = parameterTypeDescriptor?.let { - BindingContextUtils.descriptorToDeclaration(bindingContext, it) + BindingContextUtils.descriptorToDeclaration(it) } as? JetTypeParameter when { @@ -411,9 +410,7 @@ private fun ExtractionData.inferParametersInfo( } if (referencedClassDescriptor != null) { - if (!referencedClassDescriptor.getDefaultType().processTypeIfExtractable( - bindingContext, typeParameters, nonDenotableTypes, false - )) continue + if (!referencedClassDescriptor.getDefaultType().processTypeIfExtractable(typeParameters, nonDenotableTypes, false)) continue val replacingDescriptor = (originalDescriptor as? ConstructorDescriptor)?.getContainingDeclaration() ?: originalDescriptor replacementMap[refInfo.offsetInBody] = FqNameReplacement(DescriptorUtils.getFqNameSafe(replacingDescriptor)) @@ -436,7 +433,7 @@ private fun ExtractionData.inferParametersInfo( ?: DEFAULT_PARAMETER_TYPE } - if (!parameterType.processTypeIfExtractable(bindingContext, typeParameters, nonDenotableTypes)) continue + if (!parameterType.processTypeIfExtractable(typeParameters, nonDenotableTypes)) continue val parameterTypePredicate = pseudocode.getElementValue(originalRef)?.let { getExpectedTypePredicate(it, valueUsageMap, bindingContext) } ?: AllTypes @@ -470,7 +467,7 @@ private fun ExtractionData.inferParametersInfo( } for (typeToCheck in typeParameters.flatMapTo(HashSet()) { it.collectReferencedTypes(bindingContext) }) { - typeToCheck.processTypeIfExtractable(bindingContext, typeParameters, nonDenotableTypes) + typeToCheck.processTypeIfExtractable(typeParameters, nonDenotableTypes) } parameters.addAll(extractedDescriptorToParameter.values()) @@ -489,7 +486,7 @@ private fun ExtractionData.checkLocalDeclarationsWithNonLocalUsages( pseudocode.traverse(TraversalOrder.FORWARD) { instruction -> if (instruction !in localInstructions) { PseudocodeUtil.extractVariableDescriptorIfAny(instruction, true, bindingContext)?.let { descriptor -> - val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor, bindingContext) + val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor) if (declaration is JetNamedDeclaration && declaration.isInsideOf(originalElements)) { declarations.add(declaration) } @@ -572,7 +569,7 @@ fun ExtractionData.performAnalysis(): AnalysisResult { val (controlFlow, controlFlowMessage) = localInstructions.analyzeControlFlow(pseudocode, bindingContext, options, parameters) controlFlowMessage?.let { messages.add(it) } - controlFlow.returnType.processTypeIfExtractable(bindingContext, typeParameters, nonDenotableTypes) + controlFlow.returnType.processTypeIfExtractable(typeParameters, nonDenotableTypes) if (nonDenotableTypes.isNotEmpty()) { val typeStr = nonDenotableTypes.map {DescriptorRenderer.HTML.renderType(it)}.sort() @@ -633,9 +630,8 @@ fun ExtractionDescriptor.validate(): ExtractionDescriptorWithConflicts { val diagnostics = bindingContext.getDiagnostics().forElement(currentRefExpr) val currentDescriptor = bindingContext[BindingContext.REFERENCE_TARGET, currentRefExpr] - val currentTarget = currentDescriptor?.let { - DescriptorToDeclarationUtil.getDeclaration(extractionData.project, it, bindingContext) - } as? PsiNamedElement + val currentTarget = + currentDescriptor?.let { DescriptorToDeclarationUtil.getDeclaration(extractionData.project, it) } as? PsiNamedElement if (currentTarget is JetParameter && currentTarget.getParent() == function.getValueParameterList()) continue if (currentDescriptor is LocalVariableDescriptor && parameters.any { it.mirrorVarName == currentDescriptor.getName().asString() }) continue diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt index 494066d1346..c93c6312a89 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt @@ -179,7 +179,7 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio val referenceToContext = JetFileReferencesResolver.resolve(element = declaration, visitReceivers = false) for ((refExpr, bindingContext) in referenceToContext) { val refTarget = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.let { descriptor -> - DescriptorToDeclarationUtil.getDeclaration(declaration.getProject(), descriptor, bindingContext) + DescriptorToDeclarationUtil.getDeclaration(declaration.getProject(), descriptor) } if (refTarget == null || refTarget.isInsideOf(elementsToMove)) continue diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt index 7d2963cb7a9..4dda11df8c9 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt @@ -64,7 +64,7 @@ public fun JetElement.updateInternalReferencesOnPackageNameChange( } if (descriptor == null || !descriptor.canBeReferencedViaImport()) continue - val declaration = DescriptorToDeclarationUtil.getDeclaration(file, descriptor, bindingContext) + val declaration = DescriptorToDeclarationUtil.getDeclaration(file, descriptor) if (declaration == null || isAncestor(declaration, true)) continue val fqName = DescriptorUtils.getFqName(descriptor) 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 7ce8f926b59..cb7e811c49f 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/rename/RenameKotlinPropertyProcessor.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/rename/RenameKotlinPropertyProcessor.kt @@ -185,7 +185,7 @@ public class RenameKotlinPropertyProcessor : RenamePsiElementProcessor() { // Take one of supers for now - API doesn't support substitute to several elements (IDEA-48796) val deepest = supers.first() if (deepest != descriptor) { - val superPsiElement = BindingContextUtils.descriptorToDeclaration(bindingContext, deepest) + val superPsiElement = BindingContextUtils.descriptorToDeclaration(deepest) return superPsiElement as? JetProperty } } 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 4fdcf51a169..bd7148e6338 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt @@ -57,7 +57,7 @@ public class KotlinJavaSafeDeleteDelegate : JavaSafeDeleteDelegate { val originalDeclaration = method.unwrapped if (originalDeclaration !is PsiMethod && originalDeclaration !is JetDeclaration) return - if (originalDeclaration != BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor)) return + if (originalDeclaration != BindingContextUtils.descriptorToDeclaration(descriptor)) return val args = callExpression.getValueArguments() 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 90f1d3052ff..50604aad9ee 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt @@ -219,10 +219,10 @@ public class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { .mapTo(ArrayList()) { overridenDescriptor -> JetBundle.message( "x.implements.y", - JetRefactoringUtil.formatFunction(declarationDescriptor, bindingContext, true), - JetRefactoringUtil.formatClass(declarationDescriptor.getContainingDeclaration(), bindingContext, true), - JetRefactoringUtil.formatFunction(overridenDescriptor, bindingContext, true), - JetRefactoringUtil.formatClass(overridenDescriptor.getContainingDeclaration(), bindingContext, true) + JetRefactoringUtil.formatFunction(declarationDescriptor, true), + JetRefactoringUtil.formatClass(declarationDescriptor.getContainingDeclaration(), true), + JetRefactoringUtil.formatFunction(overridenDescriptor, true), + JetRefactoringUtil.formatClass(overridenDescriptor.getContainingDeclaration(), true) ) } } diff --git a/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java b/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java index 745947821f7..8611fb2ed2e 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java +++ b/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java @@ -231,13 +231,9 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent { @NotNull public Collection resolveBuiltInSymbol(@NotNull DeclarationDescriptor declarationDescriptor) { - if (bindingContext == null) { - return Collections.emptyList(); - } - DeclarationDescriptor descriptor = findCurrentDescriptor(declarationDescriptor.getOriginal()); if (descriptor != null) { - return BindingContextUtils.descriptorToDeclarations(bindingContext, descriptor); + return BindingContextUtils.descriptorToDeclarations(descriptor); } return Collections.emptyList(); } diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetReference.kt b/idea/src/org/jetbrains/jet/plugin/references/JetReference.kt index c08ed2d62a9..5fa1a0e0a0d 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetReference.kt +++ b/idea/src/org/jetbrains/jet/plugin/references/JetReference.kt @@ -95,12 +95,12 @@ abstract class AbstractJetReference(element: T) override fun resolveMap(): Map> { val context = AnalyzerFacadeWithCache.getContextForElement(expression) - return getTargetDescriptors(context) keysToMap { resolveToPsiElements(context, it) } + return getTargetDescriptors(context) keysToMap { resolveToPsiElements(it) } } private fun resolveToPsiElements(context: BindingContext, targetDescriptors: Collection): Collection { if (targetDescriptors.isNotEmpty()) { - return targetDescriptors flatMap { target -> resolveToPsiElements(context, target) } + return targetDescriptors flatMap { target -> resolveToPsiElements(target) } } val labelTargets = getLabelTargets(context) @@ -111,11 +111,11 @@ abstract class AbstractJetReference(element: T) return Collections.emptySet() } - private fun resolveToPsiElements(context: BindingContext, targetDescriptor: DeclarationDescriptor): Collection { + private fun resolveToPsiElements(targetDescriptor: DeclarationDescriptor): Collection { val result = HashSet() val project = expression.getProject() - result.addAll(BindingContextUtils.descriptorToDeclarations(context, targetDescriptor)) - result.addAll(DescriptorToDeclarationUtil.findDeclarationsForDescriptorWithoutTrace(project, targetDescriptor)) + result.addAll(BindingContextUtils.descriptorToDeclarations(targetDescriptor)) + result.addAll(DescriptorToDeclarationUtil.findDecompiledAndBuiltInDeclarations(project, targetDescriptor)) if (targetDescriptor is PackageViewDescriptor) { val psiFacade = JavaPsiFacade.getInstance(project) diff --git a/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt b/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt index 5c0fbc7aa1f..cb34f761517 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt +++ b/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt @@ -103,7 +103,7 @@ fun PsiReference.isConstructorUsage(jetClassOrObject: JetClassOrObject): Boolean val descriptor = getCallDescriptor(bindingContext) if (descriptor !is ConstructorDescriptor) return false - return BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor.getContainingDeclaration()) == jetClassOrObject + return BindingContextUtils.descriptorToDeclaration(descriptor.getContainingDeclaration()) == jetClassOrObject } checkJavaUsage() || checkKotlinUsage() diff --git a/idea/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt b/idea/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt index 435c6c4d505..f83ea7f9342 100644 --- a/idea/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt +++ b/idea/src/org/jetbrains/jet/plugin/structureView/KotlinInheritedMembersNodeProvider.kt @@ -52,7 +52,7 @@ public class KotlinInheritedMembersNodeProvider: InheritedMembersNodeProvider { - val superTypeMember = DescriptorToDeclarationUtil.getDeclaration(project, memberDescriptor, context) + val superTypeMember = DescriptorToDeclarationUtil.getDeclaration(project, memberDescriptor) if (superTypeMember is NavigatablePsiElement) { children.add(JetStructureViewElement(superTypeMember, memberDescriptor, true)) } diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java index 8d5ce938f6a..47a17fbdd70 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java @@ -165,10 +165,9 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF new WriteCommandAction(myFixture.getProject(), myFixture.getFile()) { @Override protected void run(Result result) throws Throwable { - OverrideImplementMethodsHandler.generateMethods( - myFixture.getEditor(), classOrObject, - OverrideImplementMethodsHandler - .membersFromDescriptors(jetFile, Collections.singletonList(singleToOverride), resolveSession.getBindingContext())); + OverrideImplementMethodsHandler.generateMethods(myFixture.getEditor(), classOrObject, + OverrideImplementMethodsHandler.membersFromDescriptors(jetFile, Collections.singletonList(singleToOverride)) + ); } }.execute(); } @@ -179,7 +178,7 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF assertNotNull("Caret should be inside class or object", classOrObject); final JetFile jetFile = classOrObject.getContainingJetFile(); - final BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(classOrObject); + BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(classOrObject); Set descriptors = handler.collectMethodsToGenerate(classOrObject, bindingContext); final ArrayList descriptorsList = new ArrayList(descriptors); @@ -195,7 +194,7 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF protected void run(Result result) throws Throwable { OverrideImplementMethodsHandler.generateMethods( myFixture.getEditor(), classOrObject, - OverrideImplementMethodsHandler.membersFromDescriptors(jetFile, descriptorsList, bindingContext)); + OverrideImplementMethodsHandler.membersFromDescriptors(jetFile, descriptorsList)); } }.execute(); } diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/rename/AbstractRenameTest.kt b/idea/tests/org/jetbrains/jet/plugin/refactoring/rename/AbstractRenameTest.kt index e5f3bd37605..a3d8d45d073 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/rename/AbstractRenameTest.kt +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/rename/AbstractRenameTest.kt @@ -190,7 +190,7 @@ public abstract class AbstractRenameTest : MultiFileTestCase() { val bindingContext = jetFile.getBindingContext() val classDescriptor = bindingContext.get(BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, classFqName)!! - val psiElement = BindingContextUtils.descriptorToDeclaration(bindingContext, findDescriptorToRename(classDescriptor))!! + val psiElement = BindingContextUtils.descriptorToDeclaration(findDescriptorToRename(classDescriptor))!! val substitution = RenamePsiElementProcessor.forElement(psiElement).substituteElementToRename(psiElement, null) diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt b/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt index c13cfcf0724..725e4932bbc 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt +++ b/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt @@ -50,7 +50,7 @@ trait CallInfo { fun constructSafeCallIsNeeded(result: JsExpression): JsExpression override fun toString(): String { - val location = DiagnosticUtils.atLocation(context.bindingContext(), callableDescriptor) + val location = DiagnosticUtils.atLocation(callableDescriptor) val name = callableDescriptor.getName().asString() return "callableDescriptor: $name at $location; thisObject: $thisObject; receiverObject: $receiverObject" } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/context/StaticContext.java b/js/js.translator/src/org/jetbrains/k2js/translate/context/StaticContext.java index 69fa312b11d..a9016c8626e 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/context/StaticContext.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/context/StaticContext.java @@ -25,7 +25,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.k2js.config.EcmaVersion; import org.jetbrains.k2js.config.LibrarySourcesConfig; @@ -37,6 +36,7 @@ import org.jetbrains.k2js.translate.utils.JsAstUtils; import java.util.Map; +import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration; import static org.jetbrains.k2js.translate.utils.AnnotationsUtils.getNameForAnnotatedObjectWithOverrides; import static org.jetbrains.k2js.translate.utils.AnnotationsUtils.isLibraryObject; import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.*; @@ -448,10 +448,9 @@ public final class StaticContext { } private String getExternalModuleName(DeclarationDescriptor descriptor) { - PsiElement element = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor); + PsiElement element = descriptorToDeclaration(descriptor); if (element == null && descriptor instanceof PropertyAccessorDescriptor) { - element = BindingContextUtils.descriptorToDeclaration(bindingContext, ((PropertyAccessorDescriptor) descriptor) - .getCorrespondingProperty()); + element = descriptorToDeclaration(((PropertyAccessorDescriptor) descriptor).getCorrespondingProperty()); } if (element == null) { diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java index baad30ccffd..3b4952bb9a8 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java @@ -29,7 +29,6 @@ import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.Modality; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.JetDeclarationWithBody; -import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFunctionLiteralExpression; import org.jetbrains.k2js.translate.context.AliasingContext; import org.jetbrains.k2js.translate.context.Namer; @@ -70,7 +69,7 @@ public final class FunctionTranslator extends AbstractTranslator { this.functionDeclaration = functionDeclaration; this.functionObject = context().getFunctionObject(descriptor); assert this.functionObject.getParameters().isEmpty() - : message(bindingContext(), descriptor, "Function " + functionDeclaration.getText() + " processed for the second time."); + : message(descriptor, "Function " + functionDeclaration.getText() + " processed for the second time."); //NOTE: it's important we compute the context before we start the computation this.functionBodyContext = getFunctionBodyContext(); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java index df06116f109..1a75d256150 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java @@ -88,7 +88,7 @@ public final class InlinedCallExpressionTranslator extends AbstractCallExpressio @NotNull private JetFunction getFunctionBody() { - return getFunctionForDescriptor(bindingContext(), getFunctionDescriptor()); + return getFunctionForDescriptor(getFunctionDescriptor()); } @NotNull diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java b/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java index 1d17503f03f..827713ae145 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java @@ -75,20 +75,16 @@ public final class BindingUtils { } @NotNull - public static JetFunction getFunctionForDescriptor(@NotNull BindingContext context, - @NotNull SimpleFunctionDescriptor descriptor) { - PsiElement result = BindingContextUtils.callableDescriptorToDeclaration(context, descriptor); - assert result instanceof JetFunction - : message(context, descriptor, "SimpleFunctionDescriptor should have declaration of type JetFunction"); + public static JetFunction getFunctionForDescriptor(@NotNull SimpleFunctionDescriptor descriptor) { + PsiElement result = BindingContextUtils.callableDescriptorToDeclaration(descriptor); + assert result instanceof JetFunction : message(descriptor, "SimpleFunctionDescriptor should have declaration of type JetFunction"); return (JetFunction) result; } @NotNull - private static JetParameter getParameterForDescriptor(@NotNull BindingContext context, - @NotNull ValueParameterDescriptor descriptor) { - PsiElement result = BindingContextUtils.descriptorToDeclaration(context, descriptor); - assert result instanceof JetParameter : - message(context, descriptor, "ValueParameterDescriptor should have corresponding JetParameter"); + private static JetParameter getParameterForDescriptor(@NotNull ValueParameterDescriptor descriptor) { + PsiElement result = BindingContextUtils.descriptorToDeclaration(descriptor); + assert result instanceof JetParameter : message(descriptor, "ValueParameterDescriptor should have corresponding JetParameter"); return (JetParameter) result; } @@ -183,21 +179,20 @@ public final class BindingUtils { } @NotNull - public static JetExpression getDefaultArgument(@NotNull BindingContext context, - @NotNull ValueParameterDescriptor parameterDescriptor) { + public static JetExpression getDefaultArgument(@NotNull ValueParameterDescriptor parameterDescriptor) { ValueParameterDescriptor descriptorWhichDeclaresDefaultValue = - getOriginalDescriptorWhichDeclaresDefaultValue(context, parameterDescriptor); - JetParameter psiParameter = getParameterForDescriptor(context, descriptorWhichDeclaresDefaultValue); + getOriginalDescriptorWhichDeclaresDefaultValue(parameterDescriptor); + JetParameter psiParameter = getParameterForDescriptor(descriptorWhichDeclaresDefaultValue); JetExpression defaultValue = psiParameter.getDefaultValue(); - assert defaultValue != null : message(context, parameterDescriptor, "No default value found in PSI"); + assert defaultValue != null : message(parameterDescriptor, "No default value found in PSI"); return defaultValue; } private static ValueParameterDescriptor getOriginalDescriptorWhichDeclaresDefaultValue( - BindingContext context, @NotNull ValueParameterDescriptor parameterDescriptor) { + @NotNull ValueParameterDescriptor parameterDescriptor + ) { ValueParameterDescriptor result = parameterDescriptor; - assert result.hasDefaultValue() : - message(context, parameterDescriptor, "Unsupplied parameter must have default value"); + assert result.hasDefaultValue() : message(parameterDescriptor, "Unsupplied parameter must have default value"); while (!result.declaresDefaultValue()) { result = result.getOverriddenDescriptors().iterator().next(); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/utils/ErrorReportingUtils.java b/js/js.translator/src/org/jetbrains/k2js/translate/utils/ErrorReportingUtils.java index abce7f81c81..897f77e17b6 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/utils/ErrorReportingUtils.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/utils/ErrorReportingUtils.java @@ -21,7 +21,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; import org.jetbrains.jet.lang.psi.JetExpression; -import org.jetbrains.jet.lang.resolve.BindingContext; public final class ErrorReportingUtils { private ErrorReportingUtils() { @@ -43,21 +42,12 @@ public final class ErrorReportingUtils { } @NotNull - public static String message(@NotNull BindingContext context, - @NotNull DeclarationDescriptor descriptor, - @NotNull String explainingMessage) { - return explainingMessage + " at " + DiagnosticUtils.atLocation(context, descriptor) + "."; + public static String message(@NotNull DeclarationDescriptor descriptor, @NotNull String explainingMessage) { + return explainingMessage + " at " + DiagnosticUtils.atLocation(descriptor) + "."; } @NotNull public static String message(@NotNull PsiElement element) { return "Error at " + DiagnosticUtils.atLocation(element) + "."; } - - @NotNull - public static RuntimeException reportErrorWithLocation(@NotNull RuntimeException e, - @NotNull DeclarationDescriptor descriptor, - @NotNull BindingContext bindingContext) { - throw reportErrorWithLocation(e, DiagnosticUtils.atLocation(bindingContext, descriptor)); - } } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/utils/FunctionBodyTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/utils/FunctionBodyTranslator.java index 82730c017af..698a173d881 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/utils/FunctionBodyTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/utils/FunctionBodyTranslator.java @@ -54,7 +54,7 @@ public final class FunctionBodyTranslator extends AbstractTranslator { for (ValueParameterDescriptor valueParameter : descriptor.getValueParameters()) { if (valueParameter.hasDefaultValue()) { JsNameRef jsNameRef = functionBodyContext.getNameForDescriptor(valueParameter).makeRef(); - JetExpression defaultArgument = getDefaultArgument(functionBodyContext.bindingContext(), valueParameter); + JetExpression defaultArgument = getDefaultArgument(valueParameter); JsExpression defaultValue = Translation.translateAsExpression(defaultArgument, functionBodyContext); JsBinaryOperation checkArgIsUndefined = equality(jsNameRef, functionBodyContext.namer().getUndefinedExpression());