From 0eef12ea1949d0e6f3e9e36e4f5d71fdb67790f1 Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Thu, 13 Jul 2023 18:17:40 +0300 Subject: [PATCH] [LL] Fix platform detection for configuration of checkers KT-60318 --- .../AbstractFirIdeDiagnosticsCollector.kt | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/AbstractFirIdeDiagnosticsCollector.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/AbstractFirIdeDiagnosticsCollector.kt index e73ec30bb49..a6eecf29781 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/AbstractFirIdeDiagnosticsCollector.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/AbstractFirIdeDiagnosticsCollector.kt @@ -28,10 +28,10 @@ import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmExpressionCheckers import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmTypeCheckers import org.jetbrains.kotlin.fir.analysis.native.checkers.NativeDeclarationCheckers import org.jetbrains.kotlin.fir.extensions.extensionService -import org.jetbrains.kotlin.platform.SimplePlatform -import org.jetbrains.kotlin.platform.jvm.JvmPlatform -import org.jetbrains.kotlin.platform.JsPlatform -import org.jetbrains.kotlin.platform.konan.NativePlatform +import org.jetbrains.kotlin.platform.isJs +import org.jetbrains.kotlin.platform.TargetPlatform +import org.jetbrains.kotlin.platform.jvm.isJvm +import org.jetbrains.kotlin.platform.konan.isNative internal abstract class AbstractLLFirDiagnosticsCollector( session: FirSession, @@ -51,7 +51,7 @@ private object CheckersFactory { useExtendedCheckers: Boolean ): DiagnosticCollectorComponents { val module = session.llFirModuleData.ktModule - val platform = module.platform.componentPlatforms.first() + val platform = module.platform val extensionCheckers = session.extensionService.additionalCheckers val declarationCheckers = createDeclarationCheckers(useExtendedCheckers, platform, extensionCheckers) val expressionCheckers = createExpressionCheckers(useExtendedCheckers, platform, extensionCheckers) @@ -72,7 +72,7 @@ private object CheckersFactory { private fun createDeclarationCheckers( useExtendedCheckers: Boolean, - platform: SimplePlatform, + platform: TargetPlatform, extensionCheckers: List ): DeclarationCheckers { return if (useExtendedCheckers) { @@ -80,10 +80,10 @@ private object CheckersFactory { } else { createDeclarationCheckers { add(CommonDeclarationCheckers) - when (platform) { - is JvmPlatform -> add(JvmDeclarationCheckers) - is JsPlatform -> add(JsDeclarationCheckers) - is NativePlatform -> add(NativeDeclarationCheckers) + when { + platform.isJvm() -> add(JvmDeclarationCheckers) + platform.isJs() -> add(JsDeclarationCheckers) + platform.isNative() -> add(NativeDeclarationCheckers) else -> {} } addAll(extensionCheckers.map { it.declarationCheckers }) @@ -93,7 +93,7 @@ private object CheckersFactory { private fun createExpressionCheckers( useExtendedCheckers: Boolean, - platform: SimplePlatform, + platform: TargetPlatform, extensionCheckers: List ): ExpressionCheckers { return if (useExtendedCheckers) { @@ -101,9 +101,9 @@ private object CheckersFactory { } else { createExpressionCheckers { add(CommonExpressionCheckers) - when (platform) { - is JvmPlatform -> add(JvmExpressionCheckers) - is JsPlatform -> add(JsExpressionCheckers) + when { + platform.isJvm() -> add(JvmExpressionCheckers) + platform.isJs() -> add(JsExpressionCheckers) else -> { } } @@ -112,12 +112,16 @@ private object CheckersFactory { } } - private fun createTypeCheckers(useExtendedCheckers: Boolean, platform: SimplePlatform, extensionCheckers: List): TypeCheckers { + private fun createTypeCheckers( + useExtendedCheckers: Boolean, + platform: TargetPlatform, + extensionCheckers: List, + ): TypeCheckers { if (useExtendedCheckers) return ExtendedTypeCheckers return createTypeCheckers { add(CommonTypeCheckers) - when (platform) { - is JvmPlatform -> add(JvmTypeCheckers) + when { + platform.isJvm() -> add(JvmTypeCheckers) else -> {} } addAll(extensionCheckers.map { it.typeCheckers })