Inner Java Enums
KT-2691 Fixed KT-2686 Fixed
This commit is contained in:
@@ -79,6 +79,7 @@ public class SpecialFiles {
|
|||||||
|
|
||||||
private static void fillExcludedFiles() {
|
private static void fillExcludedFiles() {
|
||||||
excludedFiles.add("kt2781.kt"); // Must compile Java files before
|
excludedFiles.add("kt2781.kt"); // Must compile Java files before
|
||||||
|
excludedFiles.add("simpleJavaInnerEnum.kt"); // Must compile Java files before
|
||||||
excludedFiles.add("referencesStaticInnerClassMethod.kt"); // Must compile Java files before
|
excludedFiles.add("referencesStaticInnerClassMethod.kt"); // Must compile Java files before
|
||||||
excludedFiles.add("referencesStaticInnerClassMethodL2.kt"); // Must compile Java files before
|
excludedFiles.add("referencesStaticInnerClassMethodL2.kt"); // Must compile Java files before
|
||||||
excludedFiles.add("simpleJavaEnum.kt"); // Must compile Java files before
|
excludedFiles.add("simpleJavaEnum.kt"); // Must compile Java files before
|
||||||
|
|||||||
+7
-6
@@ -101,13 +101,14 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isStatic(DeclarationDescriptor declarationDescriptor) {
|
private static boolean isStatic(ClassDescriptor declarationClassDescriptor) {
|
||||||
if (declarationDescriptor instanceof NamespaceDescriptor) {
|
DeclarationDescriptor containingDescriptor = declarationClassDescriptor.getContainingDeclaration();
|
||||||
|
if (containingDescriptor instanceof NamespaceDescriptor) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (declarationDescriptor instanceof ClassDescriptor) {
|
else if (containingDescriptor instanceof ClassDescriptor) {
|
||||||
ClassDescriptor classDescriptor = (ClassDescriptor) declarationDescriptor;
|
ClassDescriptor containingClassDescriptor = (ClassDescriptor) containingDescriptor;
|
||||||
return classDescriptor.getKind().isObject() || classDescriptor.getKind() == ClassKind.ENUM_CLASS;
|
return containingClassDescriptor.getKind().isObject() || declarationClassDescriptor.getKind() == ClassKind.ENUM_CLASS;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
@@ -303,7 +304,7 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase
|
|||||||
return ClassObjectStatus.DUPLICATE;
|
return ClassObjectStatus.DUPLICATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isStatic(MutableClassDescriptorLite.this.getContainingDeclaration())) {
|
if (!isStatic(MutableClassDescriptorLite.this)) {
|
||||||
return ClassObjectStatus.NOT_ALLOWED;
|
return ClassObjectStatus.NOT_ALLOWED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package test;
|
||||||
|
|
||||||
|
public class simpleJavaInnerEnum {
|
||||||
|
public enum MyEnum {
|
||||||
|
A;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import test.*
|
||||||
|
import test.simpleJavaInnerEnum.MyEnum.A
|
||||||
|
|
||||||
|
fun box() =
|
||||||
|
if (simpleJavaInnerEnum.MyEnum.A.toString() == "A" && A.toString() == "A") "OK"
|
||||||
|
else "fail"
|
||||||
@@ -109,6 +109,10 @@ public class EnumGenTest extends CodegenTestCase {
|
|||||||
public void testSimpleJavaEnum() throws Exception {
|
public void testSimpleJavaEnum() throws Exception {
|
||||||
blackBoxFileWithJava("enum/simpleJavaEnum.kt");
|
blackBoxFileWithJava("enum/simpleJavaEnum.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testSimpleJavaInnerEnum() throws Exception {
|
||||||
|
blackBoxFileWithJava("enum/simpleJavaInnerEnum.kt");
|
||||||
|
}
|
||||||
|
|
||||||
public void testSimpleJavaEnumWithStaticImport() throws Exception {
|
public void testSimpleJavaEnumWithStaticImport() throws Exception {
|
||||||
blackBoxFileWithJava("enum/simpleJavaEnumWithStaticImport.kt");
|
blackBoxFileWithJava("enum/simpleJavaEnumWithStaticImport.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user