| // https://youtrack.jetbrains.com/issue/KT-50289/EXCBADACCESS-getting-non-null-property-in-safe-call-chain | |
| // IGNORE_NATIVE: optimizationMode=DEBUG | |
| // IGNORE_NATIVE: optimizationMode=NO | |
| abstract class Z { | |
| init { | |
| check(this) | |
| } | |
| abstract val b: B | |
| } | |
| class A(override val b: B) : Z() | |
| class B(val c: String) | |
| fun use(a: Any?) {} | |
| fun check(z: Z) { | |
| use(z?.b?.c) | |
| } | |
| fun box(): String { | |
| A(B("")) | |
| return "OK" | |
| } |