Exhaustive when support for sealed classes #KT-7606 Fixed

When on sealed can use is (both for derived classes and objects) or just comparison (only for derived objects).
A pack of tests provided.
This commit is contained in:
Mikhail Glukhikh
2015-05-12 18:07:17 +03:00
parent 8d25c20169
commit f6872dfbea
39 changed files with 1368 additions and 8 deletions
@@ -11439,6 +11439,60 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("ExhaustiveWhen.kt")
public void testExhaustiveWhen() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhen.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenDoubleInner.kt")
public void testExhaustiveWhenDoubleInner() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenDoubleInner.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenMultipleInner.kt")
public void testExhaustiveWhenMultipleInner() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenMultipleInner.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenNegated.kt")
public void testExhaustiveWhenNegated() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenNegated.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenNegatedTwice.kt")
public void testExhaustiveWhenNegatedTwice() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenNegatedTwice.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenOnNestedSealed.kt")
public void testExhaustiveWhenOnNestedSealed() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenOnNestedSealed.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenOnNullable.kt")
public void testExhaustiveWhenOnNullable() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenOnNullable.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenWithAdditionalMember.kt")
public void testExhaustiveWhenWithAdditionalMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenWithAdditionalMember.kt");
doTest(fileName);
}
@TestMetadata("ExhaustiveWhenWithElse.kt")
public void testExhaustiveWhenWithElse() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/ExhaustiveWhenWithElse.kt");
doTest(fileName);
}
@TestMetadata("Local.kt")
public void testLocal() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/Local.kt");
@@ -11487,11 +11541,65 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("NonExhaustiveWhen.kt")
public void testNonExhaustiveWhen() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/NonExhaustiveWhen.kt");
doTest(fileName);
}
@TestMetadata("NonExhaustiveWhenNegated.kt")
public void testNonExhaustiveWhenNegated() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/NonExhaustiveWhenNegated.kt");
doTest(fileName);
}
@TestMetadata("NonExhaustiveWhenWithAdditionalCase.kt")
public void testNonExhaustiveWhenWithAdditionalCase() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/NonExhaustiveWhenWithAdditionalCase.kt");
doTest(fileName);
}
@TestMetadata("NonExhaustiveWhenWithAnyCase.kt")
public void testNonExhaustiveWhenWithAnyCase() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/NonExhaustiveWhenWithAnyCase.kt");
doTest(fileName);
}
@TestMetadata("OperationWhen.kt")
public void testOperationWhen() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/OperationWhen.kt");
doTest(fileName);
}
@TestMetadata("RedundantAbstract.kt")
public void testRedundantAbstract() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/RedundantAbstract.kt");
doTest(fileName);
}
@TestMetadata("TreeWhen.kt")
public void testTreeWhen() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/TreeWhen.kt");
doTest(fileName);
}
@TestMetadata("TreeWhenFunctional.kt")
public void testTreeWhenFunctional() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/TreeWhenFunctional.kt");
doTest(fileName);
}
@TestMetadata("TreeWhenFunctionalNoIs.kt")
public void testTreeWhenFunctionalNoIs() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/TreeWhenFunctionalNoIs.kt");
doTest(fileName);
}
@TestMetadata("WhenOnEmptySealed.kt")
public void testWhenOnEmptySealed() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/sealed/WhenOnEmptySealed.kt");
doTest(fileName);
}
}
@TestMetadata("compiler/testData/diagnostics/tests/secondaryConstructors")