We must check super property usages also when analyzing inflow

This commit is contained in:
Valentin Kipyatkov
2020-02-10 09:32:20 +02:00
parent 612fd6d1bf
commit b1cd56ba91
14 changed files with 138 additions and 48 deletions
+14
View File
@@ -0,0 +1,14 @@
// FLOW: IN
open class Base {
open var prop: Int = 0
}
class Derived : Base() {
override var prop: Int = 1
}
fun foo(b: Base, d: Derived) {
b.prop = 10
val <caret>v = d.prop
}
@@ -0,0 +1,11 @@
8 override var prop: Int = <bold>1</bold>
13 val <bold>v = d.prop</bold>
13 val v = <bold>d.prop</bold>
8 override var <bold>prop: Int = 1</bold>
8 override var prop: Int = <bold>1</bold>
12 b.prop = <bold>10</bold>
13 val <bold>v = d.prop</bold>
13 val v = <bold>d.prop</bold>
8 override var <bold>prop: Int = 1</bold>
12 b.prop = <bold>10</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
13 val <bold>v = d.prop</bold>
13 val <bold>v = d.prop</bold>
@@ -0,0 +1,5 @@
13 val <bold>v = d.prop</bold>
13 val v = <bold>d.prop</bold>
8 override var <bold>prop: Int = 1</bold>
8 override var prop: Int = <bold>1</bold>
12 b.prop = <bold>10</bold>
+14
View File
@@ -0,0 +1,14 @@
// FLOW: IN
interface I {
var prop: Int
}
class C : I {
override var prop: Int = 0
}
fun foo(i: I, c: C) {
i.prop = 10
val <caret>v = c.prop
}
@@ -0,0 +1,11 @@
8 override var prop: Int = <bold>0</bold>
13 val <bold>v = c.prop</bold>
13 val v = <bold>c.prop</bold>
8 override var <bold>prop: Int = 0</bold>
8 override var prop: Int = <bold>0</bold>
12 i.prop = <bold>10</bold>
13 val <bold>v = c.prop</bold>
13 val v = <bold>c.prop</bold>
8 override var <bold>prop: Int = 0</bold>
12 i.prop = <bold>10</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
13 val <bold>v = c.prop</bold>
13 val <bold>v = c.prop</bold>
@@ -0,0 +1,5 @@
13 val <bold>v = c.prop</bold>
13 val v = <bold>c.prop</bold>
8 override var <bold>prop: Int = 0</bold>
8 override var prop: Int = <bold>0</bold>
12 i.prop = <bold>10</bold>