diff --git a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.kt b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.kt index 0ae9771eb1fb3972e9d210e8e460c18f1ddfb528..6bd8769c2bd8f829a7892c397a6c6ea7434bd835 100644 --- a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.kt +++ b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.kt @@ -16,14 +16,14 @@ public sealed class B extends Base permits B.C, B.D { // FILE: main.kt fun test_ok_1(base: Base) { - val x = when (base) { + val x = when (base) { is A -> 1 is B -> 2 } } fun test_ok_2(base: Base) { - val x = when (base) { + val x = when (base) { is A -> 1 is B.C -> 2 is B.D -> 3 diff --git a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.txt b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.txt index 8d90f4c6fcf3200ff0a40973ead830123c8f1a43..5a14a0617b1a42fdccf32f9ec8af0578993e87df 100644 --- a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.txt +++ b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedClassExhaustiveness.txt @@ -12,7 +12,7 @@ public final class A : Base { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public sealed class B : Base { +public abstract class B : Base { public constructor B() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -33,7 +33,7 @@ public sealed class B : Base { } } -public sealed class Base { +public abstract class Base { public constructor Base() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.kt b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.kt index 3419f18de62a293e51e7c687fd9cc458ad4cffa8..47af93f24e0da65954906a0ab9a0e06f2bf62684 100644 --- a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.kt +++ b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.kt @@ -21,7 +21,7 @@ public enum E implements Base { // FILE: main.kt fun test_ok_1(base: Base) { - val x = when (base) { + val x = when (base) { is A -> 1 is B -> 2 is E -> 3 @@ -29,7 +29,7 @@ fun test_ok_1(base: Base) { } fun test_ok_2(base: Base) { - val x = when (base) { + val x = when (base) { is A -> 1 is B.C -> 2 is B.D -> 3 diff --git a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.txt b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.txt index 6b88bec8277fd7658731359d1000563eb34ec67d..fc87a4c379d14a68fc15be991ac2ce1665718aa2 100644 --- a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.txt +++ b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/javaSealedInterfaceExhaustiveness.txt @@ -12,7 +12,7 @@ public interface A : Base { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public sealed interface B : Base { +public interface B : Base { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String @@ -31,7 +31,7 @@ public sealed interface B : Base { } } -public sealed interface Base { +public interface Base { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String diff --git a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaClass.txt b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaClass.txt index 0b902f9c44bd88912da76a2f5a7cc1d720569288..707ef3816dabba3bcaf087e01b59450485ca53ae 100644 --- a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaClass.txt +++ b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaClass.txt @@ -14,7 +14,7 @@ public final class B : Base { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public sealed class Base { +public abstract class Base { public constructor Base() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaInterface.txt b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaInterface.txt index 5e98dbfb22d3ce2463e1ee35f5baf3d2f028ee89..cf566afb543bafe4d99e47c5c265e823680cf750 100644 --- a/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaInterface.txt +++ b/compiler/testData/diagnostics/testsWithJava15/sealedClasses/kotlinInheritsJavaInterface.txt @@ -14,7 +14,7 @@ public final class B : Base { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public sealed interface Base { +public interface Base { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt index 42688fbb51f83d323ae785d96c99144c1bff223b..233bf329a676b33f27492fdf5b181ffc6b15bac7 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt @@ -76,7 +76,8 @@ class LazyJavaClassDescriptor( private val modality = if (jClass.isAnnotationType || jClass.isEnum) Modality.FINAL - else Modality.convertFromFlags(jClass.isSealed, jClass.isAbstract || jClass.isInterface, !jClass.isFinal) + // TODO: replace false with jClass.isSealed when it will be properly supported in platform + else Modality.convertFromFlags(sealed = false, jClass.isSealed || jClass.isAbstract || jClass.isInterface, !jClass.isFinal) private val visibility = jClass.visibility private val isInner = jClass.outerClass != null && !jClass.isStatic