mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
[kotlin] Do not report a local variable named as _ as a naming violation
#KTIJ-34207 GitOrigin-RevId: 3f11c675bc3b065ff064ad9bc83fde746747e955
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d81f522850
commit
bdf54c4ac9
@@ -15,7 +15,10 @@ import com.intellij.codeInspection.reference.RefPackage
|
||||
import com.intellij.lang.injection.InjectedLanguageManager
|
||||
import com.intellij.openapi.util.NlsSafe
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.PsiNameIdentifierOwner
|
||||
import com.siyeh.ig.BaseGlobalInspection
|
||||
import com.siyeh.ig.psiutils.TestUtils
|
||||
import org.intellij.lang.annotations.Language
|
||||
@@ -23,6 +26,7 @@ import org.jdom.Element
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.AbstractKotlinInspection
|
||||
import org.jetbrains.kotlin.idea.codeinsights.impl.base.isExplicitlyIgnoredByName
|
||||
import org.jetbrains.kotlin.idea.core.packageMatchesDirectoryOrImplicit
|
||||
import org.jetbrains.kotlin.idea.quickfix.RenameIdentifierFix
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
@@ -129,7 +133,7 @@ class NamingConventionInspectionSettings(
|
||||
return findRuleMessage(name, rules) ?: getDefaultErrorMessage()
|
||||
}
|
||||
|
||||
fun getDefaultErrorMessage() = KotlinBundle.message("doesn.t.match.regex.0", namePattern)
|
||||
fun getDefaultErrorMessage(): String = KotlinBundle.message("doesn.t.match.regex.0", namePattern)
|
||||
|
||||
fun getOptionsPane(): OptPane = pane(string("namePattern", KotlinBundle.message("text.pattern"), 30, RegexValidator()))
|
||||
|
||||
@@ -258,9 +262,10 @@ abstract class PropertyNameInspectionBase protected constructor(
|
||||
|
||||
protected enum class PropertyKind { NORMAL, OBJECT_PRIVATE, PRIVATE, OBJECT_OR_TOP_LEVEL, CONST, LOCAL }
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean) = object : KtVisitorVoid() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): KtVisitorVoid = object : KtVisitorVoid() {
|
||||
override fun visitProperty(property: KtProperty) {
|
||||
if (property.hasModifier(KtTokens.OVERRIDE_KEYWORD)) return
|
||||
if (property.isExplicitlyIgnoredByName()) return
|
||||
if (property.getKind() == kind) {
|
||||
verifyName(property, holder, additionalCheck = { additionalPropertyCheck(property) })
|
||||
}
|
||||
@@ -268,14 +273,14 @@ abstract class PropertyNameInspectionBase protected constructor(
|
||||
|
||||
override fun visitParameter(parameter: KtParameter) {
|
||||
if (parameter.hasModifier(KtTokens.OVERRIDE_KEYWORD)) return
|
||||
if (parameter.isSingleUnderscore) return
|
||||
if (parameter.isExplicitlyIgnoredByName()) return
|
||||
if (parameter.getKind() == kind) {
|
||||
verifyName(parameter, holder)
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitDestructuringDeclarationEntry(multiDeclarationEntry: KtDestructuringDeclarationEntry) {
|
||||
if (multiDeclarationEntry.isSingleUnderscore) return
|
||||
if (multiDeclarationEntry.isExplicitlyIgnoredByName()) return
|
||||
if (kind == PropertyKind.LOCAL) {
|
||||
verifyName(multiDeclarationEntry, holder)
|
||||
}
|
||||
@@ -284,9 +289,6 @@ abstract class PropertyNameInspectionBase protected constructor(
|
||||
|
||||
protected open fun additionalPropertyCheck(property: KtNamedDeclaration): Boolean = true
|
||||
|
||||
private val PsiNamedElement.isSingleUnderscore: Boolean
|
||||
get() = name == "_"
|
||||
|
||||
private fun KtProperty.getKind(): PropertyKind {
|
||||
val private = visibilityModifierType() == KtTokens.PRIVATE_KEYWORD
|
||||
return when {
|
||||
|
||||
@@ -36,4 +36,7 @@ fun lambda() {
|
||||
fun anonymousFun() {
|
||||
"".let(fun(_: String) {
|
||||
})
|
||||
}
|
||||
val _ = someValueProvider()
|
||||
}
|
||||
|
||||
fun someValueProvider() = 42
|
||||
Reference in New Issue
Block a user