[FE 1.0] Support java sealed classes

^KT-46778 Fixed
This commit is contained in:
Dmitriy Novozhilov
2021-07-14 11:35:20 +03:00
committed by teamcityserver
parent 972211f8e6
commit fa1d09c778
32 changed files with 365 additions and 38 deletions
@@ -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 = <!NO_ELSE_IN_WHEN!>when<!> (base) {
val x = when (base) {
is A -> 1
is B -> 2
}
}
fun test_ok_2(base: Base) {
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
val x = when (base) {
is A -> 1
is B.C -> 2
is B.D -> 3
@@ -12,7 +12,7 @@ public final class A : Base {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public abstract class B : Base {
public sealed 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 abstract class B : Base {
}
}
public abstract class Base {
public sealed 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
@@ -21,7 +21,7 @@ public enum E implements Base {
// FILE: main.kt
fun test_ok_1(base: Base) {
val x = <!NO_ELSE_IN_WHEN!>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 = <!NO_ELSE_IN_WHEN!>when<!> (base) {
val x = when (base) {
is A -> 1
is B.C -> 2
is B.D -> 3
@@ -12,7 +12,7 @@ public interface A : Base {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface B : Base {
public sealed 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 interface B : Base {
}
}
public interface Base {
public sealed 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
@@ -14,7 +14,7 @@ public final class B : Base {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public abstract class Base {
public sealed 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
@@ -14,7 +14,7 @@ public final class B : Base {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface Base {
public sealed 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