Unnecessary safe call is now reported in CallExpressionResolver, removed code duplication for safe call receivers

See also KT-10175
This commit is contained in:
Mikhail Glukhikh
2015-11-24 12:06:33 +03:00
parent da90c21284
commit 46f4191185
12 changed files with 33 additions and 65 deletions
@@ -29,6 +29,6 @@ import p.*
fun <Y, Z> test(b: B<Y, Z>?) {
if (b is C<Y, Z>) {
b?.<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(null)
b<!UNNECESSARY_SAFE_CALL!>?.<!><!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(null)
}
}
@@ -31,6 +31,6 @@ fun test(b: B?, c: C) {
b?.foo(1, 1)
c.foo(1, 1)
if (b is C) {
b?.<!CANNOT_COMPLETE_RESOLVE!>foo<!>(1, 1)
b<!UNNECESSARY_SAFE_CALL!>?.<!><!CANNOT_COMPLETE_RESOLVE!>foo<!>(1, 1)
}
}
@@ -33,6 +33,6 @@ import p.*
fun test(b: B?) {
if (b is C && b is D) {
b?.<!OVERLOAD_RESOLUTION_AMBIGUITY!>getParent<!>()
b<!UNNECESSARY_SAFE_CALL!>?.<!><!OVERLOAD_RESOLUTION_AMBIGUITY!>getParent<!>()
}
}
@@ -29,6 +29,6 @@ import p.*
fun test(b: B?) {
if (b is C) {
b?.<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>("")
b<!UNNECESSARY_SAFE_CALL!>?.<!><!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>("")
}
}