Drop old enum syntax. Comma / semicolon are now a syntactic part of enum entry.

Comma must present now between enum entries, semicolon between last entry & first member, constructor calls must be without colons / specifiers.
A swarm of tests fixed accordingly.
This commit is contained in:
Mikhail Glukhikh
2015-08-05 18:22:21 +03:00
parent e5ab7de870
commit 3f14e74b08
190 changed files with 810 additions and 3201 deletions
@@ -5136,24 +5136,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("enumCommaNoSemicolon.kt")
public void testEnumCommaNoSemicolon() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumCommaNoSemicolon.kt");
doTest(fileName);
}
@TestMetadata("enumCommaSemicolonBetween.kt")
public void testEnumCommaSemicolonBetween() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumCommaSemicolonBetween.kt");
doTest(fileName);
}
@TestMetadata("enumEntriesAtTheEnd.kt")
public void testEnumEntriesAtTheEnd() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumEntriesAtTheEnd.kt");
doTest(fileName);
}
@TestMetadata("enumEntryCannotHaveClassObject.kt")
public void testEnumEntryCannotHaveClassObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumEntryCannotHaveClassObject.kt");
@@ -5184,78 +5166,18 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("enumMissedComma.kt")
public void testEnumMissedComma() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumMissedComma.kt");
doTest(fileName);
}
@TestMetadata("enumMissingName.kt")
public void testEnumMissingName() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumMissingName.kt");
doTest(fileName);
}
@TestMetadata("enumMixed.kt")
public void testEnumMixed() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumMixed.kt");
doTest(fileName);
}
@TestMetadata("enumMixedWithCommas.kt")
public void testEnumMixedWithCommas() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumMixedWithCommas.kt");
doTest(fileName);
}
@TestMetadata("enumMixedWithSemicolons.kt")
public void testEnumMixedWithSemicolons() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumMixedWithSemicolons.kt");
doTest(fileName);
}
@TestMetadata("enumModifier.kt")
public void testEnumModifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumModifier.kt");
doTest(fileName);
}
@TestMetadata("enumNoComma.kt")
public void testEnumNoComma() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumNoComma.kt");
doTest(fileName);
}
@TestMetadata("enumNoSemicolon.kt")
public void testEnumNoSemicolon() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumNoSemicolon.kt");
doTest(fileName);
}
@TestMetadata("enumOldConstructor.kt")
public void testEnumOldConstructor() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumOldConstructor.kt");
doTest(fileName);
}
@TestMetadata("enumOldConstructorNamedArgument.kt")
public void testEnumOldConstructorNamedArgument() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumOldConstructorNamedArgument.kt");
doTest(fileName);
}
@TestMetadata("enumOldConstructors.kt")
public void testEnumOldConstructors() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumOldConstructors.kt");
doTest(fileName);
}
@TestMetadata("enumSemicolonBetween.kt")
public void testEnumSemicolonBetween() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumSemicolonBetween.kt");
doTest(fileName);
}
@TestMetadata("enumStarImport.kt")
public void testEnumStarImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/enumStarImport.kt");
@@ -5388,12 +5310,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("OldSyntaxConstructorCall.kt")
public void testOldSyntaxConstructorCall() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/OldSyntaxConstructorCall.kt");
doTest(fileName);
}
@TestMetadata("openMemberInEnum.kt")
public void testOpenMemberInEnum() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/openMemberInEnum.kt");
@@ -120,7 +120,7 @@ public class ClassGenTest extends CodegenTestCase {
}
public void testEnumConstantConstructors() throws Exception {
loadText("enum class Color(val rgb: Int) { RED: Color(0xFF0000), GREEN: Color(0x00FF00); }");
loadText("enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00); }");
Class<?> colorClass = generateClass("Color");
Field redField = colorClass.getField("RED");
Object redValue = redField.get(null);
@@ -105,7 +105,7 @@ public class CodegenTestFiles {
String content = CheckerTestUtil.parseDiagnosedRanges(contentWithDiagnosticMarkup, new ArrayList<CheckerTestUtil.DiagnosedRange>());
JetFile file = JetTestUtils.createFile(fileName, content, project);
List<PsiErrorElement> ranges = AnalyzingUtils.getSyntaxErrorRanges(file);
assert ranges.isEmpty() : "Syntax errors found: " + ranges;
assert ranges.isEmpty() : "Syntax errors found in " + file + ": " + ranges;
List<Pair<String, String>> expectedValues = Lists.newArrayList();
@@ -56,7 +56,7 @@ public class EnumGenTest extends CodegenTestCase {
}
public void testEnumConstantConstructors() throws Exception {
loadText("enum class Color(val rgb: Int) { RED: Color(0xFF0000), GREEN: Color(0x00FF00); }");
loadText("enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00); }");
Class<?> colorClass = generateClass("Color");
Field redField = colorClass.getField("RED");
Object redValue = redField.get(null);
@@ -211,27 +211,75 @@ public class JetParsingTestGenerated extends AbstractJetParsingTest {
doParsingTest(fileName);
}
@TestMetadata("EnumEntryCommaAnnotatedMember.kt")
public void testEnumEntryCommaAnnotatedMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntryCommaAnnotatedMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntryCommaInlineMember.kt")
public void testEnumEntryCommaInlineMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntryCommaInlineMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntryCommaMember.kt")
public void testEnumEntryCommaMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntryCommaMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntryCommaPublicMember.kt")
public void testEnumEntryCommaPublicMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntryCommaPublicMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntrySemicolonInlineMember.kt")
public void testEnumEntrySemicolonInlineMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntrySemicolonInlineMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntrySemicolonMember.kt")
public void testEnumEntrySemicolonMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntrySemicolonMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntrySpaceInlineMember.kt")
public void testEnumEntrySpaceInlineMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntrySpaceInlineMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntrySpaceMember.kt")
public void testEnumEntrySpaceMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntrySpaceMember.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumEntryTwoCommas.kt")
public void testEnumEntryTwoCommas() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumEntryTwoCommas.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumIn.kt")
public void testEnumIn() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumIn.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumMissingName.kt")
public void testEnumMissingName() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumMissingName.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumNoAnnotations.kt")
public void testEnumNoAnnotations() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumNoAnnotations.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumSemicolonBetween.kt")
public void testEnumSemicolonBetween() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumSemicolonBetween.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumSemicolonBetweenWithMembers.kt")
public void testEnumSemicolonBetweenWithMembers() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumSemicolonBetweenWithMembers.kt");
@TestMetadata("EnumOldConstructorSyntax.kt")
public void testEnumOldConstructorSyntax() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumOldConstructorSyntax.kt");
doParsingTest(fileName);
}
@@ -241,24 +289,12 @@ public class JetParsingTestGenerated extends AbstractJetParsingTest {
doParsingTest(fileName);
}
@TestMetadata("EnumShortNoCommas.kt")
public void testEnumShortNoCommas() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumShortNoCommas.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumShortWithOverload.kt")
public void testEnumShortWithOverload() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumShortWithOverload.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumShortWithOverloadNoCommas.kt")
public void testEnumShortWithOverloadNoCommas() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumShortWithOverloadNoCommas.kt");
doParsingTest(fileName);
}
@TestMetadata("EnumWithAnnotationKeyword.kt")
public void testEnumWithAnnotationKeyword() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/EnumWithAnnotationKeyword.kt");
@@ -1797,12 +1833,6 @@ public class JetParsingTestGenerated extends AbstractJetParsingTest {
doParsingTest(fileName);
}
@TestMetadata("EnumEntryInitList.kt")
public void testEnumEntryInitList() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/recovery/EnumEntryInitList.kt");
doParsingTest(fileName);
}
@TestMetadata("ForEmptyParentheses.kt")
public void testForEmptyParentheses() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/recovery/ForEmptyParentheses.kt");
@@ -240,11 +240,11 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testFunctionModalityInClass("abstract class A { open fun foo() }", Modality.OPEN);
tc.testFunctionModalityInClass("abstract class A { abstract fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInEnum("enum class A { fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInEnum("enum class A { final fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInEnum("open enum class A { open fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A { open fun foo() }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A { abstract fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInEnum("enum class A { ; fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInEnum("enum class A { ; final fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInEnum("open enum class A { ; open fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A { ; open fun foo() }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A { ; abstract fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A { fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A { abstract fun foo() }", Modality.ABSTRACT);
@@ -264,11 +264,11 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testFunctionModalityInClass("abstract class A : C { open override fun foo() }", Modality.OPEN);
tc.testFunctionModalityInClass("abstract class A : C { abstract override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInEnum("enum class A : C { override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInEnum("enum class A : C { final override fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInEnum("open enum class A : C { open override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A : C { open override fun foo() }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A : C { abstract override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInEnum("enum class A : C { ; override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInEnum("enum class A : C { ; final override fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInEnum("open enum class A : C { ; open override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A : C { ; open override fun foo() }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A : C { ; abstract override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A : C { override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A : C { abstract override fun foo() }", Modality.ABSTRACT);
@@ -287,13 +287,13 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testPropertyModalityInClass("abstract class A { open val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInClass("abstract class A { abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInEnum("enum class A { val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("enum class A { final val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A { val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A { final val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A { open val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A { open val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A { abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInEnum("enum class A { ; val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("enum class A { ; final val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A { ; val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A { ; final val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A { ; open val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A { ; open val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A { ; abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { open val a: Int }", Modality.ABSTRACT);
@@ -319,13 +319,13 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testPropertyModalityInClass("abstract class A : C { open override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInClass("abstract class A : C { abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInEnum("enum class A : C { override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("enum class A : C { final override val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A : C { override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("open enum class A : C { final override val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A : C { open override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A : C { open override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A : C { abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInEnum("enum class A : C { ; override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("enum class A : C { ; final override val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A : C { ; override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("open enum class A : C { ; final override val a: Int = 0 }", Modality.FINAL);
tc.testPropertyModalityInEnum("open enum class A : C { ; open override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A : C { ; open override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A : C { ; abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { open override val a: Int }", Modality.ABSTRACT);