Introduce ClassDescriptor#getStaticScope()

Will be used to exterminate hacks related to static Java methods in our
codebase: synthetic class object for enum, synthetic package for static members
of Java classes, etc.
This commit is contained in:
Alexander Udalov
2014-09-03 12:03:13 +04:00
parent 7ad88f7799
commit 75df4a9ad8
10 changed files with 98 additions and 3 deletions
@@ -47,6 +47,7 @@ import org.jetbrains.jet.lang.types.checker.JetTypeChecker
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassStaticsPackageFragmentDescriptor
import org.jetbrains.jet.lang.types.AbstractClassTypeConstructor
import org.jetbrains.jet.lang.descriptors.impl.EnumClassObjectDescriptor
import org.jetbrains.jet.lang.resolve.scopes.StaticScopeForKotlinClass
class LazyJavaClassDescriptor(
private val outerC: LazyJavaResolverContextWithTypes,
@@ -90,6 +91,8 @@ class LazyJavaClassDescriptor(
private val _innerClassesScope = InnerClassesScopeWrapper(getScopeForMemberLookup())
override fun getUnsubstitutedInnerClassesScope(): JetScope = _innerClassesScope
override fun getStaticScope(): JetScope = StaticScopeForKotlinClass(this) // TODO
override fun getUnsubstitutedPrimaryConstructor(): ConstructorDescriptor? = null
private val _classObjectDescriptor = c.storageManager.createNullableLazyValue {