Remove unnecessary scopes

This commit is contained in:
Zalim Bashorov
2015-12-15 14:45:10 +03:00
parent 8c4deb80e5
commit e201268f46
2 changed files with 3 additions and 6 deletions
@@ -45,7 +45,7 @@ class ClassResolutionScopesSupport(
}
public val scopeForConstructorHeaderResolution: () -> LexicalScope = storageManager.createLazyValue {
scopeWithGenerics(if (classDescriptor.kind.isSingleton) scopeForCompanionObjectHeaderResolution() else scopeForStaticMemberDeclarationResolution())
scopeWithGenerics(inheritanceScopeWithMe())
}
private val inheritanceScopeWithoutMe: () -> LexicalScope = storageManager.createLazyValue(onRecursion = createThrowingLexicalScope) {
@@ -59,8 +59,7 @@ class ClassResolutionScopesSupport(
}
public val scopeForCompanionObjectHeaderResolution: () -> LexicalScope = storageManager.createLazyValue(onRecursion = createThrowingLexicalScope) {
val inheritanceScope = createInheritanceScope(inheritanceScopeWithoutMe(), classDescriptor, classDescriptor, withCompanionObject = false)
LexicalScopeImpl(inheritanceScope, classDescriptor, false, null, LexicalScopeKind.COMPANION_OBJECT_HEADER)
createInheritanceScope(inheritanceScopeWithoutMe(), classDescriptor, classDescriptor, withCompanionObject = false)
}
public val scopeForMemberDeclarationResolution: () -> LexicalScope = storageManager.createLazyValue {
@@ -73,7 +72,7 @@ class ClassResolutionScopesSupport(
scopeForMemberDeclarationResolution()
}
else {
LexicalScopeImpl(inheritanceScopeWithMe(), classDescriptor, false, null, LexicalScopeKind.CLASS_STATIC_SCOPE)
inheritanceScopeWithMe()
}
}
@@ -99,7 +98,6 @@ class ClassResolutionScopesSupport(
val superClasses = SmartList<ClassDescriptor>()
var parent: ClassDescriptor? = getSuperClassNotAny()
// possible recursion in inheritance
while(parent != null && parent != this) {
superClasses.add(parent)
parent = parent.getSuperClassNotAny()
@@ -63,7 +63,6 @@ enum class LexicalScopeKind(val withLocalDescriptors: Boolean) {
CLASS_STATIC_SCOPE(false),
CLASS_MEMBER_SCOPE(false),
CLASS_INITIALIZER(true),
COMPANION_OBJECT_HEADER(false),
DEFAULT_VALUE(true),