Process only correct implicit receivers

This commit is contained in:
Valentin Kipyatkov
2020-04-12 21:03:14 +03:00
parent fdfae5260f
commit e4d9801388
3 changed files with 39 additions and 18 deletions
+14 -8
View File
@@ -1,13 +1,19 @@
// FLOW: OUT
fun Any.extensionFun(): Any {
return this
}
class C {
fun Int.outer() {
fun String.stringExtensionFun() = this
fun Int.intExtensionFun() = this
fun C.cExtensionFun() = this
fun String.foo() {
val v = extensionFun()
}
fun String.foo() {
val string = stringExtensionFun()
val int = intExtensionFun()
val c = cExtensionFun()
}
fun main() {
<caret>"A".foo()
fun bar() {
<caret>"A".foo()
}
}
}
+7 -7
View File
@@ -1,7 +1,7 @@
12 <bold>"A"</bold>.foo()
7 fun <bold>String</bold>.foo() {
3 fun <bold>Any</bold>.extensionFun(): Any {
4 return <bold>this</bold>
3 fun Any.<bold>extensionFun(): Any {</bold>
8 val v = <bold>extensionFun()</bold>
8 val <bold>v = extensionFun()</bold>
16 <bold>"A"</bold>.foo()
9 fun <bold>String</bold>.foo() {
5 fun <bold>String</bold>.stringExtensionFun() = this
5 fun String.stringExtensionFun() = <bold>this</bold>
5 fun String.<bold>stringExtensionFun() = this</bold>
10 val string = <bold>stringExtensionFun()</bold>
10 val <bold>string = stringExtensionFun()</bold>