'Else' is not required in 'when' if Unit is expected

This commit is contained in:
Andrey Breslav
2013-09-12 22:04:34 +02:00
parent a76f1c1db5
commit c017858f77
17 changed files with 170 additions and 14 deletions
@@ -33,7 +33,7 @@ import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve;
@InnerTestClasses({JetDiagnosticsTestGenerated.Tests.class, JetDiagnosticsTestGenerated.Script.class})
public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEagerResolve {
@TestMetadata("compiler/testData/diagnostics/tests")
@InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.CallableReference.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.DelegatedProperty.class, Tests.Deparenthesize.class, Tests.Enum.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.Inner.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Library.class, Tests.NullabilityAndAutoCasts.class, Tests.NullableTypes.class, Tests.Numbers.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.Recovery.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.SmartCasts.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.ThisAndSuper.class, Tests.Varargs.class})
@InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.CallableReference.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.DelegatedProperty.class, Tests.Deparenthesize.class, Tests.Enum.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.Inner.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Library.class, Tests.NullabilityAndAutoCasts.class, Tests.NullableTypes.class, Tests.Numbers.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.Recovery.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.SmartCasts.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.ThisAndSuper.class, Tests.Varargs.class, Tests.When.class})
public static class Tests extends AbstractDiagnosticsTestWithEagerResolve {
@TestMetadata("Abstract.kt")
public void testAbstract() throws Exception {
@@ -524,11 +524,6 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/Variance.kt");
}
@TestMetadata("When.kt")
public void testWhen() throws Exception {
doTest("compiler/testData/diagnostics/tests/When.kt");
}
@TestMetadata("compiler/testData/diagnostics/tests/annotations")
public static class Annotations extends AbstractDiagnosticsTestWithEagerResolve {
public void testAllFilesPresentInAnnotations() throws Exception {
@@ -5587,6 +5582,54 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
}
@TestMetadata("compiler/testData/diagnostics/tests/when")
public static class When extends AbstractDiagnosticsTestWithEagerResolve {
public void testAllFilesPresentInWhen() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/when"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("NoElseExpectedUnit.kt")
public void testNoElseExpectedUnit() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/NoElseExpectedUnit.kt");
}
@TestMetadata("NoElseNoExpectedType.kt")
public void testNoElseNoExpectedType() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/NoElseNoExpectedType.kt");
}
@TestMetadata("NoElseReturnedCoercionToUnit.kt")
public void testNoElseReturnedCoercionToUnit() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/NoElseReturnedCoercionToUnit.kt");
}
@TestMetadata("NoElseReturnedFromLambdaExpectedInt.kt")
public void testNoElseReturnedFromLambdaExpectedInt() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/NoElseReturnedFromLambdaExpectedInt.kt");
}
@TestMetadata("NoElseReturnedNonUnit.kt")
public void testNoElseReturnedNonUnit() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/NoElseReturnedNonUnit.kt");
}
@TestMetadata("NoElseReturnedUnit.kt")
public void testNoElseReturnedUnit() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/NoElseReturnedUnit.kt");
}
@TestMetadata("NoElseWhenStatement.kt")
public void testNoElseWhenStatement() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/NoElseWhenStatement.kt");
}
@TestMetadata("When.kt")
public void testWhen() throws Exception {
doTest("compiler/testData/diagnostics/tests/when/When.kt");
}
}
public static Test innerSuite() {
TestSuite suite = new TestSuite("Tests");
suite.addTestSuite(Tests.class);
@@ -5633,6 +5676,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
suite.addTestSuite(Subtyping.class);
suite.addTestSuite(ThisAndSuper.class);
suite.addTestSuite(Varargs.class);
suite.addTestSuite(When.class);
return suite;
}
}
@@ -4282,6 +4282,21 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest("compiler/testData/codegen/box/when/matchNotNullAgainstNullable.kt");
}
@TestMetadata("noElseAssigned.kt")
public void testNoElseAssigned() throws Exception {
doTest("compiler/testData/codegen/box/when/noElseAssigned.kt");
}
@TestMetadata("noElseInRetunedExpression.kt")
public void testNoElseInRetunedExpression() throws Exception {
doTest("compiler/testData/codegen/box/when/noElseInRetunedExpression.kt");
}
@TestMetadata("noElseInStatement.kt")
public void testNoElseInStatement() throws Exception {
doTest("compiler/testData/codegen/box/when/noElseInStatement.kt");
}
@TestMetadata("nullableWhen.kt")
public void testNullableWhen() throws Exception {
doTest("compiler/testData/codegen/box/when/nullableWhen.kt");