Rename LexicalScope.Empty -> Base
"Empty" is slightly confusing because although the scope has no declared symbols, it is not empty: it has a parent scope which can contain symbols and can have parents as well
This commit is contained in:
+1
-1
@@ -109,7 +109,7 @@ open class PartialAnalysisHandlerExtension : AnalysisHandlerExtension {
|
|||||||
val containingDescriptor = containingDeclaration ?: return null
|
val containingDescriptor = containingDeclaration ?: return null
|
||||||
return when (containingDescriptor) {
|
return when (containingDescriptor) {
|
||||||
is ClassDescriptorWithResolutionScopes -> containingDescriptor.scopeForInitializerResolution
|
is ClassDescriptorWithResolutionScopes -> containingDescriptor.scopeForInitializerResolution
|
||||||
is PackageFragmentDescriptor -> LexicalScope.Empty(containingDescriptor.getMemberScope().memberScopeAsImportingScope(), this)
|
is PackageFragmentDescriptor -> LexicalScope.Base(containingDescriptor.getMemberScope().memberScopeAsImportingScope(), this)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ class FileScopeFactory(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val lexicalScope = LexicalScope.Empty(lazyImportingScope, topLevelDescriptorProvider.getPackageFragment(file.packageFqName)!!)
|
val lexicalScope = LexicalScope.Base(lazyImportingScope, topLevelDescriptorProvider.getPackageFragment(file.packageFqName)!!)
|
||||||
|
|
||||||
val importResolver = object : ImportResolver {
|
val importResolver = object : ImportResolver {
|
||||||
override fun forceResolveAllImports() {
|
override fun forceResolveAllImports() {
|
||||||
|
|||||||
+1
-1
@@ -129,7 +129,7 @@ class LazyAnnotationDescriptor(
|
|||||||
private val source = annotationEntry.toSourceElement()
|
private val source = annotationEntry.toSourceElement()
|
||||||
|
|
||||||
val scope = if (c.scope.ownerDescriptor is PackageFragmentDescriptor) {
|
val scope = if (c.scope.ownerDescriptor is PackageFragmentDescriptor) {
|
||||||
LexicalScope.Empty(c.scope, FileDescriptorForVisibilityChecks(source, c.scope.ownerDescriptor))
|
LexicalScope.Base(c.scope, FileDescriptorForVisibilityChecks(source, c.scope.ownerDescriptor))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
c.scope
|
c.scope
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ interface HierarchicalScope : ResolutionScope {
|
|||||||
fun printStructure(p: Printer)
|
fun printStructure(p: Printer)
|
||||||
}
|
}
|
||||||
|
|
||||||
interface LexicalScope: HierarchicalScope {
|
interface LexicalScope : HierarchicalScope {
|
||||||
override val parent: HierarchicalScope
|
override val parent: HierarchicalScope
|
||||||
|
|
||||||
val ownerDescriptor: DeclarationDescriptor
|
val ownerDescriptor: DeclarationDescriptor
|
||||||
@@ -39,7 +39,7 @@ interface LexicalScope: HierarchicalScope {
|
|||||||
|
|
||||||
val kind: LexicalScopeKind
|
val kind: LexicalScopeKind
|
||||||
|
|
||||||
class Empty(
|
class Base(
|
||||||
parent: HierarchicalScope,
|
parent: HierarchicalScope,
|
||||||
override val ownerDescriptor: DeclarationDescriptor
|
override val ownerDescriptor: DeclarationDescriptor
|
||||||
) : BaseHierarchicalScope(parent), LexicalScope {
|
) : BaseHierarchicalScope(parent), LexicalScope {
|
||||||
@@ -56,7 +56,7 @@ interface LexicalScope: HierarchicalScope {
|
|||||||
get() = LexicalScopeKind.EMPTY
|
get() = LexicalScopeKind.EMPTY
|
||||||
|
|
||||||
override fun printStructure(p: Printer) {
|
override fun printStructure(p: Printer) {
|
||||||
p.println("Empty lexical scope with owner = $ownerDescriptor and parent = $parent")
|
p.println("Base lexical scope with owner = $ownerDescriptor and parent = $parent")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
|||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
||||||
|
|
||||||
fun ModuleDescriptor.builtInPackageAsLexicalScope(): LexicalScope.Empty {
|
fun ModuleDescriptor.builtInPackageAsLexicalScope(): LexicalScope.Base {
|
||||||
val packageView = getPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME)
|
val packageView = getPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME)
|
||||||
return LexicalScope.Empty(packageView.memberScope.memberScopeAsImportingScope(), this)
|
return LexicalScope.Base(packageView.memberScope.memberScopeAsImportingScope(), this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -161,10 +161,10 @@ private fun getClassInnerScope(outerScope: LexicalScope, descriptor: ClassDescri
|
|||||||
fun getKDocLinkResolutionScope(resolutionFacade: ResolutionFacade, descriptor: DeclarationDescriptor): LexicalScope {
|
fun getKDocLinkResolutionScope(resolutionFacade: ResolutionFacade, descriptor: DeclarationDescriptor): LexicalScope {
|
||||||
return when (descriptor) {
|
return when (descriptor) {
|
||||||
is PackageFragmentDescriptor ->
|
is PackageFragmentDescriptor ->
|
||||||
LexicalScope.Empty(getPackageInnerScope(descriptor).memberScopeAsImportingScope(), descriptor)
|
LexicalScope.Base(getPackageInnerScope(descriptor).memberScopeAsImportingScope(), descriptor)
|
||||||
|
|
||||||
is PackageViewDescriptor ->
|
is PackageViewDescriptor ->
|
||||||
LexicalScope.Empty(descriptor.memberScope.memberScopeAsImportingScope(), descriptor)
|
LexicalScope.Base(descriptor.memberScope.memberScopeAsImportingScope(), descriptor)
|
||||||
|
|
||||||
is ClassDescriptor ->
|
is ClassDescriptor ->
|
||||||
getClassInnerScope(getOuterScope(descriptor, resolutionFacade), descriptor)
|
getClassInnerScope(getOuterScope(descriptor, resolutionFacade), descriptor)
|
||||||
|
|||||||
+1
-1
@@ -134,7 +134,7 @@ class KDocNameCompletionSession(
|
|||||||
return (
|
return (
|
||||||
if (collectFormParentScopes)
|
if (collectFormParentScopes)
|
||||||
scope.collectDescriptorsFiltered(nameFilter = nameFilter).asSequence()
|
scope.collectDescriptorsFiltered(nameFilter = nameFilter).asSequence()
|
||||||
else if (scope is LexicalScope.Empty)
|
else if (scope is LexicalScope.Base)
|
||||||
scope.parent.getContributedDescriptors(nameFilter = nameFilter).asSequence()
|
scope.parent.getContributedDescriptors(nameFilter = nameFilter).asSequence()
|
||||||
else
|
else
|
||||||
(scope.getContributedDescriptors(nameFilter = nameFilter).asSequence()
|
(scope.getContributedDescriptors(nameFilter = nameFilter).asSequence()
|
||||||
|
|||||||
+4
-2
@@ -162,8 +162,10 @@ object ReplaceWithAnnotationAnalyzer {
|
|||||||
getResolutionScope(moduleDescriptor.getPackage(descriptor.fqName), ownerDescriptor, additionalScopes)
|
getResolutionScope(moduleDescriptor.getPackage(descriptor.fqName), ownerDescriptor, additionalScopes)
|
||||||
}
|
}
|
||||||
|
|
||||||
is PackageViewDescriptor ->
|
is PackageViewDescriptor -> LexicalScope.Base(
|
||||||
LexicalScope.Empty(chainImportingScopes(listOf(descriptor.memberScope.memberScopeAsImportingScope()) + additionalScopes)!!, ownerDescriptor)
|
chainImportingScopes(listOf(descriptor.memberScope.memberScopeAsImportingScope()) + additionalScopes)!!,
|
||||||
|
ownerDescriptor
|
||||||
|
)
|
||||||
|
|
||||||
is ClassDescriptor -> {
|
is ClassDescriptor -> {
|
||||||
val outerScope = getResolutionScope(descriptor.containingDeclaration, ownerDescriptor, additionalScopes) ?: return null
|
val outerScope = getResolutionScope(descriptor.containingDeclaration, ownerDescriptor, additionalScopes) ?: return null
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ fun DeclarationDescriptor.getContainingScope(): LexicalScope? {
|
|||||||
val containingDescriptor = containingDeclaration ?: return null
|
val containingDescriptor = containingDeclaration ?: return null
|
||||||
return when (containingDescriptor) {
|
return when (containingDescriptor) {
|
||||||
is ClassDescriptorWithResolutionScopes -> containingDescriptor.scopeForInitializerResolution
|
is ClassDescriptorWithResolutionScopes -> containingDescriptor.scopeForInitializerResolution
|
||||||
is PackageFragmentDescriptor -> LexicalScope.Empty(containingDescriptor.getMemberScope().memberScopeAsImportingScope(), this)
|
is PackageFragmentDescriptor -> LexicalScope.Base(containingDescriptor.getMemberScope().memberScopeAsImportingScope(), this)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user