[FIR] Fix disappeared INVALID_CHARACTERS_NATIVE_ERROR
https://youtrack.jetbrains.com/issue/KT-60003/K2-Disappeared-INVALIDCHARACTERSNATIVEERROR ^KT-60003 Fixed Merge-request: KT-MR-12686 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
07c4cd231c
commit
8395018de8
+1
-1
@@ -37,7 +37,7 @@ object FirNativeIdentifierChecker : FirBasicDeclarationChecker() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkNameAndReport(name: Name, source: KtSourceElement?, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
internal fun checkNameAndReport(name: Name, source: KtSourceElement?, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
if (source != null && source.kind !is KtFakeSourceElementKind && !name.isSpecial) {
|
||||
val text = name.asString()
|
||||
val message = when {
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.analysis.native.checkers
|
||||
|
||||
import org.jetbrains.kotlin.KtNodeTypes.REFERENCE_EXPRESSION
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirFileChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.forEachChildOfType
|
||||
import org.jetbrains.kotlin.fir.analysis.native.checkers.FirNativeIdentifierChecker.checkNameAndReport
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.text
|
||||
|
||||
object FirNativePackageDirectiveChecker : FirFileChecker() {
|
||||
override fun check(declaration: FirFile, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
declaration.packageDirective.source?.forEachChildOfType(setOf(REFERENCE_EXPRESSION)) {
|
||||
checkNameAndReport(
|
||||
Name.identifier(it.text.toString()),
|
||||
it,
|
||||
context,
|
||||
reporter
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
@@ -33,4 +33,9 @@ object NativeDeclarationCheckers : DeclarationCheckers() {
|
||||
FirNativeObjCRefinementAnnotationChecker,
|
||||
FirNativeHiddenFromObjCInheritanceChecker,
|
||||
)
|
||||
|
||||
override val fileCheckers: Set<FirFileChecker>
|
||||
get() = setOf(
|
||||
FirNativePackageDirectiveChecker,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user