Inner classes are no more allowed inside enum entries #KT-9750 Fixed
Forbidden use-case deleted from codegen tests
This commit is contained in:
@@ -96,7 +96,7 @@ public object ModifierCheckerCore {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val possibleParentTargetMap = mapOf<KtModifierKeywordToken, Set<KotlinTarget>>(
|
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,
|
OVERRIDE_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, OBJECT, OBJECT_LITERAL,
|
||||||
INTERFACE, ENUM_CLASS, ENUM_ENTRY),
|
INTERFACE, ENUM_CLASS, ENUM_ENTRY),
|
||||||
PROTECTED_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, OBJECT),
|
PROTECTED_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, OBJECT),
|
||||||
|
|||||||
@@ -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 {
|
enum class H {
|
||||||
|
I0 {
|
||||||
|
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class II0
|
||||||
|
},
|
||||||
<!WRONG_MODIFIER_TARGET!>inner<!> I {
|
<!WRONG_MODIFIER_TARGET!>inner<!> I {
|
||||||
inner class II
|
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class II
|
||||||
};
|
};
|
||||||
|
|
||||||
inner class J
|
inner class J
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ public final class D {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final enum class H : kotlin.Enum<H> {
|
public final enum class H : kotlin.Enum<H> {
|
||||||
|
enum entry I0
|
||||||
|
|
||||||
enum entry I
|
enum entry I
|
||||||
|
|
||||||
private constructor H()
|
private constructor H()
|
||||||
|
|||||||
-6
@@ -3577,12 +3577,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
doTest(fileName);
|
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")
|
@TestMetadata("enumInheritedFromTrait.kt")
|
||||||
public void testEnumInheritedFromTrait() throws Exception {
|
public void testEnumInheritedFromTrait() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/enumInheritedFromTrait.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/enumInheritedFromTrait.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user