Data flow to/from here: supported expected/actual declarations and extension receivers

This commit is contained in:
Valentin Kipyatkov
2020-04-09 22:01:22 +03:00
parent bfa3fb0589
commit 90188ef44f
78 changed files with 1704 additions and 801 deletions
@@ -0,0 +1,5 @@
class JavaClass {
void f() {
KotlinUtil.extensionFun("x");
}
}
+13
View File
@@ -0,0 +1,13 @@
// FLOW: IN
@file: JvmName("KotlinUtil")
import kotlin.jvm.JvmName
fun <caret>Any.extensionFun() {
}
fun foo() {
"".extensionFun()
1.extensionFun()
}
@@ -0,0 +1,12 @@
11 <bold>""</bold>.extensionFun()
7 fun <bold>Any</bold>.extensionFun() {
11 <bold>""</bold>.extensionFun()
3 KotlinUtil.extensionFun(<bold>"x"</bold>);
7 fun <bold>Any</bold>.extensionFun() {
3 KotlinUtil.extensionFun(<bold>"x"</bold>);
12 <bold>1</bold>.extensionFun()
7 fun <bold>Any</bold>.extensionFun() {
12 <bold>1</bold>.extensionFun()
@@ -0,0 +1,13 @@
[NotNull Values]
11 <bold>""</bold>.extensionFun()
7 fun <bold>Any</bold>.extensionFun() {
11 <bold>""</bold>.extensionFun()
12 <bold>1</bold>.extensionFun()
7 fun <bold>Any</bold>.extensionFun() {
12 <bold>1</bold>.extensionFun()
[Other Values]
3 KotlinUtil.extensionFun(<bold>"x"</bold>);
7 fun <bold>Any</bold>.extensionFun() {
3 KotlinUtil.extensionFun(<bold>"x"</bold>);
@@ -0,0 +1,4 @@
7 fun <bold>Any</bold>.extensionFun() {
3 KotlinUtil.extensionFun(<bold>"x"</bold>);
11 <bold>""</bold>.extensionFun()
12 <bold>1</bold>.extensionFun()
+10
View File
@@ -0,0 +1,10 @@
// FLOW: IN
var <caret>Any.property: Int
get() = 1
set(value) { }
fun foo() {
println("a".property)
"b".property = 2
}
@@ -0,0 +1,7 @@
9 <bold>"b"</bold>.property = 2
3 var <bold>Any</bold>.property: Int
9 <bold>"b"</bold>.property = 2
8 println(<bold>"a"</bold>.property)
3 var <bold>Any</bold>.property: Int
8 println(<bold>"a"</bold>.property)
@@ -0,0 +1,7 @@
[NotNull Values]
8 println(<bold>"a"</bold>.property)
3 var <bold>Any</bold>.property: Int
8 println(<bold>"a"</bold>.property)
9 <bold>"b"</bold>.property = 2
3 var <bold>Any</bold>.property: Int
9 <bold>"b"</bold>.property = 2
@@ -0,0 +1,3 @@
3 var <bold>Any</bold>.property: Int
8 println(<bold>"a"</bold>.property)
9 <bold>"b"</bold>.property = 2
+20
View File
@@ -0,0 +1,20 @@
// FLOW: IN
open class Base {
open fun Int.extensionFun() {
println(<caret>this)
}
fun baseF() {
1.extensionFun()
}
}
class Derived : Base() {
override fun Int.extensionFun() {
}
fun derivedF() {
2.extensionFun()
}
}
@@ -0,0 +1,4 @@
9 <bold>1</bold>.extensionFun()
5 println(<bold>this</bold>)
4 open fun <bold>Int</bold>.extensionFun() {
9 <bold>1</bold>.extensionFun()
@@ -0,0 +1,3 @@
[NotNull Values]
5 println(<bold>this</bold>)
5 println(<bold>this</bold>)
@@ -0,0 +1,3 @@
5 println(<bold>this</bold>)
4 open fun <bold>Int</bold>.extensionFun() {
9 <bold>1</bold>.extensionFun()
+20
View File
@@ -0,0 +1,20 @@
// FLOW: IN
open class Base {
open fun <caret>Int.extensionFun() {
println(this)
}
fun baseF() {
1.extensionFun()
}
}
class Derived : Base() {
override fun Int.extensionFun() {
}
fun derivedF() {
2.extensionFun()
}
}
@@ -0,0 +1,7 @@
9 <bold>1</bold>.extensionFun()
4 open fun <bold>Int</bold>.extensionFun() {
9 <bold>1</bold>.extensionFun()
18 <bold>2</bold>.extensionFun()
4 open fun <bold>Int</bold>.extensionFun() {
18 <bold>2</bold>.extensionFun()
@@ -0,0 +1,7 @@
[NotNull Values]
9 <bold>1</bold>.extensionFun()
4 open fun <bold>Int</bold>.extensionFun() {
9 <bold>1</bold>.extensionFun()
18 <bold>2</bold>.extensionFun()
4 open fun <bold>Int</bold>.extensionFun() {
18 <bold>2</bold>.extensionFun()
@@ -0,0 +1,3 @@
4 open fun <bold>Int</bold>.extensionFun() {
9 <bold>1</bold>.extensionFun()
18 <bold>2</bold>.extensionFun()
@@ -0,0 +1,9 @@
// FLOW: IN
fun Any.extensionFun(): Any {
return this
}
fun foo() {
val <caret>x = "".extensionFun()
}
@@ -0,0 +1,8 @@
8 val x = <bold>""</bold>.extensionFun()
8 val <bold>x = "".extensionFun()</bold>
8 val x = <bold>"".extensionFun()</bold>
3 fun Any.<bold>extensionFun(): Any {</bold>
4 return <bold>this</bold>
3 fun <bold>Any</bold>.extensionFun(): Any {
8 val x = <bold>""</bold>.extensionFun()
@@ -0,0 +1,3 @@
[NotNull Values]
8 val <bold>x = "".extensionFun()</bold>
8 val <bold>x = "".extensionFun()</bold>
@@ -0,0 +1,6 @@
8 val <bold>x = "".extensionFun()</bold>
8 val x = <bold>"".extensionFun()</bold>
3 fun Any.<bold>extensionFun(): Any {</bold>
4 return <bold>this</bold>
3 fun <bold>Any</bold>.extensionFun(): Any {
8 val x = <bold>""</bold>.extensionFun()
@@ -0,0 +1,8 @@
// FLOW: IN
val Any.extensionProp: Any
get() = this
fun foo() {
val <caret>x = "".extensionProp
}
@@ -0,0 +1,8 @@
7 val x = <bold>""</bold>.extensionProp
7 val <bold>x = "".extensionProp</bold>
7 val x = <bold>"".extensionProp</bold>
3 val Any.<bold>extensionProp: Any</bold>
4 get() = <bold>this</bold>
3 val <bold>Any</bold>.extensionProp: Any
7 val x = <bold>""</bold>.extensionProp
@@ -0,0 +1,3 @@
[NotNull Values]
7 val <bold>x = "".extensionProp</bold>
7 val <bold>x = "".extensionProp</bold>
@@ -0,0 +1,6 @@
7 val <bold>x = "".extensionProp</bold>
7 val x = <bold>"".extensionProp</bold>
3 val Any.<bold>extensionProp: Any</bold>
4 get() = <bold>this</bold>
3 val <bold>Any</bold>.extensionProp: Any
7 val x = <bold>""</bold>.extensionProp