[LL] Fix platform detection for configuration of checkers

KT-60318
This commit is contained in:
Pavel Kirpichenkov
2023-07-13 18:17:40 +03:00
committed by teamcity
parent b316aa7d1d
commit 0eef12ea19
@@ -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.jvm.checkers.JvmTypeCheckers
import org.jetbrains.kotlin.fir.analysis.native.checkers.NativeDeclarationCheckers import org.jetbrains.kotlin.fir.analysis.native.checkers.NativeDeclarationCheckers
import org.jetbrains.kotlin.fir.extensions.extensionService import org.jetbrains.kotlin.fir.extensions.extensionService
import org.jetbrains.kotlin.platform.SimplePlatform import org.jetbrains.kotlin.platform.isJs
import org.jetbrains.kotlin.platform.jvm.JvmPlatform import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.JsPlatform import org.jetbrains.kotlin.platform.jvm.isJvm
import org.jetbrains.kotlin.platform.konan.NativePlatform import org.jetbrains.kotlin.platform.konan.isNative
internal abstract class AbstractLLFirDiagnosticsCollector( internal abstract class AbstractLLFirDiagnosticsCollector(
session: FirSession, session: FirSession,
@@ -51,7 +51,7 @@ private object CheckersFactory {
useExtendedCheckers: Boolean useExtendedCheckers: Boolean
): DiagnosticCollectorComponents { ): DiagnosticCollectorComponents {
val module = session.llFirModuleData.ktModule val module = session.llFirModuleData.ktModule
val platform = module.platform.componentPlatforms.first() val platform = module.platform
val extensionCheckers = session.extensionService.additionalCheckers val extensionCheckers = session.extensionService.additionalCheckers
val declarationCheckers = createDeclarationCheckers(useExtendedCheckers, platform, extensionCheckers) val declarationCheckers = createDeclarationCheckers(useExtendedCheckers, platform, extensionCheckers)
val expressionCheckers = createExpressionCheckers(useExtendedCheckers, platform, extensionCheckers) val expressionCheckers = createExpressionCheckers(useExtendedCheckers, platform, extensionCheckers)
@@ -72,7 +72,7 @@ private object CheckersFactory {
private fun createDeclarationCheckers( private fun createDeclarationCheckers(
useExtendedCheckers: Boolean, useExtendedCheckers: Boolean,
platform: SimplePlatform, platform: TargetPlatform,
extensionCheckers: List<FirAdditionalCheckersExtension> extensionCheckers: List<FirAdditionalCheckersExtension>
): DeclarationCheckers { ): DeclarationCheckers {
return if (useExtendedCheckers) { return if (useExtendedCheckers) {
@@ -80,10 +80,10 @@ private object CheckersFactory {
} else { } else {
createDeclarationCheckers { createDeclarationCheckers {
add(CommonDeclarationCheckers) add(CommonDeclarationCheckers)
when (platform) { when {
is JvmPlatform -> add(JvmDeclarationCheckers) platform.isJvm() -> add(JvmDeclarationCheckers)
is JsPlatform -> add(JsDeclarationCheckers) platform.isJs() -> add(JsDeclarationCheckers)
is NativePlatform -> add(NativeDeclarationCheckers) platform.isNative() -> add(NativeDeclarationCheckers)
else -> {} else -> {}
} }
addAll(extensionCheckers.map { it.declarationCheckers }) addAll(extensionCheckers.map { it.declarationCheckers })
@@ -93,7 +93,7 @@ private object CheckersFactory {
private fun createExpressionCheckers( private fun createExpressionCheckers(
useExtendedCheckers: Boolean, useExtendedCheckers: Boolean,
platform: SimplePlatform, platform: TargetPlatform,
extensionCheckers: List<FirAdditionalCheckersExtension> extensionCheckers: List<FirAdditionalCheckersExtension>
): ExpressionCheckers { ): ExpressionCheckers {
return if (useExtendedCheckers) { return if (useExtendedCheckers) {
@@ -101,9 +101,9 @@ private object CheckersFactory {
} else { } else {
createExpressionCheckers { createExpressionCheckers {
add(CommonExpressionCheckers) add(CommonExpressionCheckers)
when (platform) { when {
is JvmPlatform -> add(JvmExpressionCheckers) platform.isJvm() -> add(JvmExpressionCheckers)
is JsPlatform -> add(JsExpressionCheckers) platform.isJs() -> add(JsExpressionCheckers)
else -> { else -> {
} }
} }
@@ -112,12 +112,16 @@ private object CheckersFactory {
} }
} }
private fun createTypeCheckers(useExtendedCheckers: Boolean, platform: SimplePlatform, extensionCheckers: List<FirAdditionalCheckersExtension>): TypeCheckers { private fun createTypeCheckers(
useExtendedCheckers: Boolean,
platform: TargetPlatform,
extensionCheckers: List<FirAdditionalCheckersExtension>,
): TypeCheckers {
if (useExtendedCheckers) return ExtendedTypeCheckers if (useExtendedCheckers) return ExtendedTypeCheckers
return createTypeCheckers { return createTypeCheckers {
add(CommonTypeCheckers) add(CommonTypeCheckers)
when (platform) { when {
is JvmPlatform -> add(JvmTypeCheckers) platform.isJvm() -> add(JvmTypeCheckers)
else -> {} else -> {}
} }
addAll(extensionCheckers.map { it.typeCheckers }) addAll(extensionCheckers.map { it.typeCheckers })