diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt index 3c712e1d0b6..8900f6c419e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt @@ -241,11 +241,7 @@ class FileScopeFactory( override fun computeImportedNames() = packageView.memberScope.computeAllNames() - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation): Boolean { - if (names?.let { name in it } != false) return false - packageView.memberScope.recordLookup(name, location) - return true - } + override fun definitelyDoesNotContainName(name: Name) = names?.let { name !in it } == true override fun toString() = "Scope for current package (${filteringKind.name})" 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 63aacd7b718..d62b6e05969 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt @@ -197,13 +197,7 @@ class LazyImportResolver( indexedImports.imports.flatMapToNullable(hashSetOf()) { getImportScope(it).computeImportedNames() } } - fun definitelyDoesNotContainName(name: Name, location: LookupLocation): Boolean { - if (allNames?.let { name in it } != false) return false - indexedImports.importsForName(name).forEach { - getImportScope(it).recordLookup(name, location) - } - return true - } + fun definitelyDoesNotContainName(name: Name) = allNames?.let { name !in it } == true } class LazyImportScope( @@ -283,6 +277,6 @@ class LazyImportScope( p.println("}") } - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation) = importResolver.definitelyDoesNotContainName(name, location) + override fun definitelyDoesNotContainName(name: Name) = importResolver.definitelyDoesNotContainName(name) override fun computeImportedNames() = importResolver.allNames } diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerLevels.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerLevels.kt index f3bab33812d..01961771ce0 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerLevels.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerLevels.kt @@ -89,7 +89,7 @@ internal class MemberScopeTowerLevel( fun definitelyDoesNotContainName(name: Name) = (dispatchReceiver.possibleTypes + dispatchReceiver.receiverValue.type) - .all { !it.isDynamic() && it.memberScope.definitelyDoesNotContainName(name, location) } + .all { !it.isDynamic() && it.memberScope.definitelyDoesNotContainName(name) } private fun collectMembers( getMembers: ResolutionScope.(KotlinType?) -> Collection diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt index 043f7029f8e..c54e043e0bd 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt @@ -199,8 +199,8 @@ class TowerResolver { private fun MemberScopeTowerLevel.mayFitForName(name: Name) = !definitelyDoesNotContainName(name) || !definitelyDoesNotContainName(OperatorNameConventions.INVOKE) - private fun ResolutionScope.mayFitForName(name: Name, location: LookupLocation) = - !definitelyDoesNotContainName(name, location) || !definitelyDoesNotContainName(OperatorNameConventions.INVOKE, location) + private fun ResolutionScope.mayFitForName(name: Name) = + !definitelyDoesNotContainName(name) || !definitelyDoesNotContainName(OperatorNameConventions.INVOKE) fun runWithEmptyTowerData( processor: ScopeTowerProcessor, diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/LexicalScopeStorage.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/LexicalScopeStorage.kt index d0955181caf..f2e67b63155 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/LexicalScopeStorage.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/LexicalScopeStorage.kt @@ -125,6 +125,6 @@ abstract class LexicalScopeStorage( return result } - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation) = + override fun definitelyDoesNotContainName(name: Name) = functionsByName?.get(name) == null && variablesAndClassifiersByName?.get(name) == null } diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/Scopes.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/Scopes.kt index abe76348ff5..8d84419555b 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/Scopes.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/scopes/Scopes.kt @@ -55,7 +55,7 @@ interface LexicalScope : HierarchicalScope { override val kind: LexicalScopeKind get() = LexicalScopeKind.EMPTY - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation) = true + override fun definitelyDoesNotContainName(name: Name) = true override fun printStructure(p: Printer) { p.println("Base lexical scope with owner = $ownerDescriptor and parent = $parent") @@ -130,7 +130,7 @@ interface ImportingScope : HierarchicalScope { override fun computeImportedNames() = emptySet() - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation) = true + override fun definitelyDoesNotContainName(name: Name) = true } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt index d7834eab324..4b3633aa5d1 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt @@ -218,8 +218,7 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS override fun getVariableNames() = propertyNamesLazy override fun getClassifierNames() = classNamesLazy - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation): Boolean { - recordLookup(name, location) + override fun definitelyDoesNotContainName(name: Name): Boolean { return name !in functionNamesLazy && name !in propertyNamesLazy && name !in classNamesLazy } diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/InnerClassesScopeWrapper.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/InnerClassesScopeWrapper.kt index e9bec2bbe08..10f0011be3d 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/InnerClassesScopeWrapper.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/InnerClassesScopeWrapper.kt @@ -44,7 +44,7 @@ class InnerClassesScopeWrapper(val workerScope: MemberScope) : MemberScopeImpl() override fun getVariableNames() = workerScope.getVariableNames() override fun getClassifierNames() = workerScope.getClassifierNames() - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation) = workerScope.definitelyDoesNotContainName(name, location) + override fun definitelyDoesNotContainName(name: Name) = workerScope.definitelyDoesNotContainName(name) override fun toString() = "Classes from $workerScope" } diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ResolutionScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ResolutionScope.kt index 09315421f7f..0a772b52259 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ResolutionScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ResolutionScope.kt @@ -40,7 +40,7 @@ interface ResolutionScope { nameFilter: (Name) -> Boolean = MemberScope.ALL_NAME_FILTER ): Collection - fun definitelyDoesNotContainName(name: Name, location: LookupLocation): Boolean = false + fun definitelyDoesNotContainName(name: Name): Boolean = false fun recordLookup(name: Name, location: LookupLocation) { getContributedFunctions(name, location) 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 f4e94ab06d7..d4cae2f38cb 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt @@ -83,7 +83,7 @@ class SubstitutingScope(private val workerScope: MemberScope, givenSubstitutor: override fun getVariableNames() = workerScope.getVariableNames() override fun getClassifierNames() = workerScope.getClassifierNames() - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation) = workerScope.definitelyDoesNotContainName(name, location) + override fun definitelyDoesNotContainName(name: Name) = workerScope.definitelyDoesNotContainName(name) override fun printScopeStructure(p: Printer) { p.println(this::class.java.simpleName, " {") diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java index 0a412f71927..cf21ac75fe3 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java @@ -231,7 +231,7 @@ public class ErrorUtils { } @Override - public boolean definitelyDoesNotContainName(@NotNull Name name, @NotNull LookupLocation location) { + public boolean definitelyDoesNotContainName(@NotNull Name name) { return false; } @@ -306,7 +306,7 @@ public class ErrorUtils { } @Override - public boolean definitelyDoesNotContainName(@NotNull Name name, @NotNull LookupLocation location) { + public boolean definitelyDoesNotContainName(@NotNull Name name) { return false; } diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt index fbe1e3b3e71..f3a6c79e598 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt @@ -107,7 +107,7 @@ class MetadataPackageFragment( containerSource = null, components = components, classNames = { emptyList() } ) { override fun hasClass(name: Name): Boolean = hasTopLevelClass(name) - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation) = false + override fun definitelyDoesNotContainName(name: Name) = false override fun getClassifierNames(): Set? = null }) 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 3145304b9a6..d46f1158a7e 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 @@ -78,8 +78,7 @@ abstract class DeserializedMemberScope protected constructor( override fun getVariableNames() = variableNamesLazy override fun getClassifierNames(): Set? = classNames + typeAliasNames - override fun definitelyDoesNotContainName(name: Name, location: LookupLocation): Boolean { - recordLookup(name, location) + override fun definitelyDoesNotContainName(name: Name): Boolean { return name !in functionNamesLazy && name !in variableNamesLazy && name !in classNames && name !in typeAliasNames }