Inner classes are no more allowed inside enum entries #KT-9750 Fixed

Forbidden use-case deleted from codegen tests
This commit is contained in:
Mikhail Glukhikh
2015-11-13 17:54:05 +03:00
parent 3f4430087e
commit 02fb19c3ea
5 changed files with 7 additions and 28 deletions
@@ -96,7 +96,7 @@ public object ModifierCheckerCore {
)
val possibleParentTargetMap = mapOf<KtModifierKeywordToken, Set<KotlinTarget>>(
INNER_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, ENUM_ENTRY),
INNER_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS),
OVERRIDE_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, OBJECT, OBJECT_LITERAL,
INTERFACE, ENUM_CLASS, ENUM_ENTRY),
PROTECTED_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, OBJECT),
-20
View File
@@ -1,20 +0,0 @@
package test
fun box() = IssueState.DEFAULT.ToString() + IssueState.FIXED.ToString()
enum class IssueState {
DEFAULT {
inner class D {
val k = ToString()
}
},
FIXED {
override fun ToString() = "K"
inner class D {
val k = ToString()
}
};
open fun ToString() : String = "O"
}
@@ -15,8 +15,11 @@ class D {
}
enum class H {
I0 {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class II0
},
<!WRONG_MODIFIER_TARGET!>inner<!> I {
inner class II
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class II
};
inner class J
@@ -82,6 +82,8 @@ public final class D {
}
public final enum class H : kotlin.Enum<H> {
enum entry I0
enum entry I
private constructor H()
@@ -3577,12 +3577,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest(fileName);
}
@TestMetadata("entrywithinner.kt")
public void testEntrywithinner() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/entrywithinner.kt");
doTest(fileName);
}
@TestMetadata("enumInheritedFromTrait.kt")
public void testEnumInheritedFromTrait() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/enumInheritedFromTrait.kt");