Report error for Result as an extension receiver with safe call

#KT-27620 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2018-10-16 15:50:26 +03:00
parent 249bdb969c
commit fe233de825
2 changed files with 3 additions and 1 deletions
@@ -21,7 +21,8 @@ class ResultTypeWithNullableOperatorsChecker : CallChecker {
when {
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()) {
context.trace.report(Errors.RESULT_CLASS_WITH_NULLABLE_OPERATOR.on(operationNode!!.psi, "?."))
}
@@ -22,6 +22,7 @@ fun nullableOperators(r1: Result<Int>?, b: Boolean) {
if (b) {
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>let { }
returnInt()?.intResult<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
asFun()<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
id(r1)<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()