From 1e51e333ab157138f1601a20f5a21b301d4dc635 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 2 Nov 2015 21:16:17 +0300 Subject: [PATCH] Minor: add comments to LazyJavaStaticClassScope, LazyJavaPackageScope and StaticScopeForKotlinClass --- .../java/lazy/descriptors/LazyJavaPackageScope.kt | 2 ++ .../lazy/descriptors/LazyJavaStaticClassScope.kt | 5 ++++- .../resolve/scopes/StaticScopeForKotlinClass.kt | 12 +++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt index 36f5c92e44e..0d47dfa425a 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt @@ -107,11 +107,13 @@ public class LazyJavaPackageScope( } override fun getProperties(name: Name, location: LookupLocation): Collection { + // We should track lookups here because this scope can be used for kotlin packages too (if it doesn't contain toplevel properties nor functions). recordLookup(name, location) return deserializedPackageScope().getProperties(name, NoLookupLocation.FOR_ALREADY_TRACKED) } override fun getFunctions(name: Name, location: LookupLocation): List { + // We should track lookups here because this scope can be used for kotlin packages too (if it doesn't contain toplevel properties nor functions). recordLookup(name, location) return deserializedPackageScope().getFunctions(name, NoLookupLocation.FOR_ALREADY_TRACKED) + super.getFunctions(name, NoLookupLocation.FOR_ALREADY_TRACKED) } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaStaticClassScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaStaticClassScope.kt index fbb788c3fd9..507308a46f3 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaStaticClassScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaStaticClassScope.kt @@ -63,7 +63,10 @@ public class LazyJavaStaticClassScope( memberIndex().getAllFieldNames() + (if (jClass.isEnum) listOf(DescriptorUtils.ENUM_VALUES) else emptyList()) override fun getClassNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection = listOf() - override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? = null + override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? { + // We don't need to track lookups here because we find nested/inner classes in LazyJavaClassMemberScope + return null + } override fun getSubPackages(): 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 132966fec57..1608298ff7a 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt @@ -16,15 +16,17 @@ package org.jetbrains.kotlin.resolve.scopes -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.FunctionDescriptor +import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValueOfMethod -import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValuesMethod -import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValuesProperty +import org.jetbrains.kotlin.resolve.DescriptorFactory.* import org.jetbrains.kotlin.utils.Printer -import java.util.ArrayList +import java.util.* +// We don't need to track lookups here since this scope used only for introduce special Enum class members public class StaticScopeForKotlinClass( private val containingClass: ClassDescriptor ) : KtScopeImpl() {