diff --git a/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/NestedScopeFunctions.kt b/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/NestedScopeFunctions.kt index 81a0dc39d7f..4d037aad5a3 100644 --- a/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/NestedScopeFunctions.kt +++ b/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/NestedScopeFunctions.kt @@ -120,16 +120,15 @@ class NestedScopeFunctions(config: Config = Config.empty) : Rule(config) { } private fun KtCallExpression.isScopeFunction(): Boolean { - val descriptors = resolveDescriptors() - return !descriptors.any { it.matchesScopeFunction() } + val descriptors = resolveDescriptors() ?: return false + return descriptors.any { it.matchesScopeFunction() } } - private fun KtCallExpression.resolveDescriptors(): List = + private fun KtCallExpression.resolveDescriptors(): List? = getResolvedCall(bindingContext)?.resultingDescriptor ?.let { listOf(it) + it.overriddenDescriptors } - .orEmpty() private fun CallableDescriptor.matchesScopeFunction(): Boolean = - !functions.any { it.match(this) } + functions.any { it.match(this) } } }