Analyze Data Flow: Support val/var parameters

#KT-11994 In Progress
This commit is contained in:
Alexey Sedunov
2017-05-31 19:10:32 +03:00
parent ea7d535ae7
commit 49da81f681
10 changed files with 143 additions and 12 deletions
+9
View File
@@ -0,0 +1,9 @@
// FLOW: IN
open class A(val <caret>n: Int)
class B : A(1)
fun test() {
val z = A(2).n
}
+3
View File
@@ -0,0 +1,3 @@
3 open class A(val <bold>n: Int</bold>)
5 class B : A(<bold>1</bold>)
8 val z = A(<bold>2</bold>).n
+25
View File
@@ -0,0 +1,25 @@
// FLOW: IN
open class A(var <caret>n: Int) {
val x = n
val y: Int
init {
y = n
bar(n)
}
fun bar(m: Int) {
val z = n
n = 1
}
}
class B : A(1)
fun test() {
val z = A(2).n
A(3).n = 2
}
+5
View File
@@ -0,0 +1,5 @@
3 open class A(var <bold>n: Int</bold>) {
20 class B : A(<bold>1</bold>)
23 val z = A(<bold>2</bold>).n
24 A(<bold>3</bold>).n = 2
16 n = <bold>1</bold>
+21
View File
@@ -0,0 +1,21 @@
// FLOW: OUT
class A(val <caret>n: Int) {
val x = n
val y: Int
init {
y = n
bar(n)
}
fun bar(m: Int) {
val z = n
}
}
fun test() {
val z = A(1).n
}
+6
View File
@@ -0,0 +1,6 @@
3 class A(val <bold>n: Int</bold>) {
4 val <bold>x = n</bold>
6 val <bold>y: Int</bold>
14 fun bar(<bold>m: Int</bold>) {
15 val <bold>z = n</bold>
20 val <bold>z = A(1).n</bold>
+23
View File
@@ -0,0 +1,23 @@
// FLOW: OUT
class A(var <caret>n: Int) {
val x = n
val y: Int
init {
y = n
bar(n)
}
fun bar(m: Int) {
val z = n
n = 1
}
}
fun test() {
val z = A(1).n
A(1).n = 2
}
+6
View File
@@ -0,0 +1,6 @@
3 class A(var <bold>n: Int</bold>) {
4 val <bold>x = n</bold>
6 val <bold>y: Int</bold>
14 fun bar(<bold>m: Int</bold>) {
15 val <bold>z = n</bold>
21 val <bold>z = A(1).n</bold>