Resolve static enum members from compiled Java

For static members, a corresponding package is now created for every enum, as
it's done for every other class. All static members of enum classes are
resolved into the package, EXCEPT its enum entries, valueOf() and values()
methods, which are put into the enum's class descriptor.
This commit is contained in:
Alexander Udalov
2013-03-14 18:52:14 +04:00
parent 68844131b0
commit 7368ca09b9
8 changed files with 80 additions and 13 deletions
@@ -24,6 +24,3 @@ public trait CustomAnnotation : java.lang.Object {
public constructor MyTest()
}
}
package CustomAnnotation {
}
@@ -0,0 +1,12 @@
package test;
public enum StaticMembersInEnum {
ENTRY;
public static void foo() { }
public static void values(int x) { }
public static void valueOf(int x) { }
public static int STATIC_FIELD = 42;
public static final StaticMembersInEnum CONSTANT = ENTRY;
}
@@ -0,0 +1,22 @@
package test
public final enum class StaticMembersInEnum : jet.Enum<test.StaticMembersInEnum> {
private constructor StaticMembersInEnum()
public final override /*1*/ /*fake_override*/ fun name() : jet.String
public final override /*1*/ /*fake_override*/ fun ordinal() : jet.Int
public class object <class-object-for-StaticMembersInEnum> {
private constructor <class-object-for-StaticMembersInEnum>()
public final val ENTRY : test.StaticMembersInEnum
public final fun valueOf(/*0*/ value : jet.String) : test.StaticMembersInEnum
public final fun values() : jet.Array<test.StaticMembersInEnum>
}
}
package StaticMembersInEnum {
public val CONSTANT : test.StaticMembersInEnum
public var STATIC_FIELD : jet.Int
public open fun foo() : Unit
public open fun valueOf(/*0*/ p0 : jet.Int) : Unit
public open fun values(/*0*/ p0 : jet.Int) : Unit
}