[LL] Fix platform detection for configuration of checkers
KT-60318
This commit is contained in:
committed by
teamcity
parent
b316aa7d1d
commit
0eef12ea19
+21
-17
@@ -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 })
|
||||||
|
|||||||
Reference in New Issue
Block a user