From 5e9b31ca2ca9c4d651dc1a3db61a887fa5754ae2 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Tue, 18 Sep 2018 12:56:53 +0300 Subject: [PATCH] Minor: invert logic of function --- .../calls/inference/CoroutineInferenceUtil.kt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/inference/CoroutineInferenceUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/inference/CoroutineInferenceUtil.kt index 2094ccdc6f7..2e865a3ee78 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/inference/CoroutineInferenceUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/inference/CoroutineInferenceUtil.kt @@ -186,7 +186,7 @@ class CoroutineInferenceSupport( callCompleter.completeCall(context, overloadResults, tracingStrategy) if (!resultingCall.isReallySuccess()) return - if (isBadCall(resultingCall.resultingDescriptor)) { + if (!isGoodCall(resultingCall.resultingDescriptor)) { inferenceData.badCallHappened() } @@ -208,18 +208,17 @@ class CoroutineInferenceSupport( } } - private fun isBadCall(resultingDescriptor: CallableDescriptor): Boolean { + private fun isGoodCall(resultingDescriptor: CallableDescriptor): Boolean { fun KotlinType.containsTypeTemplate() = contains { it is TypeTemplate } - val returnType = resultingDescriptor.returnType ?: return true - if (returnType.containsTypeTemplate()) return true + val returnType = resultingDescriptor.returnType ?: return false + if (returnType.containsTypeTemplate()) return false - if (resultingDescriptor !is FunctionDescriptor || resultingDescriptor.isSuspend) return false + if (resultingDescriptor !is FunctionDescriptor || resultingDescriptor.isSuspend) return true - for (valueParameter in resultingDescriptor.valueParameters) { - if (valueParameter.type.containsTypeTemplate()) return true - } - return false + if (resultingDescriptor.valueParameters.any { it.type.containsTypeTemplate() }) return false + + return true } private class CoroutineTypeCheckerContext : TypeCheckerContext(errorTypeEqualsToAnything = true) {