KT-2317 Wrong UNNECESSARY_SAFE_CALL
#KT-2317 Fixed
This commit is contained in:
committed by
Alexander Udalov
parent
bb8dc49692
commit
b2defb2cb4
@@ -758,7 +758,7 @@ public class CallResolver {
|
|||||||
result = OTHER_ERROR;
|
result = OTHER_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (safeAccess && (receiverParameter.getType().isNullable() || !receiverArgumentType.isNullable())) {
|
if (safeAccess && !receiverArgumentType.isNullable()) {
|
||||||
context.tracing.unnecessarySafeCall(context.candidateCall.getTrace(), receiverArgumentType);
|
context.tracing.unnecessarySafeCall(context.candidateCall.getTrace(), receiverArgumentType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,10 +66,10 @@ import outer.*
|
|||||||
command.equals(null)
|
command.equals(null)
|
||||||
command?.equals(null)
|
command?.equals(null)
|
||||||
command.equals1(null)
|
command.equals1(null)
|
||||||
command<!UNNECESSARY_SAFE_CALL!>?.<!>equals1(null)
|
command?.equals1(null)
|
||||||
|
|
||||||
val c = Command()
|
val c = Command()
|
||||||
c<!UNNECESSARY_SAFE_CALL!>?.<!>equals2(null)
|
c<!UNNECESSARY_SAFE_CALL!>?.<!>equals2(null)
|
||||||
|
|
||||||
if (command == null) 1
|
if (command == null) 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
//KT-2317 Wrong UNNECESSARY_SAFE_CALL
|
||||||
|
|
||||||
|
package kt2317
|
||||||
|
|
||||||
|
fun Any?.baz() = 1
|
||||||
|
|
||||||
|
fun foo(l: Long?) = l?.baz()
|
||||||
|
|
||||||
|
|
||||||
|
fun Any?.bar(): Unit { }
|
||||||
|
|
||||||
|
fun quux(x: Int?): Unit {
|
||||||
|
x?.baz()
|
||||||
|
x?.bar()
|
||||||
|
}
|
||||||
+1
-1
@@ -32,7 +32,7 @@ fun test(x : Int?, a : A?) {
|
|||||||
a.times(1)
|
a.times(1)
|
||||||
a * 1
|
a * 1
|
||||||
a times 1
|
a times 1
|
||||||
a<!UNNECESSARY_SAFE_CALL!>?.<!>times(1)
|
a?.times(1)
|
||||||
|
|
||||||
1 <!UNSAFE_INFIX_CALL!>in<!> a
|
1 <!UNSAFE_INFIX_CALL!>in<!> a
|
||||||
a <!UNSAFE_INFIX_CALL!>contains<!> 1
|
a <!UNSAFE_INFIX_CALL!>contains<!> 1
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ fun test(a : A?) {
|
|||||||
|
|
||||||
a?.foo()
|
a?.foo()
|
||||||
a?.bar()
|
a?.bar()
|
||||||
a<!UNNECESSARY_SAFE_CALL!>?.<!>buzz() // warning
|
a?.buzz()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun A.test2() {
|
fun A.test2() {
|
||||||
@@ -40,5 +40,5 @@ fun A?.test3() {
|
|||||||
|
|
||||||
this?.foo()
|
this?.foo()
|
||||||
this?.bar()
|
this?.bar()
|
||||||
this<!UNNECESSARY_SAFE_CALL!>?.<!>buzz() // warning
|
this?.buzz()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ fun Array<String>.length() : Int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun test(array : Array<String?>?) {
|
fun test(array : Array<String?>?) {
|
||||||
array<!UNNECESSARY_SAFE_CALL!>?.<!>sure<Array<String?>>()<!UNSAFE_CALL!>.<!>length()
|
array?.sure<Array<String?>>()<!UNSAFE_CALL!>.<!>length()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ fun Int.foo() = this
|
|||||||
command.equals(null)
|
command.equals(null)
|
||||||
command?.equals(null)
|
command?.equals(null)
|
||||||
command.equals1(null)
|
command.equals1(null)
|
||||||
command<warning>?.</warning>equals1(null)
|
command?.equals1(null)
|
||||||
|
|
||||||
val c = Command()
|
val c = Command()
|
||||||
c<warning>?.</warning>equals2(null)
|
c<warning>?.</warning>equals2(null)
|
||||||
|
|||||||
Reference in New Issue
Block a user