Minor: invert logic of function

This commit is contained in:
Mikhail Zarechenskiy
2018-09-18 12:56:53 +03:00
parent 5229ed0217
commit 5e9b31ca2c
@@ -186,7 +186,7 @@ class CoroutineInferenceSupport(
callCompleter.completeCall(context, overloadResults, tracingStrategy) callCompleter.completeCall(context, overloadResults, tracingStrategy)
if (!resultingCall.isReallySuccess()) return if (!resultingCall.isReallySuccess()) return
if (isBadCall(resultingCall.resultingDescriptor)) { if (!isGoodCall(resultingCall.resultingDescriptor)) {
inferenceData.badCallHappened() 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 } fun KotlinType.containsTypeTemplate() = contains { it is TypeTemplate }
val returnType = resultingDescriptor.returnType ?: return true val returnType = resultingDescriptor.returnType ?: return false
if (returnType.containsTypeTemplate()) return true 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 (resultingDescriptor.valueParameters.any { it.type.containsTypeTemplate() }) return false
if (valueParameter.type.containsTypeTemplate()) return true
} return true
return false
} }
private class CoroutineTypeCheckerContext : TypeCheckerContext(errorTypeEqualsToAnything = true) { private class CoroutineTypeCheckerContext : TypeCheckerContext(errorTypeEqualsToAnything = true) {