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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user