From 16ed06d4e9e9adedb438511ccfad66513008c99b Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Wed, 10 May 2023 23:39:46 +0200 Subject: [PATCH] [FIR] Add EXPECT_ACTUAL_MODIFIER positioning strategy --- .../kotlin/diagnostics/LightTreePositioningStrategies.kt | 3 +++ .../jetbrains/kotlin/diagnostics/PositioningStrategies.kt | 4 ++++ .../kotlin/diagnostics/SourceElementPositioningStrategies.kt | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/LightTreePositioningStrategies.kt b/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/LightTreePositioningStrategies.kt index 1193bd1954a..504c905d714 100644 --- a/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/LightTreePositioningStrategies.kt +++ b/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/LightTreePositioningStrategies.kt @@ -458,6 +458,9 @@ object LightTreePositioningStrategies { val EXTERNAL_MODIFIER: LightTreePositioningStrategy = ModifierSetBasedLightTreePositioningStrategy(KtTokens.EXTERNAL_KEYWORD) + val EXPECT_ACTUAL_MODIFIER: LightTreePositioningStrategy = + ModifierSetBasedLightTreePositioningStrategy(KtTokens.EXPECT_KEYWORD, KtTokens.ACTUAL_KEYWORD) + val OBJECT_KEYWORD: LightTreePositioningStrategy = keywordStrategy { objectKeyword(it) } val FIELD_KEYWORD: LightTreePositioningStrategy = keywordStrategy { fieldKeyword(it) } diff --git a/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt b/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt index b398f574af0..23a6c556e25 100644 --- a/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt +++ b/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt @@ -313,6 +313,10 @@ object PositioningStrategies { val EXTERNAL_MODIFIER: PositioningStrategy = ModifierSetBasedPositioningStrategy(KtTokens.EXTERNAL_KEYWORD) + @JvmField + val EXPECT_ACTUAL_MODIFIER: PositioningStrategy = + ModifierSetBasedPositioningStrategy(KtTokens.EXPECT_KEYWORD, KtTokens.ACTUAL_KEYWORD) + @JvmField val OBJECT_KEYWORD: PositioningStrategy = object : PositioningStrategy() { override fun mark(element: KtObjectDeclaration): List { diff --git a/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/SourceElementPositioningStrategies.kt b/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/SourceElementPositioningStrategies.kt index 3d74c4579f3..5d11251c33c 100644 --- a/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/SourceElementPositioningStrategies.kt +++ b/compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/SourceElementPositioningStrategies.kt @@ -123,6 +123,11 @@ object SourceElementPositioningStrategies { PositioningStrategies.DATA_MODIFIER ) + val EXPECT_ACTUAL_MODIFIER = SourceElementPositioningStrategy( + LightTreePositioningStrategies.EXPECT_ACTUAL_MODIFIER, + PositioningStrategies.EXPECT_ACTUAL_MODIFIER + ) + val OBJECT_KEYWORD = SourceElementPositioningStrategy( LightTreePositioningStrategies.OBJECT_KEYWORD, PositioningStrategies.OBJECT_KEYWORD