Retain data flow info after array accesses
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
fun foo(arr: Array<out Number>): Int {
|
||||
val result = (arr as Array<Int>)[0]
|
||||
arr : Array<Int>
|
||||
return result
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
trait G {
|
||||
fun get(x: Int, y: Int): Int = x + y
|
||||
fun set(x: Int, y: Int, value: Int) {}
|
||||
}
|
||||
|
||||
fun foo1(a: Int?, b: G) {
|
||||
b[a!!, a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>] = a
|
||||
a : Int
|
||||
}
|
||||
|
||||
fun foo2(a: Int?, b: G) {
|
||||
b[0, a!!] = a
|
||||
a : Int
|
||||
}
|
||||
|
||||
fun foo3(a: Int?, b: G) {
|
||||
val r = b[a!!, a]
|
||||
a : Int
|
||||
r : Int
|
||||
}
|
||||
|
||||
fun foo4(a: Int?, b: G) {
|
||||
val r = b[0, a!!]
|
||||
a : Int
|
||||
r : Int
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fun foo1(a: Int?, b: Array<Array<Int>>) {
|
||||
b[a!!][a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>] = a
|
||||
a : Int
|
||||
}
|
||||
|
||||
fun foo2(a: Int?, b: Array<Array<Int>>) {
|
||||
b[0][a!!] = a
|
||||
a : Int
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun arrayAccessRHS(a: Int?, b: Array<Int>) {
|
||||
b[0] = a!!
|
||||
a : Int
|
||||
}
|
||||
|
||||
fun arrayAccessLHS(a: Int?, b: Array<Int>) {
|
||||
b[a!!] = a
|
||||
a : Int
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user