Test for KT-2619

Remove outdated check in WhenChecker

# KT-2619 fixed
This commit is contained in:
Pavel V. Talanov
2012-11-23 16:10:12 +04:00
parent 997e26d11e
commit 59e74e79c2
3 changed files with 21 additions and 6 deletions
@@ -49,12 +49,7 @@ public final class WhenChecker {
ClassDescriptor classDescriptor = (ClassDescriptor) declarationDescriptor;
if (classDescriptor.getKind() != ClassKind.ENUM_CLASS || classDescriptor.getModality().isOverridable()) return false;
ClassDescriptor classObjectDescriptor = classDescriptor.getClassObjectDescriptor();
//TODO: workaround for KT-2619 Exception on using java enum in when.
// should provide correct checks for java enums
// may be obsolete once java and kotlin enum work the same way
if (classObjectDescriptor == null) {
return false;
}
assert classObjectDescriptor != null : "Enum classes must have class object.";
JetScope memberScope = classObjectDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
Collection<ClassDescriptor> objectDescriptors = memberScope.getObjectDescriptors();
boolean isExhaust = true;
@@ -0,0 +1,15 @@
//FILE: foo.kt
fun main(args: Array<String>) {
val c: Type
<!NO_ELSE_IN_WHEN!>when<!> (<!UNINITIALIZED_VARIABLE!>c<!>) {
}
}
//FILE: Type.java
public enum Type {
TYPE,
NO_TYPE;
}
@@ -2237,6 +2237,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/j+k/kt2606.kt");
}
@TestMetadata("kt2619.kt")
public void testKt2619() throws Exception {
doTest("compiler/testData/diagnostics/tests/j+k/kt2619.kt");
}
@TestMetadata("kt2641.kt")
public void testKt2641() throws Exception {
doTest("compiler/testData/diagnostics/tests/j+k/kt2641.kt");