Report error for Result as an extension receiver with safe call
#KT-27620 Fixed
This commit is contained in:
+2
-1
@@ -21,7 +21,8 @@ class ResultTypeWithNullableOperatorsChecker : CallChecker {
|
|||||||
|
|
||||||
when {
|
when {
|
||||||
operationNode?.elementType == KtTokens.SAFE_ACCESS -> {
|
operationNode?.elementType == KtTokens.SAFE_ACCESS -> {
|
||||||
val receiver = resolvedCall.resultingDescriptor.dispatchReceiverParameter ?: return
|
val resultingDescriptor = resolvedCall.resultingDescriptor
|
||||||
|
val receiver = resultingDescriptor.extensionReceiverParameter ?: resultingDescriptor.dispatchReceiverParameter ?: return
|
||||||
if (receiver.type.isResultType()) {
|
if (receiver.type.isResultType()) {
|
||||||
context.trace.report(Errors.RESULT_CLASS_WITH_NULLABLE_OPERATOR.on(operationNode!!.psi, "?."))
|
context.trace.report(Errors.RESULT_CLASS_WITH_NULLABLE_OPERATOR.on(operationNode!!.psi, "?."))
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
@@ -22,6 +22,7 @@ fun nullableOperators(r1: Result<Int>?, b: Boolean) {
|
|||||||
|
|
||||||
if (b) {
|
if (b) {
|
||||||
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||||
|
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>let { }
|
||||||
returnInt()?.intResult<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
returnInt()?.intResult<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||||
asFun()<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
asFun()<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||||
id(r1)<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
id(r1)<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||||
|
|||||||
Reference in New Issue
Block a user