FIR: Rework receivers processing in resolution
- Put extensionReceiver to candidate even if it's explicit (for sake of clarity) - Split CheckReceiver (dispatch part should only check nullability)
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
||||
fun <E : String?, T : ((CharSequence) -> Unit)?> foo(x: E, y: T) {
|
||||
if (x != null) {
|
||||
y(x)
|
||||
<!INAPPLICABLE_CANDIDATE!>y<!>(x)
|
||||
}
|
||||
|
||||
if (y != null) {
|
||||
@@ -10,4 +10,4 @@ fun <E : String?, T : ((CharSequence) -> Unit)?> foo(x: E, y: T) {
|
||||
if (x != null && y != null) {
|
||||
y(x)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
fun <T : Any?> foo(x: T) {
|
||||
if (x is String?) {
|
||||
x.length
|
||||
x.<!INAPPLICABLE_CANDIDATE!>length<!>
|
||||
|
||||
if (x != null) {
|
||||
x.length
|
||||
|
||||
@@ -24,7 +24,7 @@ fun <T : CharSequence?> foo(x: T) {
|
||||
x?.bar1()
|
||||
}
|
||||
|
||||
x.length
|
||||
x.<!INAPPLICABLE_CANDIDATE!>length<!>
|
||||
|
||||
if (x is String) {
|
||||
x.length
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ fun <T : String?> T.foo() {
|
||||
this?.bar1()
|
||||
}
|
||||
|
||||
length
|
||||
<!INAPPLICABLE_CANDIDATE!>length<!>
|
||||
|
||||
if (this is String) {
|
||||
length
|
||||
@@ -33,4 +33,4 @@ fun <T : String?> T.foo() {
|
||||
bar2()
|
||||
bar3()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ fun CharSequence?.bar2() {}
|
||||
fun <T : CharSequence> T.bar3() {}
|
||||
|
||||
fun <T : String?> foo(x: T) {
|
||||
x.length
|
||||
x.<!INAPPLICABLE_CANDIDATE!>length<!>
|
||||
x?.length
|
||||
|
||||
if (1 == 1) {
|
||||
|
||||
Reference in New Issue
Block a user