Test for KT-2619
Remove outdated check in WhenChecker # KT-2619 fixed
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user