Review fixes for mutable variable smart casting (mostly refactoring).
DataFlowValue.isPredictable() introduced instead of isStableIdentifier(). Parenthesized assignments are treated correctly.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
fun x(): Boolean { return true }
|
||||
|
||||
public fun foo(pp: String?): Int {
|
||||
var p = pp
|
||||
while(true) {
|
||||
p!!.length()
|
||||
if (x()) break
|
||||
(((p))) = null
|
||||
}
|
||||
// Smart cast is NOT possible here
|
||||
// (we could provide it but p = null makes it much harder)
|
||||
return p<!UNSAFE_CALL!>.<!>length()
|
||||
}
|
||||
Reference in New Issue
Block a user