54858c2118
^KT-63655: Fixed ^KT-63901: Fixed ^KT-63988: Fixed
46 lines
881 B
Kotlin
Vendored
46 lines
881 B
Kotlin
Vendored
// KT-44050
|
|
enum class Enum {
|
|
Entry1() {
|
|
fun bogus() = 42
|
|
},
|
|
Entry2() {
|
|
fun bogus() = 42
|
|
}
|
|
}
|
|
|
|
class Outer {
|
|
fun barCaller(): Enum = obj1.bar()
|
|
fun bazCaller(): Enum = obj2.baz()
|
|
|
|
private abstract inner class Inner<T>(val default: T) {
|
|
abstract fun foo()
|
|
}
|
|
|
|
private val obj1 = object : Inner<Enum>(Enum.Entry1) {
|
|
override fun foo() {
|
|
TODO("not related")
|
|
}
|
|
|
|
fun bar(): Enum {
|
|
return default
|
|
}
|
|
}
|
|
|
|
private val obj2 = object : Inner<Enum>(Enum.Entry2) {
|
|
override fun foo() {
|
|
TODO("not related")
|
|
}
|
|
|
|
fun baz(): Enum {
|
|
return default
|
|
}
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
val o = Outer()
|
|
if (o.barCaller() != Enum.Entry1) return "Fail1"
|
|
if (o.bazCaller() != Enum.Entry2) return "Fail2"
|
|
return "OK"
|
|
}
|