Resolve static methods of enum in front-end
Up to this point, front-end did not suspect that there could be classes which have both a class object and a package for static members. Since this became possible for enums loaded from Java binaries (enum entries and valueOf()/ values() are placed into the class object, and every other static member into the package), we adjust the corresponding scope to also include members from the corresponding package #KT-2990 Fixed
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
package test;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.EnumSet;
|
||||
|
||||
public enum staticField {
|
||||
INSTANCE;
|
||||
|
||||
public static int foo = 42;
|
||||
|
||||
public static final Set<staticField> INSTANCES = EnumSet.of(INSTANCE);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import test.staticField as E
|
||||
|
||||
fun box(): String {
|
||||
val instances = E.INSTANCES
|
||||
if (E.foo != 42)
|
||||
return "Wrong foo ${E.foo}"
|
||||
if (instances.size() != 1)
|
||||
return "Wrong size ${instances.size()}"
|
||||
if (E.INSTANCES.iterator().next() != E.INSTANCE)
|
||||
return "Wrong instance ${E.INSTANCES.iterator().next()}"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
public enum staticMethod {
|
||||
ENTRY;
|
||||
|
||||
public static String foo() {
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
fun box() = test.staticMethod.foo()
|
||||
Reference in New Issue
Block a user