[Test] Migrate AbstractDiagnosticsWithJdk15Test to new infrastructure
This commit is contained in:
committed by
TeamCityServer
parent
02fb11a2cd
commit
a9f913a97f
+56
@@ -0,0 +1,56 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// SKIP_TXT
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
@JvmRecord
|
||||
class A0
|
||||
|
||||
@JvmRecord
|
||||
class A1 {
|
||||
constructor()
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
class A2()
|
||||
|
||||
@JvmRecord
|
||||
class A3(name: String)
|
||||
|
||||
@JvmRecord
|
||||
class A4(var name: String)
|
||||
|
||||
@JvmRecord
|
||||
class A5(vararg val name: String, y: Int)
|
||||
|
||||
@JvmRecord
|
||||
open class A6(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
abstract class A7(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
sealed class A8(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
enum class A9(val x: String) {
|
||||
X("");
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
class A10(
|
||||
val x: String,
|
||||
val y: Int,
|
||||
vararg val z: Double,
|
||||
)
|
||||
|
||||
fun main() {
|
||||
@JvmRecord
|
||||
class Local
|
||||
}
|
||||
|
||||
class Outer {
|
||||
@JvmRecord
|
||||
inner class Inner(val name: String)
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// SKIP_TXT
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class A0
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class A1 {
|
||||
constructor()
|
||||
}
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class A2()
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class A3(<!UNUSED_PARAMETER!>name<!>: String)
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class A4(var name: String)
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class A5(vararg val name: String, <!UNUSED_PARAMETER!>y<!>: Int)
|
||||
|
||||
@JvmRecord
|
||||
<!NON_FINAL_JVM_RECORD!>open<!> class A6(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
<!NON_FINAL_JVM_RECORD!>abstract<!> class A7(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
<!NON_FINAL_JVM_RECORD!>sealed<!> class A8(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
<!ENUM_JVM_RECORD!>enum<!> class A9(val x: String) {
|
||||
X("");
|
||||
}
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class A10(
|
||||
val x: String,
|
||||
val y: Int,
|
||||
vararg val z: Double,
|
||||
)
|
||||
|
||||
fun main() {
|
||||
<!LOCAL_JVM_RECORD!>@JvmRecord<!>
|
||||
class Local
|
||||
}
|
||||
|
||||
class Outer {
|
||||
@JvmRecord
|
||||
<!INNER_JVM_RECORD!>inner<!> class Inner(val name: String)
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: -JvmRecordSupport
|
||||
// SKIP_TXT
|
||||
// FILE: JRecord.java
|
||||
public record JRecord(int x, CharSequence y) {}
|
||||
// FILE: main.kt
|
||||
|
||||
@JvmRecord
|
||||
class MyRec(
|
||||
val x: String,
|
||||
val y: Int,
|
||||
vararg val z: Double,
|
||||
)
|
||||
|
||||
fun foo(jr: JRecord) {
|
||||
<!INAPPLICABLE_CANDIDATE!>JRecord<!>(1, "")
|
||||
|
||||
jr.<!UNRESOLVED_REFERENCE!>x<!>()
|
||||
jr.<!UNRESOLVED_REFERENCE!>y<!>()
|
||||
|
||||
jr.<!UNRESOLVED_REFERENCE!>x<!>
|
||||
jr.<!UNRESOLVED_REFERENCE!>y<!>
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: -JvmRecordSupport
|
||||
// SKIP_TXT
|
||||
// FILE: JRecord.java
|
||||
public record JRecord(int x, CharSequence y) {}
|
||||
// FILE: main.kt
|
||||
|
||||
<!UNSUPPORTED_FEATURE!>@JvmRecord<!>
|
||||
class MyRec(
|
||||
val x: String,
|
||||
val y: Int,
|
||||
vararg val z: Double,
|
||||
)
|
||||
|
||||
fun foo(jr: JRecord) {
|
||||
JRecord(1, "")
|
||||
|
||||
jr.x()
|
||||
jr.y()
|
||||
|
||||
jr.<!FUNCTION_CALL_EXPECTED!>x<!>
|
||||
jr.<!FUNCTION_CALL_EXPECTED!>y<!>
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// SKIP_TXT
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
interface I
|
||||
|
||||
val i: I = object : I {}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec1(val name: String) : I by i
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec2(val name: String) {
|
||||
val x: Int = 0
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec3(val name: String) {
|
||||
val y: String
|
||||
get() = field + "1"
|
||||
|
||||
init {
|
||||
y = ""
|
||||
}
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec4(val name: String) {
|
||||
val z: Int by lazy { 1 }
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec5(val name: String) {
|
||||
val w: String get() = name + "1"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// SKIP_TXT
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
interface I
|
||||
|
||||
val i: I = object : I {}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec1(val name: String) : <!DELEGATION_BY_IN_JVM_RECORD!>I by i<!>
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec2(val name: String) {
|
||||
<!FIELD_IN_JVM_RECORD!>val x: Int = 0<!>
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec3(val name: String) {
|
||||
<!FIELD_IN_JVM_RECORD!>val y: String
|
||||
get() = field + "1"<!>
|
||||
|
||||
init {
|
||||
y = ""
|
||||
}
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec4(val name: String) {
|
||||
<!FIELD_IN_JVM_RECORD!>val z: Int by lazy { 1 }<!>
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec5(val name: String) {
|
||||
val w: String get() = name + "1"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
@JvmRecord
|
||||
class BasicRecord(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
data class BasicDataRecord(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
class BasicRecordWithSuperClass(val x: String) : Record()
|
||||
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
<!NON_DATA_CLASS_JVM_RECORD!>@JvmRecord<!>
|
||||
class BasicRecord(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
data class BasicDataRecord(val x: String)
|
||||
|
||||
@JvmRecord
|
||||
class BasicRecordWithSuperClass(val x: String) : <!ILLEGAL_JAVA_LANG_RECORD_SUPERTYPE!>Record()<!>
|
||||
|
||||
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
package
|
||||
|
||||
@kotlin.jvm.JvmRecord public final data class BasicDataRecord : java.lang.Record {
|
||||
public constructor BasicDataRecord(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): BasicDataRecord
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmRecord public final class BasicRecord : java.lang.Record {
|
||||
public constructor BasicRecord(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmRecord public final class BasicRecordWithSuperClass : java.lang.Record {
|
||||
public constructor BasicRecordWithSuperClass(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// FILE: MyRecord.java
|
||||
public record MyRecord(int x, CharSequence y) {
|
||||
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
fun foo(mr: MyRecord) {
|
||||
<!INAPPLICABLE_CANDIDATE!>MyRecord<!>(1, "")
|
||||
|
||||
mr.<!UNRESOLVED_REFERENCE!>x<!>()
|
||||
mr.<!UNRESOLVED_REFERENCE!>y<!>()
|
||||
|
||||
mr.<!UNRESOLVED_REFERENCE!>x<!>
|
||||
mr.<!UNRESOLVED_REFERENCE!>y<!>
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// FILE: MyRecord.java
|
||||
public record MyRecord(int x, CharSequence y) {
|
||||
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
fun foo(mr: MyRecord) {
|
||||
MyRecord(1, "")
|
||||
|
||||
mr.x()
|
||||
mr.y()
|
||||
|
||||
mr.x
|
||||
mr.y
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
public fun foo(/*0*/ mr: MyRecord): kotlin.Unit
|
||||
|
||||
/*record*/ public final class MyRecord : java.lang.Record {
|
||||
public constructor MyRecord(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.CharSequence!)
|
||||
public abstract override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
/*record component*/ public open fun x(): kotlin.Int
|
||||
/*record component*/ public open fun y(): kotlin.CharSequence!
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
abstract class Abstract
|
||||
interface I
|
||||
|
||||
@JvmRecord
|
||||
data class A1(val x: String) : Abstract(), I
|
||||
|
||||
@JvmRecord
|
||||
data class A2(val x: String) : Any(), I
|
||||
|
||||
@JvmRecord
|
||||
data class A3(val x: String) : Record(), I
|
||||
|
||||
@JvmRecord
|
||||
data class A4(val x: String) : java.lang.Record(), I
|
||||
|
||||
@JvmRecord
|
||||
data class A5(val x: String) : I
|
||||
|
||||
data class A6(val x: String) : Record(), I
|
||||
|
||||
data class A7(val x: String) : java.lang.Record(), I
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// JVM_TARGET: 15
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
abstract class Abstract
|
||||
interface I
|
||||
|
||||
@JvmRecord
|
||||
data class <!JVM_RECORD_EXTENDS_CLASS!>A1<!>(val x: String) : Abstract(), I
|
||||
|
||||
@JvmRecord
|
||||
data class <!JVM_RECORD_EXTENDS_CLASS!>A2<!>(val x: String) : Any(), I
|
||||
|
||||
@JvmRecord
|
||||
data class A3(val x: String) : <!ILLEGAL_JAVA_LANG_RECORD_SUPERTYPE!>Record()<!>, I
|
||||
|
||||
@JvmRecord
|
||||
data class A4(val x: String) : <!ILLEGAL_JAVA_LANG_RECORD_SUPERTYPE!>java.lang.Record()<!>, I
|
||||
|
||||
@JvmRecord
|
||||
data class A5(val x: String) : I
|
||||
|
||||
data class A6(val x: String) : <!ILLEGAL_JAVA_LANG_RECORD_SUPERTYPE!>Record()<!>, I
|
||||
|
||||
data class A7(val x: String) : <!ILLEGAL_JAVA_LANG_RECORD_SUPERTYPE!>java.lang.Record()<!>, I
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
package
|
||||
|
||||
@kotlin.jvm.JvmRecord public final data class A1 : Abstract, I, java.lang.Record {
|
||||
public constructor A1(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): A1
|
||||
public open override /*3*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*3*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*3*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmRecord public final data class A2 : kotlin.Any, I, java.lang.Record {
|
||||
public constructor A2(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): A2
|
||||
public open override /*3*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*3*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*3*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmRecord public final data class A3 : java.lang.Record, I {
|
||||
public constructor A3(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): A3
|
||||
public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmRecord public final data class A4 : java.lang.Record, I {
|
||||
public constructor A4(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): A4
|
||||
public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmRecord public final data class A5 : I, java.lang.Record {
|
||||
public constructor A5(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): A5
|
||||
public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final data class A6 : java.lang.Record, I {
|
||||
public constructor A6(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): A6
|
||||
public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final data class A7 : java.lang.Record, I {
|
||||
public constructor A7(/*0*/ x: kotlin.String)
|
||||
public final val x: kotlin.String
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.String
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): A7
|
||||
public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public abstract class Abstract {
|
||||
public constructor Abstract()
|
||||
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
|
||||
}
|
||||
|
||||
public interface I {
|
||||
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
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// ISSUE: KT-41215, KT-43551
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed class Base permits A, B {}
|
||||
|
||||
// FILE: A.java
|
||||
public final class A extends Base {}
|
||||
|
||||
// FILE: B.java
|
||||
public sealed class B extends Base permits B.C, B.D {
|
||||
public static final class C implements B {}
|
||||
|
||||
public static non-sealed class D extends B {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun test_ok_1(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
fun test_ok_2(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
is B.D -> 3
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_1(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_2(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
}
|
||||
}
|
||||
Vendored
+44
@@ -0,0 +1,44 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// ISSUE: KT-41215, KT-43551
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed class Base permits A, B {}
|
||||
|
||||
// FILE: A.java
|
||||
public final class A extends Base {}
|
||||
|
||||
// FILE: B.java
|
||||
public sealed class B extends Base permits B.C, B.D {
|
||||
public static final class C implements B {}
|
||||
|
||||
public static non-sealed class D extends B {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun test_ok_1(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
fun test_ok_2(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
is B.D -> 3
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_1(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_2(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
}
|
||||
}
|
||||
Vendored
+41
@@ -0,0 +1,41 @@
|
||||
package
|
||||
|
||||
public fun test_error_1(/*0*/ base: Base): kotlin.Unit
|
||||
public fun test_error_2(/*0*/ base: Base): kotlin.Unit
|
||||
public fun test_ok_1(/*0*/ base: Base): kotlin.Unit
|
||||
public fun test_ok_2(/*0*/ base: Base): kotlin.Unit
|
||||
|
||||
public final class A : Base {
|
||||
public constructor A()
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final class C : B {
|
||||
public constructor C()
|
||||
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
|
||||
}
|
||||
|
||||
public open class D : B {
|
||||
public constructor D()
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// ISSUE: KT-41215, KT-43551
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed interface Base permits A, B, E {}
|
||||
|
||||
// FILE: A.java
|
||||
public non-sealed interface A extends Base {}
|
||||
|
||||
// FILE: B.java
|
||||
public sealed interface B extends Base permits B.C, B.D {
|
||||
public static final class C implements B {}
|
||||
|
||||
public static non-sealed interface D extends B {}
|
||||
}
|
||||
|
||||
// FILE: E.java
|
||||
public enum E implements Base {
|
||||
First, Second
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun test_ok_1(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B -> 2
|
||||
is E -> 3
|
||||
}
|
||||
}
|
||||
|
||||
fun test_ok_2(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
is B.D -> 3
|
||||
E.First -> 4
|
||||
E.Second -> 5
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_1(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_2(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
is B.D -> 3
|
||||
E.Second -> 5
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_3(base: Base) {
|
||||
val x = when (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
E.First -> 4
|
||||
E.Second -> 5
|
||||
}
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// ISSUE: KT-41215, KT-43551
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed interface Base permits A, B, E {}
|
||||
|
||||
// FILE: A.java
|
||||
public non-sealed interface A extends Base {}
|
||||
|
||||
// FILE: B.java
|
||||
public sealed interface B extends Base permits B.C, B.D {
|
||||
public static final class C implements B {}
|
||||
|
||||
public static non-sealed interface D extends B {}
|
||||
}
|
||||
|
||||
// FILE: E.java
|
||||
public enum E implements Base {
|
||||
First, Second
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun test_ok_1(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B -> 2
|
||||
is E -> 3
|
||||
}
|
||||
}
|
||||
|
||||
fun test_ok_2(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
is B.D -> 3
|
||||
E.First -> 4
|
||||
E.Second -> 5
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_1(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B -> 2
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_2(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
is B.D -> 3
|
||||
E.Second -> 5
|
||||
}
|
||||
}
|
||||
|
||||
fun test_error_3(base: Base) {
|
||||
val x = <!NO_ELSE_IN_WHEN!>when<!> (base) {
|
||||
is A -> 1
|
||||
is B.C -> 2
|
||||
E.First -> 4
|
||||
E.Second -> 5
|
||||
}
|
||||
}
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
package
|
||||
|
||||
public fun test_error_1(/*0*/ base: Base): kotlin.Unit
|
||||
public fun test_error_2(/*0*/ base: Base): kotlin.Unit
|
||||
public fun test_error_3(/*0*/ base: Base): kotlin.Unit
|
||||
public fun test_ok_1(/*0*/ base: Base): kotlin.Unit
|
||||
public fun test_ok_2(/*0*/ base: Base): kotlin.Unit
|
||||
|
||||
public interface A : 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
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
public final class C : B {
|
||||
public constructor C()
|
||||
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
|
||||
}
|
||||
|
||||
public interface D : 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
public final enum class E : kotlin.Enum<E!>, Base {
|
||||
enum entry First
|
||||
|
||||
enum entry Second
|
||||
|
||||
public constructor E()
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E!): kotlin.Int
|
||||
@kotlin.Deprecated(level = DeprecationLevel.WARNING, message = "This member is not fully supported by Kotlin compiler, so it may be absent or have different signature in next major version", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public final override /*1*/ /*fake_override*/ fun describeConstable(): java.util.Optional<java.lang.Enum.EnumDesc<E!>!>!
|
||||
public final override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<E!>!
|
||||
public final override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<E>
|
||||
}
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
// ISSUE: KT-41215
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed class Base permits A, B {}
|
||||
|
||||
// FILE: A.java
|
||||
public final class A extends Base {}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class B : Base()
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
// ISSUE: KT-41215
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed class Base permits A, B {}
|
||||
|
||||
// FILE: A.java
|
||||
public final class A extends Base {}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class B : <!CLASS_INHERITS_JAVA_SEALED_CLASS!>Base<!>()
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
package
|
||||
|
||||
public final class A : Base {
|
||||
public constructor A()
|
||||
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
|
||||
}
|
||||
|
||||
public final 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
compiler/testData/diagnostics/tests/testsWithJava15/sealedClasses/kotlinInheritsJavaInterface.fir.kt
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
// ISSUE: KT-41215
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed interface Base permits A, B {}
|
||||
|
||||
// FILE: A.java
|
||||
public final class A extends Base {}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class B : Base
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
// ISSUE: KT-41215
|
||||
|
||||
// FILE: Base.java
|
||||
public sealed interface Base permits A, B {}
|
||||
|
||||
// FILE: A.java
|
||||
public final class A extends Base {}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class B : <!CLASS_INHERITS_JAVA_SEALED_CLASS!>Base<!>
|
||||
Vendored
+21
@@ -0,0 +1,21 @@
|
||||
package
|
||||
|
||||
public final class A : Base {
|
||||
public constructor A()
|
||||
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
|
||||
}
|
||||
|
||||
public final 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user