Data Flow to Here: process data-class copy-method calls

This commit is contained in:
Valentin Kipyatkov
2020-04-21 11:18:32 +03:00
parent 7f8b3b6a79
commit 7c81d93db0
10 changed files with 98 additions and 2 deletions
+15
View File
@@ -0,0 +1,15 @@
// FLOW: IN
data class DataClass(val value1: Int, val value2: Int)
fun foo(dataClass: DataClass) {
val <caret>v = dataClass.value1
}
fun bar() {
val dataClass = DataClass(1, 2)
foo(dataClass)
foo(dataClass.copy(value1 = 10))
foo(dataClass.copy(value2 = 11))
foo(DataClass(value1 = 1, value2 = 2))
}
@@ -0,0 +1,12 @@
10 val dataClass = DataClass(<bold>1</bold>, 2) (in bar())
6 <bold>val v</bold> = dataClass.value1 (in foo(DataClass))
6 val v = <bold>dataClass.value1</bold> (in foo(DataClass))
3 data class DataClass(<bold>val value1: Int</bold>, val value2: Int) (in DataClass)
10 val dataClass = DataClass(<bold>1</bold>, 2) (in bar())
12 foo(dataClass.copy(value1 = <bold>10</bold>)) (in bar())
6 <bold>val v</bold> = dataClass.value1 (in foo(DataClass))
6 val v = <bold>dataClass.value1</bold> (in foo(DataClass))
3 data class DataClass(<bold>val value1: Int</bold>, val value2: Int) (in DataClass)
12 foo(dataClass.copy(value1 = <bold>10</bold>)) (in bar())
@@ -0,0 +1,3 @@
[NotNull Values]
6 <bold>val v</bold> = dataClass.value1 (in foo(DataClass))
6 <bold>val v</bold> = dataClass.value1 (in foo(DataClass))
+6
View File
@@ -0,0 +1,6 @@
6 <bold>val v</bold> = dataClass.value1 (in foo(DataClass))
6 val v = <bold>dataClass.value1</bold> (in foo(DataClass))
3 data class DataClass(<bold>val value1: Int</bold>, val value2: Int) (in DataClass)
10 val dataClass = DataClass(<bold>1</bold>, 2) (in bar())
12 foo(dataClass.copy(value1 = <bold>10</bold>)) (in bar())
14 foo(DataClass(value1 = <bold>1</bold>, value2 = 2)) (in bar())
+11
View File
@@ -0,0 +1,11 @@
// FLOW: OUT
data class DataClass(val value1: Int, val value2: Int)
fun foo(dataClass: DataClass) {
val v = dataClass.value1
}
fun bar(<caret>value: Int, dataClass: DataClass) {
foo(dataClass.copy(value1 = value))
}
@@ -0,0 +1,6 @@
9 fun bar(<bold>value: Int</bold>, dataClass: DataClass) { (in bar(Int, DataClass))
10 foo(dataClass.copy(value1 = <bold>value</bold>)) (in bar(Int, DataClass))
3 data class DataClass(<bold>val value1: Int</bold>, val value2: Int) (in DataClass)
6 val v = dataClass.<bold>value1</bold> (in foo(DataClass))
6 <bold>val v</bold> = dataClass.value1 (in foo(DataClass))
10 foo(dataClass.copy(<bold>value1</bold> = value)) (in bar(Int, DataClass))