diff --git a/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.java b/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.java index b6b55e1067d..bc1b121275e 100644 --- a/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.java +++ b/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.java @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.calls.callResolverUtil.CallResolverUtilPackage; import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilPackage; import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.types.JetType; import org.jetbrains.kotlin.types.TypeUtils; import org.jetbrains.kotlin.types.checker.JetTypeChecker; @@ -59,7 +60,7 @@ public class CodegenUtil { @NotNull ClassifierDescriptor returnedClassifier, @NotNull ClassifierDescriptor... valueParameterClassifiers ) { - Collection functions = owner.getDefaultType().getMemberScope().getFunctions(name); + Collection functions = owner.getDefaultType().getMemberScope().getFunctions(name, Location.NOWHERE); for (FunctionDescriptor function : functions) { if (!CallResolverUtilPackage.isOrOverridesSynthesized(function) && function.getTypeParameters().isEmpty() diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java index 852620a056b..52d914cb291 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java @@ -36,6 +36,7 @@ import org.jetbrains.kotlin.load.kotlin.PackageClassUtils; import org.jetbrains.kotlin.psi.JetElement; import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.DescriptorUtils; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.types.JetType; import org.jetbrains.kotlin.types.expressions.OperatorConventions; import org.jetbrains.kotlin.utils.UtilsPackage; @@ -452,6 +453,6 @@ public class ClosureCodegen extends MemberCodegen { ClassDescriptor elementClass = elementDescriptor.getExtensionReceiverParameter() == null ? getBuiltIns(elementDescriptor).getFunction(arity) : getBuiltIns(elementDescriptor).getExtensionFunction(arity); - return elementClass.getDefaultType().getMemberScope().getFunctions(OperatorConventions.INVOKE).iterator().next(); + return elementClass.getDefaultType().getMemberScope().getFunctions(OperatorConventions.INVOKE, Location.NOWHERE).iterator().next(); } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index b64af0caa0b..ad90defef51 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -62,6 +62,7 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmClassSignature; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterKind; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterSignature; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver; @@ -401,7 +402,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } private boolean isGenericToArrayPresent() { - Collection functions = descriptor.getDefaultType().getMemberScope().getFunctions(Name.identifier("toArray")); + Collection functions = + descriptor.getDefaultType().getMemberScope().getFunctions(Name.identifier("toArray"), Location.NOWHERE); for (FunctionDescriptor function : functions) { if (CallResolverUtilPackage.isOrOverridesSynthesized(function)) { continue; @@ -815,7 +817,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { Type type = typeMapper.mapType(getBuiltIns(descriptor).getArrayType(INVARIANT, descriptor.getDefaultType())); FunctionDescriptor valuesFunction = - KotlinPackage.single(descriptor.getStaticScope().getFunctions(ENUM_VALUES), new Function1() { + KotlinPackage.single(descriptor.getStaticScope().getFunctions(ENUM_VALUES, Location.NOWHERE), new Function1() { @Override public Boolean invoke(FunctionDescriptor descriptor) { return CodegenUtil.isEnumValuesMethod(descriptor); @@ -835,7 +837,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { private void generateEnumValueOfMethod() { FunctionDescriptor valueOfFunction = - KotlinPackage.single(descriptor.getStaticScope().getFunctions(ENUM_VALUE_OF), new Function1() { + KotlinPackage.single(descriptor.getStaticScope().getFunctions(ENUM_VALUE_OF, Location.NOWHERE), new Function1() { @Override public Boolean invoke(FunctionDescriptor descriptor) { return CodegenUtil.isEnumValueOfMethod(descriptor); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java index 7d3b86c7c76..fb7f2ff3654 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.JetFile; import org.jetbrains.kotlin.resolve.DescriptorUtils; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.types.JetType; import org.jetbrains.kotlin.types.expressions.OperatorConventions; import org.jetbrains.org.objectweb.asm.MethodVisitor; @@ -148,7 +149,7 @@ public class SamWrapperCodegen { (ClassDescriptor) erasedInterfaceFunction.getContainingDeclaration(), OwnerKind.IMPLEMENTATION, state), cv, state, parentCodegen); FunctionDescriptor invokeFunction = - functionJetType.getMemberScope().getFunctions(OperatorConventions.INVOKE).iterator().next().getOriginal(); + functionJetType.getMemberScope().getFunctions(OperatorConventions.INVOKE, Location.NOWHERE).iterator().next().getOriginal(); StackValue functionField = StackValue.field(functionType, ownerType, FUNCTION_FIELD_NAME, false, StackValue.none()); codegen.genDelegate(erasedInterfaceFunction, invokeFunction, functionField); diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java index 510ae307971..8e704e4c916 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java @@ -44,6 +44,7 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmSignaturePackage; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapper; import org.jetbrains.kotlin.resolve.scopes.JetScope; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.types.*; import java.util.*; @@ -302,7 +303,7 @@ public class SignaturesPropagationData { Name name = method.getName(); JvmMethodSignature autoSignature = SIGNATURE_MAPPER.mapToJvmMethodSignature(autoMethodDescriptor); for (JetType supertype : containingClass.getTypeConstructor().getSupertypes()) { - Collection superFunctionCandidates = supertype.getMemberScope().getFunctions(name); + Collection superFunctionCandidates = supertype.getMemberScope().getFunctions(name, Location.NOWHERE); for (FunctionDescriptor candidate : superFunctionCandidates) { JvmMethodSignature candidateSignature = SIGNATURE_MAPPER.mapToJvmMethodSignature(candidate); if (JvmSignaturePackage.erasedSignaturesEqualIgnoringReturnTypes(autoSignature, candidateSignature)) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt index b03f037510d..a17b22d7a3e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt @@ -50,7 +50,7 @@ class AllUnderImportsScope : JetScope { return scopes.flatMap { it.getProperties(name) } } - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { return scopes.flatMap { it.getFunctions(name) } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java index b2ec0d3dcf8..98f08d1ff9b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java @@ -734,7 +734,7 @@ public class OverrideResolver { ) { for (JetType supertype : declaringClass.getTypeConstructor().getSupertypes()) { Set all = Sets.newLinkedHashSet(); - all.addAll(supertype.getMemberScope().getFunctions(declared.getName())); + all.addAll(supertype.getMemberScope().getFunctions(declared.getName(), Location.NOWHERE)); //noinspection unchecked all.addAll((Collection) supertype.getMemberScope().getProperties(declared.getName(), Location.NOWHERE)); for (CallableMemberDescriptor fromSuper : all) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java index c7caa605492..5fe877ce391 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java @@ -234,7 +234,7 @@ public class QualifiedExpressionResolver { } if (lookupMode == LookupMode.EVERYTHING) { - descriptors.addAll(outerScope.getFunctions(referencedName)); + descriptors.addAll(outerScope.getFunctions(referencedName, Location.NOWHERE)); descriptors.addAll(outerScope.getProperties(referencedName, Location.NOWHERE)); VariableDescriptor localVariable = outerScope.getLocalVariable(referencedName); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/SingleImportScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/SingleImportScope.kt index 188990bcf7f..4269ba34168 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/SingleImportScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/SingleImportScope.kt @@ -33,7 +33,7 @@ class SingleImportScope(private val aliasName: Name, private val descriptors: Co override fun getProperties(name: Name, location: Location) = if (name == aliasName) descriptors.filterIsInstance() else emptyList() - override fun getFunctions(name: Name) + override fun getFunctions(name: Name, location: Location) = if (name == aliasName) descriptors.filterIsInstance() else emptyList() override fun getContainingDeclaration(): DeclarationDescriptor = throw UnsupportedOperationException() diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt index 088e7ffcc87..688e1406c60 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt @@ -49,7 +49,7 @@ object DynamicCallableDescriptors { p.println(javaClass.getSimpleName(), ": dynamic candidates for " + call) } - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { if (isAugmentedAssignmentConvention(name)) return listOf() if (call.getCallType() == Call.CallType.INVOKE && call.getValueArgumentList() == null && call.getFunctionLiteralArguments().isEmpty()) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.java index f77f4ef1dcd..a76f9581e60 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.java @@ -134,7 +134,7 @@ public class LazyDeclarationResolver { @Override public DeclarationDescriptor visitNamedFunction(@NotNull JetNamedFunction function, Void data) { JetScope scopeForDeclaration = resolutionScopeToResolveDeclaration(function); - scopeForDeclaration.getFunctions(function.getNameAsSafeName()); + scopeForDeclaration.getFunctions(function.getNameAsSafeName(), Location.NOWHERE); return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, function); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt index 2e9ac103dc2..2acefedc88b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt @@ -253,7 +253,7 @@ class LazyImportScope( override fun getLocalVariable(name: Name) = null - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { if (filteringKind == FilteringKind.INVISIBLE_CLASSES) return listOf() return importResolver.collectFromImports(name, LookupMode.EVERYTHING) { scope, name -> scope.getFunctions(name) } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt index 25b97994d52..87c30685663 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt @@ -64,7 +64,7 @@ protected constructor( override fun getClassifier(name: Name): ClassDescriptor? = classDescriptors(name).firstOrNull() - override fun getFunctions(name: Name): Collection = functionDescriptors(name) + override fun getFunctions(name: Name, location: Location): Collection = functionDescriptors(name) private fun doGetFunctions(name: Name): Collection { val result = Sets.newLinkedHashSet() diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt index 4732a177c8b..b963760bb33 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt @@ -115,7 +115,7 @@ public open class LazyClassMemberScope( OverrideResolver.resolveUnknownVisibilities(result, trace) } - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { // TODO: this should be handled by lazy function descriptors val functions = super.getFunctions(name) resolveUnknownVisibilitiesForMembers(functions) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt index b6a47866b5f..a2226105a3a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt @@ -156,7 +156,7 @@ public class WritableScopeImpl @jvmOverloads constructor( functionsByName!![name] = functionsByName!![name] + descriptorIndex } - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { checkMayRead() return concatInOrder(functionsByName(name), workerScope.getFunctions(name)) @@ -270,7 +270,7 @@ public class WritableScopeImpl @jvmOverloads constructor( return workerScope.getLocalVariable(name) } - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { checkMayRead() return concatInOrder(functionsByName(name, descriptorLimit), workerScope.getFunctions(name)) diff --git a/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AbstractAnnotationDescriptorResolveTest.java b/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AbstractAnnotationDescriptorResolveTest.java index 8827b7d1ff4..1aa06c2aa1d 100644 --- a/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AbstractAnnotationDescriptorResolveTest.java +++ b/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AbstractAnnotationDescriptorResolveTest.java @@ -153,7 +153,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends JetLiteFix protected static FunctionDescriptor getFunctionDescriptor(@NotNull PackageFragmentDescriptor packageView, @NotNull String name) { Name functionName = Name.identifier(name); JetScope memberScope = packageView.getMemberScope(); - Collection functions = memberScope.getFunctions(functionName); + Collection functions = memberScope.getFunctions(functionName, Location.NOWHERE); assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + packageView.getName(); return functions.iterator().next(); } @@ -162,7 +162,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends JetLiteFix private static FunctionDescriptor getFunctionDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) { Name functionName = Name.identifier(name); JetScope memberScope = classDescriptor.getMemberScope(Collections.emptyList()); - Collection functions = memberScope.getFunctions(functionName); + Collection functions = memberScope.getFunctions(functionName, Location.NOWHERE); assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + classDescriptor.getName(); return functions.iterator().next(); } diff --git a/compiler/tests/org/jetbrains/kotlin/test/util/DescriptorValidator.java b/compiler/tests/org/jetbrains/kotlin/test/util/DescriptorValidator.java index f3145ba52a2..5181fd4bb76 100644 --- a/compiler/tests/org/jetbrains/kotlin/test/util/DescriptorValidator.java +++ b/compiler/tests/org/jetbrains/kotlin/test/util/DescriptorValidator.java @@ -418,7 +418,7 @@ public class DescriptorValidator { public Void visitFunctionDescriptor( FunctionDescriptor descriptor, JetScope scope ) { - assertFound(scope, descriptor, scope.getFunctions(descriptor.getName())); + assertFound(scope, descriptor, scope.getFunctions(descriptor.getName(), Location.NOWHERE)); return null; } diff --git a/compiler/tests/org/jetbrains/kotlin/types/BoundsSubstitutorTest.java b/compiler/tests/org/jetbrains/kotlin/types/BoundsSubstitutorTest.java index 5ee089afcea..5fd26d08e31 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/BoundsSubstitutorTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/BoundsSubstitutorTest.java @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.psi.JetFile; import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment; import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.test.ConfigurationKind; import java.util.Collection; @@ -72,7 +73,8 @@ public class BoundsSubstitutorTest extends KotlinTestWithEnvironment { private void doTest(String text, String expected) { JetFile jetFile = JetPsiFactory(getProject()).createFile("fun.kt", text); ModuleDescriptor module = LazyResolveTestUtil.resolveLazily(Collections.singletonList(jetFile), getEnvironment()); - Collection functions = module.getPackage(FqName.ROOT).getMemberScope().getFunctions(Name.identifier("f")); + Collection functions = + module.getPackage(FqName.ROOT).getMemberScope().getFunctions(Name.identifier("f"), Location.NOWHERE); assert functions.size() == 1 : "Many functions defined"; FunctionDescriptor function = ContainerUtil.getFirstItem(functions); diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt index ba85d53fa69..106b86e8c21 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt @@ -218,7 +218,7 @@ public abstract class LazyJavaMemberScope( return ResolvedValueParameters(descriptors, synthesizedNames) } - override fun getFunctions(name: Name) = functions(name) + override fun getFunctions(name: Name, location: Location) = functions(name) protected open fun getFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection = memberIndex().getMethodNames(nameFilter) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt index cb0a40cbcad..945c8e4c361 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt @@ -73,7 +73,7 @@ public class LazyPackageFragmentScopeForJavaPackage( override fun getClassifier(name: Name): ClassifierDescriptor? = classes(name) override fun getProperties(name: Name, location: Location) = deserializedPackageScope().getProperties(name) - override fun getFunctions(name: Name) = deserializedPackageScope().getFunctions(name) + super.getFunctions(name) + override fun getFunctions(name: Name, location: Location) = deserializedPackageScope().getFunctions(name) + super.getFunctions(name) override fun addExtraDescriptors(result: MutableSet, kindFilter: DescriptorKindFilter, diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java index 5507a22eb2f..cf10714de9e 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java @@ -34,6 +34,7 @@ import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.constants.ConstantValue; import org.jetbrains.kotlin.resolve.scopes.JetScope; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.storage.LockBasedStorageManager; import org.jetbrains.kotlin.types.*; import org.jetbrains.kotlin.types.checker.JetTypeChecker; @@ -1018,6 +1019,6 @@ public class KotlinBuiltIns { @NotNull public FunctionDescriptor getIdentityEquals() { - return KotlinPackage.first(getBuiltInsPackageFragment().getMemberScope().getFunctions(Name.identifier("identityEquals"))); + return KotlinPackage.first(getBuiltInsPackageFragment().getMemberScope().getFunctions(Name.identifier("identityEquals"), Location.NOWHERE)); } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassScope.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassScope.kt index b59915b21af..b8d2a928121 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassScope.kt @@ -48,7 +48,7 @@ class FunctionClassScope( return allDescriptors() } - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { return allDescriptors().filterIsInstance().filter { it.getName() == name } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java index e02f44595eb..07ebebab7b4 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java @@ -204,13 +204,13 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase { @NotNull @Override - public Collection getFunctions(@NotNull Name name) { + public Collection getFunctions(@NotNull Name name, @NotNull Location location) { return functions.invoke(name); } @NotNull private Collection computeFunctions(@NotNull Name name) { - return resolveFakeOverrides(name, getSupertypeScope().getFunctions(name)); + return resolveFakeOverrides(name, getSupertypeScope().getFunctions(name, Location.NOWHERE)); } @NotNull @@ -266,7 +266,7 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase { private Collection computeAllDeclarations() { Collection result = new HashSet(); for (Name name : enumMemberNames.invoke()) { - result.addAll(getFunctions(name)); + result.addAll(getFunctions(name, Location.NOWHERE)); result.addAll(getProperties(name, Location.NOWHERE)); } return result; diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt index fae9a5a39d5..33d831185ad 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt @@ -31,7 +31,7 @@ public abstract class AbstractScopeAdapter : JetScope { return workerScope.getImplicitReceiversHierarchy() } - override fun getFunctions(name: Name): Collection { + override fun getFunctions(name: Name, location: Location): Collection { return workerScope.getFunctions(name) } diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt index 847ad8ad901..ebfa671371e 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt @@ -62,7 +62,7 @@ public open class ChainedScope( override fun getLocalVariable(name: Name): VariableDescriptor? = getFirstMatch { it.getLocalVariable(name) } - override fun getFunctions(name: Name): Collection + override fun getFunctions(name: Name, location: Location): Collection = getFromAllScopes { it.getFunctions(name) } override fun getSyntheticExtensionProperties(receiverTypes: Collection, name: Name): Collection diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt index 1a946e0cbf3..8ac95c3a375 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt @@ -29,7 +29,7 @@ public class ExplicitImportsScope(private val descriptors: Collection() - override fun getFunctions(name: Name) = descriptors.filter { it.getName() == name }.filterIsInstance() + override fun getFunctions(name: Name, location: Location) = descriptors.filter { it.getName() == name }.filterIsInstance() override fun getContainingDeclaration() = throw UnsupportedOperationException() diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt index 76fcdaa0de5..a625cbbb917 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.utils.Printer public class FilteringScope(private val workerScope: JetScope, private val predicate: (DeclarationDescriptor) -> Boolean) : JetScope { - override fun getFunctions(name: Name) = workerScope.getFunctions(name).filter(predicate) + override fun getFunctions(name: Name, location: Location) = workerScope.getFunctions(name).filter(predicate) override fun getContainingDeclaration() = workerScope.getContainingDeclaration() diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScope.kt index 15bb2ab8532..8c46f2fe457 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScope.kt @@ -33,7 +33,7 @@ public interface JetScope { public fun getLocalVariable(name: Name): VariableDescriptor? - public fun getFunctions(name: Name): Collection + public fun getFunctions(name: Name, location: Location = Location.NOWHERE): Collection public fun getSyntheticExtensionProperties(receiverTypes: Collection, name: Name): Collection diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScopeImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScopeImpl.kt index 42641d702cf..139a85f1243 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScopeImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/JetScopeImpl.kt @@ -30,7 +30,7 @@ public abstract class JetScopeImpl : JetScope { override fun getPackage(name: Name): PackageViewDescriptor? = null - override fun getFunctions(name: Name): Collection = setOf() + override fun getFunctions(name: Name, location: Location): Collection = setOf() override fun getSyntheticExtensionProperties(receiverTypes: Collection, name: Name): Collection = listOf() diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt index 579019ce433..43ab55086d1 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt @@ -44,7 +44,7 @@ public class StaticScopeForKotlinClass( override fun getOwnDeclaredDescriptors() = functions - override fun getFunctions(name: Name) = functions.filterTo(ArrayList(2)) { it.getName() == name } + override fun getFunctions(name: Name, location: Location) = functions.filterTo(ArrayList(2)) { it.getName() == name } override fun getContainingDeclaration() = containingClass diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt index 212cc34709c..16a94e4e0fd 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt @@ -67,7 +67,7 @@ public class SubstitutingScope(private val workerScope: JetScope, private val su override fun getClassifier(name: Name) = substitute(workerScope.getClassifier(name)) - override fun getFunctions(name: Name) = substitute(workerScope.getFunctions(name)) + override fun getFunctions(name: Name, location: Location) = substitute(workerScope.getFunctions(name)) override fun getSyntheticExtensionProperties(receiverTypes: Collection, name: Name): Collection = substitute(workerScope.getSyntheticExtensionProperties(receiverTypes, name)) diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java index 2dd7ec8f1fa..f87a75b003f 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java @@ -124,7 +124,7 @@ public class ErrorUtils { @NotNull @Override - public Set getFunctions(@NotNull Name name) { + public Set getFunctions(@NotNull Name name, @NotNull Location location) { return Collections.singleton(createErrorFunction(this)); } @@ -204,7 +204,7 @@ public class ErrorUtils { @NotNull @Override - public Collection getFunctions(@NotNull Name name) { + public Collection getFunctions(@NotNull Name name, @NotNull Location location) { throw new IllegalStateException(); } diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt index 8464ff9f1d0..76bb9499002 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt @@ -93,7 +93,7 @@ public abstract class DeserializedMemberScope protected constructor( protected open fun computeNonDeclaredFunctions(name: Name, functions: MutableCollection) { } - override fun getFunctions(name: Name): Collection = functions(name) + override fun getFunctions(name: Name, location: Location): Collection = functions(name) private fun computeProperties(name: Name): Collection { val descriptors = computeMembers(name, Kind.PROPERTY) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.java index 72fc37ec887..e785e6f8392 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.java @@ -140,7 +140,7 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport if (declaration instanceof JetFunction) { JetFunction jetFunction = (JetFunction) declaration; Name name = jetFunction.getNameAsSafeName(); - Collection functions = packageDescriptor.getMemberScope().getFunctions(name); + Collection functions = packageDescriptor.getMemberScope().getFunctions(name, Location.NOWHERE); for (FunctionDescriptor descriptor : functions) { ForceResolveUtil.forceResolveAllContents(descriptor); } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java index 47fc67df791..978c4caf017 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java @@ -54,6 +54,7 @@ import org.jetbrains.kotlin.renderer.NameShortness; import org.jetbrains.kotlin.resolve.FunctionDescriptorUtil; import org.jetbrains.kotlin.resolve.VisibilityUtil; import org.jetbrains.kotlin.resolve.scopes.JetScope; +import org.jetbrains.kotlin.resolve.scopes.Location; import org.jetbrains.kotlin.types.JetType; import org.jetbrains.kotlin.types.TypeUtils; import org.jetbrains.kotlin.types.checker.JetTypeChecker; @@ -267,7 +268,7 @@ public class ChangeMemberFunctionSignatureFix extends JetHintAction conflicts = oldDescriptor instanceof FunctionDescriptor - ? callableScope.getFunctions(newName) + ? callableScope.getFunctions(newName, Location.NOWHERE) : callableScope.getProperties(newName, Location.NOWHERE); for (CallableDescriptor conflict : conflicts) { if (conflict == oldDescriptor) continue; diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java index e97c682ce00..e828d2f6bd5 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter; import org.jetbrains.kotlin.resolve.scopes.JetScope; +import org.jetbrains.kotlin.resolve.scopes.Location; import java.util.*; @@ -247,7 +248,8 @@ public class ManglingUtils { @NotNull public static String getStableMangledNameForDescriptor(@NotNull ClassDescriptor descriptor, @NotNull String functionName) { - Collection functions = descriptor.getDefaultType().getMemberScope().getFunctions(Name.identifier(functionName)); + Collection functions = + descriptor.getDefaultType().getMemberScope().getFunctions(Name.identifier(functionName), Location.NOWHERE); assert functions.size() == 1 : "Can't select a single function: " + functionName + " in " + descriptor; return getSuggestedName((DeclarationDescriptor) functions.iterator().next()); }