Skip to content

Commit

Permalink
Remove hasCommentInside functions (#7269)
Browse files Browse the repository at this point in the history
* Remove hasCommentInside functions

* Simplify implementation of PsiElement.hasCommentInside
  • Loading branch information
3flex committed May 7, 2024
1 parent afd59a5 commit 35c4599
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 21 deletions.
2 changes: 0 additions & 2 deletions detekt-psi-utils/api/detekt-psi-utils.api
Expand Up @@ -42,8 +42,6 @@ public final class io/gitlab/arturbosch/detekt/rules/IsPartOfUtilsKt {

public final class io/gitlab/arturbosch/detekt/rules/JunkKt {
public static final fun companionObject (Lorg/jetbrains/kotlin/psi/KtClass;)Lorg/jetbrains/kotlin/psi/KtObjectDeclaration;
public static final fun hasCommentInside (Lorg/jetbrains/kotlin/com/intellij/psi/PsiElement;)Z
public static final fun hasCommentInside (Lorg/jetbrains/kotlin/psi/KtClassOrObject;)Z
public static final fun receiverIsUsed (Lorg/jetbrains/kotlin/psi/KtCallExpression;Lorg/jetbrains/kotlin/resolve/BindingContext;)Z
}

Expand Down
@@ -1,29 +1,12 @@
package io.gitlab.arturbosch.detekt.rules

import org.jetbrains.kotlin.com.intellij.openapi.util.Key
import org.jetbrains.kotlin.com.intellij.psi.PsiComment
import org.jetbrains.kotlin.com.intellij.psi.PsiElement
import org.jetbrains.kotlin.psi.KtBlockExpression
import org.jetbrains.kotlin.psi.KtCallExpression
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtQualifiedExpression
import org.jetbrains.kotlin.psi.KtTreeVisitorVoid
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression

fun KtClassOrObject.hasCommentInside() = this.body?.hasCommentInside() ?: false

fun PsiElement.hasCommentInside(): Boolean {
val commentKey = Key<Boolean>("comment")
this.acceptChildren(object : KtTreeVisitorVoid() {
override fun visitComment(comment: PsiComment) {
putUserData(commentKey, true)
}
})
return getUserData(commentKey) == true
}

fun KtClass.companionObject() = this.companionObjects.singleOrNull { it.isCompanion() }

fun KtCallExpression.receiverIsUsed(context: BindingContext): Boolean =
Expand Down
Expand Up @@ -4,7 +4,7 @@ import io.gitlab.arturbosch.detekt.api.ActiveByDefault
import io.gitlab.arturbosch.detekt.api.CodeSmell
import io.gitlab.arturbosch.detekt.api.Config
import io.gitlab.arturbosch.detekt.api.Entity
import io.gitlab.arturbosch.detekt.rules.hasCommentInside
import io.gitlab.arturbosch.detekt.rules.empty.internal.hasCommentInside
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.psiUtil.isObjectLiteral

Expand Down
Expand Up @@ -4,7 +4,7 @@ import io.gitlab.arturbosch.detekt.api.CodeSmell
import io.gitlab.arturbosch.detekt.api.Config
import io.gitlab.arturbosch.detekt.api.Entity
import io.gitlab.arturbosch.detekt.api.Rule
import io.gitlab.arturbosch.detekt.rules.hasCommentInside
import io.gitlab.arturbosch.detekt.rules.empty.internal.hasCommentInside
import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.LeafPsiElement
import org.jetbrains.kotlin.lexer.KtSingleValueToken
import org.jetbrains.kotlin.psi.KtBlockExpression
Expand Down
@@ -0,0 +1,10 @@
package io.gitlab.arturbosch.detekt.rules.empty.internal

import org.jetbrains.kotlin.com.intellij.psi.PsiComment
import org.jetbrains.kotlin.com.intellij.psi.PsiElement
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType

fun KtClassOrObject.hasCommentInside() = this.body?.hasCommentInside() ?: false

fun PsiElement.hasCommentInside(): Boolean = getChildrenOfType<PsiComment>().isNotEmpty()

0 comments on commit 35c4599

Please sign in to comment.