Data flow information is no longer dropped while analyzing object literal expression. #KT-6293 Fixed. #KT-7110 Fixed.
A set of tests for KT-6293 / KT-7110 provided.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
abstract class Runnable {
|
||||
abstract fun run()
|
||||
}
|
||||
|
||||
fun foo(): Int {
|
||||
val c: Int? = null
|
||||
var a: Int?
|
||||
if (c is Int) {
|
||||
a = 2
|
||||
val k = object: Runnable() {
|
||||
init {
|
||||
a = null
|
||||
}
|
||||
override fun run() = Unit
|
||||
}
|
||||
k.run()
|
||||
val d: Int = <!DEBUG_INFO_SMARTCAST!>c<!>
|
||||
// a is captured so smart cast is not possible
|
||||
return d + <!SMARTCAST_IMPOSSIBLE!>a<!>
|
||||
}
|
||||
else return -1
|
||||
}
|
||||
Reference in New Issue
Block a user