Introduce ClassKind#CLASS_OBJECT and ClassKind#isObject and usages.

Rename LazyClassDescriptor#onlyEnumEntries -> enumClassObjectInfo.
Determine ClassKind in JetClassInfo and JetObjectInfo constructor.
Remove complex constructor for enum entry in enum test.
Logic simplified in LazyClassMemberScope.
Minor refactorings.
This commit is contained in:
Pavel V. Talanov
2012-08-27 14:21:53 +04:00
parent b228fd66e0
commit 6132946ced
25 changed files with 130 additions and 122 deletions
@@ -4,4 +4,4 @@ trait TheTrait {
}
//internal trait TheTrait defined in root package
//object defined in TheTrait
//class object defined in TheTrait
@@ -2,6 +2,5 @@ package test
enum class Test(a : Int) {
A : Test(0)
B(x : Int) : Test(x)
C : Test(0) {}
B : Test(0) {}
}
@@ -7,19 +7,14 @@ internal final enum class test.Test : jet.Enum<test.Test> {
internal final class object test.Test.<class-object-for-Test> {
internal final /*constructor*/ fun <init>(): test.Test.<class-object-for-Test>
internal final val A: test.Test.<class-object-for-Test>.A
internal final val C: test.Test.<class-object-for-Test>.C
internal final val B: test.Test.<class-object-for-Test>.B
internal final enum entry test.Test.<class-object-for-Test>.A : test.Test {
internal final /*constructor*/ fun <init>(): test.Test.<class-object-for-Test>.A
public final override /*1*/ fun name(): jet.String
public final override /*1*/ fun ordinal(): jet.Int
}
internal final enum entry test.Test.<class-object-for-Test>.B : test.Test {
public final /*constructor*/ fun <init>(/*0*/ x: jet.Int): test.Test.<class-object-for-Test>.B
public final override /*1*/ fun name(): jet.String
public final override /*1*/ fun ordinal(): jet.Int
}
internal final enum entry test.Test.<class-object-for-Test>.C : test.Test {
internal final /*constructor*/ fun <init>(): test.Test.<class-object-for-Test>.C
internal final /*constructor*/ fun <init>(): test.Test.<class-object-for-Test>.B
public final override /*1*/ fun name(): jet.String
public final override /*1*/ fun ordinal(): jet.Int
}
+1 -1
View File
@@ -37,5 +37,5 @@ trait TheTrait {
//internal final class InternalClass defined in rendererTest
//internal trait TheTrait defined in rendererTest
//internal abstract fun abstractFun() : Unit defined in rendererTest.TheTrait
//object : rendererTest.TheClass<jet.Int, jet.Int> defined in rendererTest.TheTrait
//class object : rendererTest.TheClass<jet.Int, jet.Int> defined in rendererTest.TheTrait
//internal final fun classObjectFunction() : jet.Int defined in rendererTest.TheTrait.<class-object-for-TheTrait>