From 8140ab2eb67eaa1787b55e4fa7f9c5a6ed61c029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sun, 4 Sep 2022 13:33:14 +0200 Subject: [PATCH 1/3] Don't hide the fact that there are not available descriptors --- .../detekt/rules/complexity/NestedScopeFunctions.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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..c57d6df7ebf 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,14 +120,13 @@ class NestedScopeFunctions(config: Config = Config.empty) : Rule(config) { } private fun KtCallExpression.isScopeFunction(): Boolean { - val descriptors = resolveDescriptors() + 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) } From 3eab7fa22bb3f6d9db8b427c10a89ed9d89aec0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sun, 4 Sep 2022 13:34:21 +0200 Subject: [PATCH 2/3] Make function return the correct value --- .../detekt/rules/complexity/NestedScopeFunctions.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c57d6df7ebf..42bdbc823b9 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 @@ -121,7 +121,7 @@ class NestedScopeFunctions(config: Config = Config.empty) : Rule(config) { private fun KtCallExpression.isScopeFunction(): Boolean { val descriptors = resolveDescriptors() ?: return false - return !descriptors.any { it.matchesScopeFunction() } + return !descriptors.any { !it.matchesScopeFunction() } } private fun KtCallExpression.resolveDescriptors(): List? = @@ -129,6 +129,6 @@ class NestedScopeFunctions(config: Config = Config.empty) : Rule(config) { ?.let { listOf(it) + it.overriddenDescriptors } private fun CallableDescriptor.matchesScopeFunction(): Boolean = - !functions.any { it.match(this) } + functions.any { it.match(this) } } } From 6e41cfb8f33ecefca3bec5eb96564291b2eb24c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sun, 4 Sep 2022 13:37:47 +0200 Subject: [PATCH 3/3] Fix boolean logic --- .../arturbosch/detekt/rules/complexity/NestedScopeFunctions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 42bdbc823b9..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 @@ -121,7 +121,7 @@ class NestedScopeFunctions(config: Config = Config.empty) : Rule(config) { private fun KtCallExpression.isScopeFunction(): Boolean { val descriptors = resolveDescriptors() ?: return false - return !descriptors.any { !it.matchesScopeFunction() } + return descriptors.any { it.matchesScopeFunction() } } private fun KtCallExpression.resolveDescriptors(): List? =