diff --git a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsStableName.kt b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsStableName.kt index cad235a09fd..898ca690ff2 100644 --- a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsStableName.kt +++ b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsStableName.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.analysis.js.checkers import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.analysis.checkers.getContainingClassSymbol +import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* @@ -47,6 +48,10 @@ internal data class FirJsStableName( when (symbol) { is FirConstructorSymbol -> return null is FirPropertyAccessorSymbol -> return null + // Skip type aliases since they cannot be external, cannot be exported to JavaScript, and cannot be marked with @JsName. + // Furthermore, in the generated JavaScript code, all type alias declarations are removed, + // and their usages are replaced with the aliased types. + is FirTypeAliasSymbol -> return null } val hasStableNameInJavaScript = when { diff --git a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashFileTopLevelDeclarationsChecker.kt b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashFileTopLevelDeclarationsChecker.kt index 1543cd5f815..f9e0880657f 100644 --- a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashFileTopLevelDeclarationsChecker.kt +++ b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashFileTopLevelDeclarationsChecker.kt @@ -34,12 +34,6 @@ object FirJsNameClashFileTopLevelDeclarationsChecker : FirFileChecker() { override fun check(declaration: FirFile, context: CheckerContext, reporter: DiagnosticReporter) { val topLevelDeclarationsWithStableName = mutableMapOf>() for (topLevelDeclaration in declaration.declarations) { - if (topLevelDeclaration is FirTypeAlias) { - // Skip type aliases since they cannot be external, cannot be exported to JavaScript, and cannot be marked with @JsName. - // Furthermore, in the generated JavaScript code, all type alias declarations are removed, - // and their usages are replaced with the aliased types. - continue - } topLevelDeclarationsWithStableName.addStableName(topLevelDeclaration.symbol, context) if (topLevelDeclaration is FirClass) { for (classConstructor in topLevelDeclaration.constructors(context.session)) {