diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt index 40995fa0bad..ae635c771fc 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt @@ -1146,7 +1146,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { parameter, Collection>>("compatibility") } - val ACTUAL_WITHOUT_EXPECT by error { + val ACTUAL_WITHOUT_EXPECT by error(PositioningStrategy.DECLARATION_NAME_ONLY) { parameter("declaration") parameter, Collection>>("compatibility") } diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/RegularDiagnosticData.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/RegularDiagnosticData.kt index d79b74aef84..3d5fe07773b 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/RegularDiagnosticData.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/RegularDiagnosticData.kt @@ -45,6 +45,7 @@ enum class PositioningStrategy(private val strategy: String? = null) { VAL_OR_VAR_NODE, SECONDARY_CONSTRUCTOR_DELEGATION_CALL, DECLARATION_NAME, + DECLARATION_NAME_ONLY, DECLARATION_SIGNATURE, DECLARATION_SIGNATURE_OR_DEFAULT, VISIBILITY_MODIFIER, diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt index b4393562c8e..be2a200bdec 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt @@ -616,7 +616,7 @@ object FirErrors { val ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUE by error1>() val EXPECTED_FUNCTION_SOURCE_WITH_DEFAULT_ARGUMENTS_NOT_FOUND by error0() val NO_ACTUAL_FOR_EXPECT by error3, FirModuleData, Map>, Collection>>>(SourceElementPositioningStrategies.INCOMPATIBLE_DECLARATION) - val ACTUAL_WITHOUT_EXPECT by error2, Map>, Collection>>>() + val ACTUAL_WITHOUT_EXPECT by error2, Map>, Collection>>>(SourceElementPositioningStrategies.DECLARATION_NAME_ONLY) val AMBIGUOUS_ACTUALS by error2, Collection>>(SourceElementPositioningStrategies.INCOMPATIBLE_DECLARATION) val AMBIGUOUS_EXPECTS by error2, Collection>(SourceElementPositioningStrategies.INCOMPATIBLE_DECLARATION) val NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS by error2, List, Map>, Collection>>>>>(SourceElementPositioningStrategies.ACTUAL_DECLARATION_NAME) 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 67dbe92b0a7..e61842b03dc 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 @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.diagnostics import com.intellij.lang.LighterASTNode import com.intellij.openapi.util.Ref import com.intellij.openapi.util.TextRange -import com.intellij.psi.PsiElement import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.TokenSet import com.intellij.util.diff.FlyweightCapableTreeStructure @@ -18,7 +17,6 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens.* import org.jetbrains.kotlin.psi.KtParameter.VAL_VAR_TOKEN_SET -import org.jetbrains.kotlin.psi.psiUtil.allChildren import org.jetbrains.kotlin.psi.stubs.elements.KtConstantExpressionElementType import org.jetbrains.kotlin.psi.stubs.elements.KtStringTemplateExpressionElementType import org.jetbrains.kotlin.psi.stubs.elements.KtTokenSets @@ -189,7 +187,7 @@ object LightTreePositioningStrategies { } } - val DECLARATION_NAME: LightTreePositioningStrategy = object : LightTreePositioningStrategy() { + private open class BaseDeclarationNameStrategy : LightTreePositioningStrategy() { override fun mark( node: LighterASTNode, startOffset: Int, @@ -198,15 +196,7 @@ object LightTreePositioningStrategies { ): List { val nameIdentifier = tree.nameIdentifier(node) if (nameIdentifier != null) { - if (node.tokenType == KtNodeTypes.CLASS || node.tokenType == KtNodeTypes.OBJECT_DECLARATION) { - val startElement = - tree.modifierList(node)?.let { modifierList -> tree.findChildByType(modifierList, KtTokens.ENUM_KEYWORD) } - ?: tree.findChildByType(node, TokenSet.create(KtTokens.CLASS_KEYWORD, KtTokens.OBJECT_KEYWORD)) - ?: node - - return markRange(startElement, nameIdentifier, startOffset, endOffset, tree, node) - } - return markElement(nameIdentifier, startOffset, endOffset, tree, node) + return markNameIdentifier(nameIdentifier, startOffset, endOffset, tree, node) } if (node.tokenType == KtNodeTypes.FUN) { return DECLARATION_SIGNATURE.mark(node, startOffset, endOffset, tree) @@ -214,6 +204,36 @@ object LightTreePositioningStrategies { return DEFAULT.mark(node, startOffset, endOffset, tree) } + protected open fun markNameIdentifier( + nameIdentifier: LighterASTNode, + startOffset: Int, + endOffset: Int, + tree: FlyweightCapableTreeStructure, + node: LighterASTNode, + ): List { + return markElement(nameIdentifier, startOffset, endOffset, tree, node) + } + } + + val DECLARATION_NAME: LightTreePositioningStrategy = object : BaseDeclarationNameStrategy() { + override fun markNameIdentifier( + nameIdentifier: LighterASTNode, + startOffset: Int, + endOffset: Int, + tree: FlyweightCapableTreeStructure, + node: LighterASTNode, + ): List { + if (node.tokenType == KtNodeTypes.CLASS || node.tokenType == KtNodeTypes.OBJECT_DECLARATION) { + val startElement = + tree.modifierList(node)?.let { modifierList -> tree.findChildByType(modifierList, KtTokens.ENUM_KEYWORD) } + ?: tree.findChildByType(node, TokenSet.create(KtTokens.CLASS_KEYWORD, KtTokens.OBJECT_KEYWORD)) + ?: node + + return markRange(startElement, nameIdentifier, startOffset, endOffset, tree, node) + } + return markElement(nameIdentifier, startOffset, endOffset, tree, node) + } + override fun isValid(node: LighterASTNode, tree: FlyweightCapableTreeStructure): Boolean { //in FE 1.0 this is part of DeclarationHeader abstract strategy if (node.tokenType != KtNodeTypes.OBJECT_DECLARATION @@ -229,6 +249,8 @@ object LightTreePositioningStrategies { } } + val DECLARATION_NAME_ONLY: LightTreePositioningStrategy = BaseDeclarationNameStrategy() + val ACTUAL_DECLARATION_NAME: LightTreePositioningStrategy = object : LightTreePositioningStrategy() { override fun mark( node: LighterASTNode, 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 3949ea36d53..91cbee61f7a 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 @@ -161,6 +161,20 @@ object PositioningStrategies { } } + @JvmField + val DECLARATION_NAME_ONLY: PositioningStrategy = object : DeclarationHeader() { + override fun mark(element: KtNamedDeclaration): List { + val nameIdentifier = element.nameIdentifier + if (nameIdentifier != null) { + return markElement(nameIdentifier) + } + if (element is KtNamedFunction) { + return DECLARATION_SIGNATURE.mark(element) + } + return DEFAULT.mark(element) + } + } + @JvmField val DECLARATION_SIGNATURE: PositioningStrategy = object : DeclarationHeader() { override fun mark(element: KtDeclaration): 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 5d11251c33c..87e8f4194de 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 @@ -43,6 +43,11 @@ object SourceElementPositioningStrategies { PositioningStrategies.DECLARATION_NAME ) + val DECLARATION_NAME_ONLY = SourceElementPositioningStrategy( + LightTreePositioningStrategies.DECLARATION_NAME_ONLY, + PositioningStrategies.DECLARATION_NAME_ONLY + ) + val DECLARATION_SIGNATURE = SourceElementPositioningStrategy( LightTreePositioningStrategies.DECLARATION_SIGNATURE, PositioningStrategies.DECLARATION_SIGNATURE diff --git a/compiler/testData/diagnostics/tests/IncDecOperatorsInExpectClass.fir.kt b/compiler/testData/diagnostics/tests/IncDecOperatorsInExpectClass.fir.kt index b5b055f8731..05a0cd07fa5 100644 --- a/compiler/testData/diagnostics/tests/IncDecOperatorsInExpectClass.fir.kt +++ b/compiler/testData/diagnostics/tests/IncDecOperatorsInExpectClass.fir.kt @@ -10,4 +10,4 @@ expect class Counter { operator fun dec(): Counter } -actual typealias Counter = Int +actual typealias Counter = Int diff --git a/compiler/testData/diagnostics/tests/multiplatform/expectInterfaceApplicability.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/expectInterfaceApplicability.fir.kt index b43742bdc00..e23d7371a4a 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/expectInterfaceApplicability.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/expectInterfaceApplicability.fir.kt @@ -15,10 +15,10 @@ // FILE: jvm.kt actual interface My { actual fun openFunPositive() = Unit - actual fun openFunNegative() + actual fun openFunNegative() actual fun abstractFun() actual val openValPositive: Int get() = 0 - actual val openValNegative: Int + actual val openValNegative: Int actual val abstractVal: Int } diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/actualMethodInExpectClass.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/actualMethodInExpectClass.fir.kt index 933c0c17701..7b39694ab86 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/actualMethodInExpectClass.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/actualMethodInExpectClass.fir.kt @@ -2,7 +2,7 @@ // FILE: common.kt expect class Foo { - actual fun bar() + actual fun bar() } // MODULE: m1-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithStrongIncompatibilities.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithStrongIncompatibilities.fir.kt index 98dd465a6bf..1a91402aeeb 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithStrongIncompatibilities.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithStrongIncompatibilities.fir.kt @@ -22,7 +22,7 @@ fun foo1(x: String) {} fun foo2(x: Int, y: Int) {} fun foo2(x: String) {} -actual fun foo3(): String = "" +actual fun foo3(): String = "" fun foo4(x: Int): String = "" actual class NoArgConstructor { diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithWeakIncompatibilities.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithWeakIncompatibilities.fir.kt index e3c19e4a891..c632c74dc2c 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithWeakIncompatibilities.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithWeakIncompatibilities.fir.kt @@ -16,12 +16,12 @@ expect open class Foo3 // FILE: jvm.kt interface Foo1 -actual interface Foo2 +actual interface Foo2 -actual var s: String = "value" +actual var s: String = "value" fun foo2(): Int = 0 -actual class Foo3 +actual class Foo3 class Foo3 diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectFunInterface.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectFunInterface.fir.kt index 803ad895112..9275513342c 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectFunInterface.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/expectFunInterface.fir.kt @@ -42,9 +42,9 @@ actual fun interface F1 { actual fun run() } -actual interface F2 { +actual interface F2 { actual fun run() -} +} actual typealias F3 = java.lang.Runnable @@ -62,6 +62,6 @@ interface F6Typealias { fun run() } -actual typealias F6 = F6Typealias +actual typealias F6 = F6Typealias -actual typealias F7 = NotSam +actual typealias F7 = NotSam diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/morePermissiveVisibilityOnActual.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/morePermissiveVisibilityOnActual.fir.kt index 533880d54aa..3da9629a534 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/morePermissiveVisibilityOnActual.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/morePermissiveVisibilityOnActual.fir.kt @@ -30,9 +30,9 @@ actual open class Container { actual fun protectedFun1() {} // OK: protected -> public actual protected fun protectedFun2() {} // OK: protected -> protected - actual internal fun protectedFun3() {} // BAD: protected -> internal - actual protected fun internalFun3() {} // BAD: internal -> protected + actual internal fun protectedFun3() {} // BAD: protected -> internal + actual protected fun internalFun3() {} // BAD: internal -> protected - actual open fun openInternalFun() {} // BAD: internal+open -> public - actual internal fun openPublicFun() {} // BAD: open+public -> internal + actual open fun openInternalFun() {} // BAD: internal+open -> public + actual internal fun openPublicFun() {} // BAD: open+public -> internal } diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt index 1d82857c7a1..9e3692862e9 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt @@ -13,7 +13,7 @@ expect class Foo : I, C, J // FILE: jvm.kt actual class Foo : I, C(), J -actual class Bar +actual class Bar // MODULE: m3-js()()(m1-common) // FILE: js.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt-55570.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt-55570.fir.kt deleted file mode 100644 index ed0a8d34e14..00000000000 --- a/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt-55570.fir.kt +++ /dev/null @@ -1,5 +0,0 @@ -// MODULE: common -// TARGET_PLATFORM: Common - -// MODULE: main()()(common) -actual class A diff --git a/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt-55570.kt b/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt-55570.kt index 5e53ddc9b04..47b5fd817ee 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt-55570.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt-55570.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // MODULE: common // TARGET_PLATFORM: Common diff --git a/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt57320.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt57320.fir.kt index cddb7c32c9e..fa6959310e5 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt57320.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/hmpp/kt57320.fir.kt @@ -34,7 +34,7 @@ interface KotlinXStringDemoInterface { // FILE: StringDemoInterface.kt actual typealias StringDemoInterface = KotlinXStringDemoInterface -; The following declaration is incompatible: expect fun StringDemoInterface.plusK(): String")!>actual fun StringDemoInterface.plusK() = StringValue(value).plus("K").value +actual fun StringDemoInterface.; The following declaration is incompatible: expect fun StringDemoInterface.plusK(): String")!>plusK() = StringValue(value).plus("K").value // FILE: main.kt class StringDemo(override val value: String) : StringDemoInterface diff --git a/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModule.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModule.fir.kt index 2835fe5ef79..4e8982eb471 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModule.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModule.fir.kt @@ -8,19 +8,19 @@ class Nested inner class Inner } -actual class CommonClass { - actual fun memberFun() {} - actual val memberProp: Int = 42 - actual class Nested - actual inner class Inner -} +actual class CommonClass { + actual fun memberFun() {} + actual val memberProp: Int = 42 + actual class Nested + actual inner class Inner +} expect fun commonFun() -actual fun commonFun() {} +actual fun commonFun() {} expect val commonProperty: String -actual val commonProperty: String - get() = "hello" +actual val commonProperty: String + get() = "hello" // MODULE: intermediate()()(common) // TARGET_PLATFORM: Common @@ -31,19 +31,19 @@ expect class IntermediateClass { class Nested inner class Inner } -actual class IntermediateClass { - actual fun memberFun() {} - actual val memberProp: Int = 42 - actual class Nested - actual inner class Inner -} +actual class IntermediateClass { + actual fun memberFun() {} + actual val memberProp: Int = 42 + actual class Nested + actual inner class Inner +} expect fun intermediateFun() -actual fun intermediateFun() {} +actual fun intermediateFun() {} expect val intermediateProperty: String -actual val intermediateProperty: String - get() = "hello" +actual val intermediateProperty: String + get() = "hello" // MODULE: main()()(intermediate) @@ -53,16 +53,16 @@ expect class PlatformClass { class Nested inner class Inner } -actual class PlatformClass { - actual fun memberFun() {} - actual val memberProp: Int = 42 - actual class Nested - actual inner class Inner -} +actual class PlatformClass { + actual fun memberFun() {} + actual val memberProp: Int = 42 + actual class Nested + actual inner class Inner +} expect fun platformFun() -actual fun platformFun() {} +actual fun platformFun() {} expect val platformProperty: String -actual val platformProperty: String - get() = "hello" +actual val platformProperty: String + get() = "hello" diff --git a/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModuleIncompatibilities.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModuleIncompatibilities.fir.kt index 6a90ee7255a..12387fd63d8 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModuleIncompatibilities.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/hmpp/multiplatformCompositeAnalysis/expectAndActualInTheSameModuleIncompatibilities.fir.kt @@ -5,7 +5,7 @@ expect fun parameterCount() fun parameterCount(p: String) {} expect fun parameterCount2() -actual fun parameterCount2(p: String) {} +actual fun parameterCount2(p: String) {} expect fun callableKind(): Int val callableKind: Int = 1 @@ -16,9 +16,9 @@ fun typeParameterCount() {} expect enum class EnumEntries { ONE, TWO; } -actual enum class EnumEntries { +actual enum class EnumEntries { ONE; -} +} expect fun vararg(bar: Int) fun vararg(vararg bar: Int) = Unit diff --git a/compiler/testData/diagnostics/tests/multiplatform/incompatibles.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/incompatibles.fir.kt index 5ff617bf181..6d6e08c907a 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/incompatibles.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/incompatibles.fir.kt @@ -1,12 +1,12 @@ -header impl class First +header impl class First header expect class Second -header actual class Third +header actual class Third -impl expect class Fourth +impl expect class Fourth -impl actual class Fifth +impl actual class Fifth -expect actual class Sixth +expect actual class Sixth diff --git a/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt index 668943dac2b..5464de03ad4 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt @@ -23,6 +23,6 @@ actual inline class Foo1(val x: Int) { actual inline class Foo2(val x: String) actual inline class Foo3 -actual inline class NonInlineExpect(val x: Int) +actual inline class NonInlineExpect(val x: Int) -actual class NonInlineActual actual constructor(actual val x: Int) +actual class NonInlineActual actual constructor(actual val x: Int) diff --git a/compiler/testData/diagnostics/tests/multiplatform/kt54827.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/kt54827.fir.kt index 34818d4ec5b..08f7d34ee43 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/kt54827.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/kt54827.fir.kt @@ -6,6 +6,6 @@ // MODULE: m1-jvm()()(m1-common) // FILE: jvm.kt -actual class SomeClass { +actual class SomeClass { actual fun foo() {} -} +} diff --git a/compiler/testData/diagnostics/tests/multiplatform/modifierApplicability.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/modifierApplicability.fir.kt index b53c29d7e50..a36d2ce82cc 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/modifierApplicability.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/modifierApplicability.fir.kt @@ -23,7 +23,7 @@ fun foo() { // FILE: jvm.kt class Outer actual constructor() { - actual class Nested + actual class Nested actual init {} } diff --git a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/headerAndImplInDIfferentPackages.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/headerAndImplInDIfferentPackages.fir.kt index 3747e4ca148..328ff3551dd 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/headerAndImplInDIfferentPackages.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/headerAndImplInDIfferentPackages.fir.kt @@ -8,10 +8,10 @@ package common // FILE: jvm.kt package jvm -actual fun foo() {} +actual fun foo() {} // MODULE: m3-js()()(m1-common) // FILE: js.kt package js -actual fun foo() {} +actual fun foo() {} diff --git a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implDeclarationWithoutBody.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implDeclarationWithoutBody.fir.kt deleted file mode 100644 index c8f4474ef75..00000000000 --- a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implDeclarationWithoutBody.fir.kt +++ /dev/null @@ -1,11 +0,0 @@ -// MODULE: m1-common -// FILE: common.kt - -expect fun foo() - -// MODULE: m2-jvm()()(m1-common) -// FILE: jvm.kt - -actual fun foo() - -actual fun bar() diff --git a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implDeclarationWithoutBody.kt b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implDeclarationWithoutBody.kt index bf33fd9d376..d28aac311f9 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implDeclarationWithoutBody.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implDeclarationWithoutBody.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // MODULE: m1-common // FILE: common.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implWithoutHeader.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implWithoutHeader.fir.kt deleted file mode 100644 index 056778a1633..00000000000 --- a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implWithoutHeader.fir.kt +++ /dev/null @@ -1,4 +0,0 @@ -// MODULE: m1-jvm -// FILE: jvm.kt - -actual fun foo() { } diff --git a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implWithoutHeader.kt b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implWithoutHeader.kt index 040b35189fe..a47bd1be4f0 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implWithoutHeader.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/implWithoutHeader.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // MODULE: m1-jvm // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/inlineFun.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/inlineFun.fir.kt index b2975eb0e8c..75344e5b7f5 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/inlineFun.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/inlineFun.fir.kt @@ -7,7 +7,7 @@ expect fun nonInlineFun() // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt -actual fun inlineFun() { } +actual fun inlineFun() { } actual fun nonInlineFun() { } // MODULE: m3-js()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/valueParameterModifiers.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/valueParameterModifiers.fir.kt index 0ccc96ccf1d..b56d1eae10c 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/valueParameterModifiers.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/topLevelFun/valueParameterModifiers.fir.kt @@ -17,10 +17,10 @@ expect inline fun f6(crossinline s: () -> String) // FILE: jvm.kt actual inline fun f1(noinline s: () -> String) {} -actual inline fun f2(noinline s: () -> String) {} +actual inline fun f2(noinline s: () -> String) {} actual inline fun f3(s: () -> String) {} actual inline fun f4(crossinline s: () -> String) {} -actual inline fun f5(crossinline s: () -> String) {} +actual inline fun f5(crossinline s: () -> String) {} actual inline fun f6(s: () -> String) {} -actual fun f7(vararg x: Any) {} -actual fun f8(x: Any) {} +actual fun f7(vararg x: Any) {} +actual fun f8(x: Any) {} diff --git a/compiler/testData/diagnostics/tests/multiplatform/varSetterVisibility.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/varSetterVisibility.fir.kt index 99e67edb724..4215d9fbf9d 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/varSetterVisibility.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/varSetterVisibility.fir.kt @@ -18,17 +18,17 @@ expect var v2: Boolean // MODULE: m1-jvm()()(m1-common) // FILE: jvm.kt -actual var v1: Boolean = false - private set +actual var v1: Boolean = false + private set actual var v2: Boolean = false -actual var v3: Boolean = false - private set +actual var v3: Boolean = false + private set actual open class C { - actual var foo: Boolean = false - protected set + actual var foo: Boolean = false + protected set } open class C2Typealias {