From e69d6d2d05db2a48b2814c6ceaec0dd9230551cd Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Tue, 19 Mar 2024 14:31:30 +0100 Subject: [PATCH] [FIR/JS] Fix package name check in FirJsPackageDirectiveChecker #KT-66491 Fixed --- .../js/checkers/declaration/FirJsPackageDirectiveChecker.kt | 3 ++- .../diagnostics/testsWithJsStdLib/name/illegalPackageName.kt | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsPackageDirectiveChecker.kt b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsPackageDirectiveChecker.kt index 783f682e864..11598e0b826 100644 --- a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsPackageDirectiveChecker.kt +++ b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsPackageDirectiveChecker.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.analysis.forEachChildOfType import org.jetbrains.kotlin.fir.analysis.js.checkers.sanitizeName import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.packageFqName +import org.jetbrains.kotlin.psi.KtPsiUtil import org.jetbrains.kotlin.text object FirJsPackageDirectiveChecker: FirFileChecker(MppCheckerKind.Common) { @@ -26,7 +27,7 @@ object FirJsPackageDirectiveChecker: FirFileChecker(MppCheckerKind.Common) { if (context.languageVersionSettings.supportsFeature(LanguageFeature.JsAllowInvalidCharsIdentifiersEscaping)) return declaration.packageDirective.source?.forEachChildOfType(setOf(KtNodeTypes.REFERENCE_EXPRESSION)) { - val name = it.text.toString() + val name = KtPsiUtil.unquoteIdentifier(it.text.toString()) if (sanitizeName(name) != name) { reporter.reportOn( it, diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/name/illegalPackageName.kt b/compiler/testData/diagnostics/testsWithJsStdLib/name/illegalPackageName.kt index ecc5f2c69b1..dc16f45c74b 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/name/illegalPackageName.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/name/illegalPackageName.kt @@ -23,3 +23,6 @@ class Dash // FILE: question.kt package `?` class Question + +// FILE: backticks.kt +package com.spacesandtabs.`foo`