From 416104d230c778d7b30f6f84cb0bbab9a4b81ab5 Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Mon, 25 Mar 2024 13:38:12 +0100 Subject: [PATCH] IDEA-349976: Do not get identifier for a special FqName in KotlinObjectExtensionRegistrationInspection GitOrigin-RevId: ca001cf27ab55b934c302571bee667a3e745061a --- .../KotlinObjectExtensionRegistrationInspection.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/devkit/intellij.kotlin.devkit/src/inspections/KotlinObjectExtensionRegistrationInspection.kt b/plugins/devkit/intellij.kotlin.devkit/src/inspections/KotlinObjectExtensionRegistrationInspection.kt index ee0d8bcde88c..b3aa53571e82 100644 --- a/plugins/devkit/intellij.kotlin.devkit/src/inspections/KotlinObjectExtensionRegistrationInspection.kt +++ b/plugins/devkit/intellij.kotlin.devkit/src/inspections/KotlinObjectExtensionRegistrationInspection.kt @@ -43,11 +43,18 @@ internal class KotlinObjectExtensionRegistrationInspection : DevKitPluginXmlInsp val className = stringValue if (className.isNullOrBlank()) return false val normalizedClassName = ExtensionUtil.getNormalizedClassName(className) ?: return false - val fqName = FqName(normalizedClassName).takeIf { it.shortName().identifier.isNotEmpty() } ?: return false + val fqName = FqName(normalizedClassName).takeIf { it.isValidIdentifier() } ?: return false val kotlinAsJavaSupport = project.getService(KotlinAsJavaSupport::class.java) ?: return false val classOrObjectDeclarations = kotlinAsJavaSupport.findClassOrObjectDeclarations(fqName, this.resolveScope) return classOrObjectDeclarations.size == 1 && classOrObjectDeclarations.firstOrNull() is KtObjectDeclaration } + + private fun FqName.isValidIdentifier(): Boolean { + return this.shortName() + .takeIf { !it.isSpecial } // IDEA-349976 + ?.identifier + ?.isNotEmpty() == true + } } @VisibleForTesting