K2: reproduce KT-61459

This commit is contained in:
Mikhail Glukhikh
2023-09-08 16:54:00 +02:00
committed by Space Team
parent 310e89f100
commit 92470484bf
7 changed files with 74 additions and 0 deletions
@@ -0,0 +1,22 @@
// ISSUE: KT-61459
interface Alarm {
interface Builder<Self : Builder<Self>> {
fun build(): Alarm
}
}
abstract class AbstractAlarm<Self : AbstractAlarm<Self, Builder>, Builder : AbstractAlarm.Builder<Builder, Self>>(
val identifier: String,
) : Alarm {
abstract class Builder<Self : Builder<!TYPE_ARGUMENTS_NOT_ALLOWED!><Self, Built><!>, Built : AbstractAlarm<Built, <!UPPER_BOUND_VIOLATED!>Self<!>>> : Alarm.Builder<<!UPPER_BOUND_VIOLATED!>Self<!>> {
private var identifier: String = ""
fun setIdentifier(text: String): Self {
this.identifier = text
return this <!UNCHECKED_CAST!>as Self<!>
}
final override fun build(): Built = TODO()
}
}
@@ -0,0 +1,22 @@
// ISSUE: KT-61459
interface Alarm {
interface Builder<Self : Builder<Self>> {
fun build(): Alarm
}
}
abstract class AbstractAlarm<Self : AbstractAlarm<Self, Builder>, Builder : AbstractAlarm.Builder<Builder, Self>>(
val identifier: String,
) : Alarm {
abstract class Builder<Self : Builder<Self, Built>, Built : AbstractAlarm<Built, Self>> : Alarm.Builder<Self> {
private var identifier: String = ""
fun setIdentifier(text: String): Self {
this.identifier = text
return this <!UNCHECKED_CAST!>as Self<!>
}
final override fun build(): Built = TODO()
}
}