[AA] render expect/actual modifiers
^KT-66052 fixed
diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/symbolDeclarationRenderer/Fe10IdeNormalAnalysisSourceModuleRendererTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/symbolDeclarationRenderer/Fe10IdeNormalAnalysisSourceModuleRendererTestGenerated.java
index 5a09847..59f51dc 100644
--- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/symbolDeclarationRenderer/Fe10IdeNormalAnalysisSourceModuleRendererTestGenerated.java
+++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/symbolDeclarationRenderer/Fe10IdeNormalAnalysisSourceModuleRendererTestGenerated.java
@@ -42,6 +42,12 @@
}
@Test
+ @TestMetadata("actualInheritance.kt")
+ public void testActualInheritance() {
+ runTest("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.kt");
+ }
+
+ @Test
public void testAllFilesPresentInRenderDeclaration() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeDependentAnalysisSourceModuleRendererTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeDependentAnalysisSourceModuleRendererTestGenerated.java
index 6d72443..a424820 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeDependentAnalysisSourceModuleRendererTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeDependentAnalysisSourceModuleRendererTestGenerated.java
@@ -42,6 +42,12 @@
}
@Test
+ @TestMetadata("actualInheritance.kt")
+ public void testActualInheritance() {
+ runTest("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.kt");
+ }
+
+ @Test
public void testAllFilesPresentInRenderDeclaration() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeNormalAnalysisSourceModuleRendererTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeNormalAnalysisSourceModuleRendererTestGenerated.java
index 4ca323d..564aad7 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeNormalAnalysisSourceModuleRendererTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirIdeNormalAnalysisSourceModuleRendererTestGenerated.java
@@ -42,6 +42,12 @@
}
@Test
+ @TestMetadata("actualInheritance.kt")
+ public void testActualInheritance() {
+ runTest("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.kt");
+ }
+
+ @Test
public void testAllFilesPresentInRenderDeclaration() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirStandaloneNormalAnalysisSourceModuleRendererTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirStandaloneNormalAnalysisSourceModuleRendererTestGenerated.java
index 540e728..6f5655c 100644
--- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirStandaloneNormalAnalysisSourceModuleRendererTestGenerated.java
+++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/symbolDeclarationRenderer/FirStandaloneNormalAnalysisSourceModuleRendererTestGenerated.java
@@ -42,6 +42,12 @@
}
@Test
+ @TestMetadata("actualInheritance.kt")
+ public void testActualInheritance() {
+ runTest("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.kt");
+ }
+
+ @Test
public void testAllFilesPresentInRenderDeclaration() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KtRendererOtherModifiersProvider.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KtRendererOtherModifiersProvider.kt
index 8b57a8a..d3d4464 100644
--- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KtRendererOtherModifiersProvider.kt
+++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KtRendererOtherModifiersProvider.kt
@@ -7,6 +7,7 @@
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.symbols.*
+import org.jetbrains.kotlin.analysis.api.symbols.markers.KtPossibleMultiplatformSymbol
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.types.Variance
@@ -42,6 +43,11 @@
public object ALL : KtRendererOtherModifiersProvider {
context(KtAnalysisSession)
override fun getOtherModifiers(symbol: KtDeclarationSymbol): List<KtModifierKeywordToken> = buildList {
+ if (symbol is KtPossibleMultiplatformSymbol) {
+ if (symbol.isActual) add(KtTokens.ACTUAL_KEYWORD)
+ if (symbol.isExpect) add(KtTokens.EXPECT_KEYWORD)
+ }
+
if (symbol is KtFunctionSymbol) {
if (symbol.isExternal) add(KtTokens.EXTERNAL_KEYWORD)
if (symbol.isOverride) add(KtTokens.OVERRIDE_KEYWORD)
diff --git a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_object.txt b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_object.txt
index 00d2a58..21c876f 100644
--- a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_object.txt
+++ b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_object.txt
@@ -1,2 +1,2 @@
expected symbols:
-Common.kt : object Platform
+Common.kt : expect object Platform
diff --git a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_primaryConstructor.txt b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_primaryConstructor.txt
index 30279a4..6fa3695 100644
--- a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_primaryConstructor.txt
+++ b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/actual_primaryConstructor.txt
@@ -1,2 +1,2 @@
expected symbols:
-Common.kt : constructor(n: kotlin.Int)
+Common.kt : expect constructor(n: kotlin.Int)
diff --git a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/matchingButIncompatibleExpect.txt b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/matchingButIncompatibleExpect.txt
index bf80a6d..54d2928 100644
--- a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/matchingButIncompatibleExpect.txt
+++ b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/matchingButIncompatibleExpect.txt
@@ -1,2 +1,2 @@
expected symbols:
-Common.kt : fun foo()
+Common.kt : expect fun foo()
diff --git a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/multipleExpects.txt b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/multipleExpects.txt
index bd7843e6c..6fabea6 100644
--- a/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/multipleExpects.txt
+++ b/analysis/analysis-api/testData/components/multiplatformInfoProvider/expectForActual/multipleExpects.txt
@@ -1,3 +1,3 @@
expected symbols:
-Common1.kt : fun foo()
-Common2.kt : fun foo()
+Common1.kt : expect fun foo()
+Common2.kt : expect fun foo()
diff --git a/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.kt b/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.kt
new file mode 100644
index 0000000..eb01f1c
--- /dev/null
+++ b/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.kt
@@ -0,0 +1,13 @@
+expect abstract class A {
+ abstract fun foo()
+}
+
+abstract actual class A {
+ abstract actual fun foo()
+}
+
+class Bar: A() {
+ override fun foo() {
+ TODO("Not yet implemented")
+ }
+}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.rendered b/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.rendered
new file mode 100644
index 0000000..791faa6
--- /dev/null
+++ b/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/actualInheritance.rendered
@@ -0,0 +1,11 @@
+expect abstract class A {
+ expect abstract fun foo()
+}
+
+actual abstract class A {
+ actual abstract fun foo()
+}
+
+class Bar : A() {
+ override fun foo()
+}
diff --git a/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/expectActual.rendered b/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/expectActual.rendered
index 7359050..ccbc09f 100644
--- a/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/expectActual.rendered
+++ b/analysis/analysis-api/testData/components/symbolDeclarationRenderer/renderDeclaration/expectActual.rendered
@@ -1,12 +1,12 @@
-class MyClass
+expect class MyClass
-fun foo(): String
+expect fun foo(): String
-val x: Int
+expect val x: Int
-class MyClass
+actual class MyClass
-fun foo(): String
+actual fun foo(): String
-val x: Int
+actual val x: Int
diff --git a/analysis/analysis-api/testData/symbols/multiModuleSymbolByPsi/expectActual.pretty.txt b/analysis/analysis-api/testData/symbols/multiModuleSymbolByPsi/expectActual.pretty.txt
index 3345c5c..42e9e65 100644
--- a/analysis/analysis-api/testData/symbols/multiModuleSymbolByPsi/expectActual.pretty.txt
+++ b/analysis/analysis-api/testData/symbols/multiModuleSymbolByPsi/expectActual.pretty.txt
@@ -1,49 +1,50 @@
// FILE: Common.kt
-object A
+expect object A
-class B(s: kotlin.String)
+expect class Bexpect constructor(s: kotlin.String)
- constructor(s: kotlin.String)
+ expect constructor(s: kotlin.String)
- constructor(n: kotlin.Int)
+ expect constructor(n: kotlin.Int)
- class Nested
+ expect class Nested
- fun bar()
+ expect fun bar()
- val n: kotlin.Int
+ expect val n: kotlin.Int
-class C
+expect class C
- class Nested
+ expect class Nested
-fun baz()
+expect fun baz()
-var m: kotlin.Int
+expect var m: kotlin.Int
// FILE: JvmAndroid.kt
-object A
+actual object A
-class B(s: kotlin.String)
+actual class Bactual constructor(s: kotlin.String)
- constructor(s: kotlin.String)
+ actual constructor(s: kotlin.String)
- constructor(n: kotlin.Int)
+ actual constructor(n: kotlin.Int)
- class Nested
+ actual class Nested
- fun bar()
+ actual fun bar()
- val n: kotlin.Int
+ actual val n: kotlin.Int
-typealias C = sample.D
+actual typealias C = sample.D
class D
class Nested
-fun baz()
+actual fun baz()
-var m: kotlin.Int
+actual var m: kotlin.Int
+