diff --git a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassConstructor.fir.txt b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassConstructor.fir.txt index df9e3e0d32a..0c647dd61a4 100644 --- a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassConstructor.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassConstructor.fir.txt @@ -1,5 +1,5 @@ FILE: inlineClassConstructor.kt - public final class WithoutConstructor : R|kotlin/Any| { + public final inline class WithoutConstructor : R|kotlin/Any| { public constructor(): R|WithoutConstructor| { super() } diff --git a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.fir.txt index 139580c6a75..7b129707e5c 100644 --- a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.fir.txt @@ -27,7 +27,7 @@ FILE: inlineClassDeclaration.kt } - public final inner class D : R|kotlin/Any| { + public final inner inline class D : R|kotlin/Any| { public constructor(x: R|kotlin/Int|): R|A.D| { super() } @@ -65,7 +65,7 @@ FILE: inlineClassDeclaration.kt public get(): R|kotlin/Int| } - public final class CloneableClass1 : R|kotlin/Cloneable| { + public final inline class CloneableClass1 : R|kotlin/Cloneable| { public constructor(x: R|kotlin/Int|): R|CloneableClass1| { super() } diff --git a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassMembers.fir.txt b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassMembers.fir.txt index bc7b550b6d1..603f1d7c987 100644 --- a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassMembers.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassMembers.fir.txt @@ -1,5 +1,5 @@ FILE: inlineClassMembers.kt - public final class BackingFields : R|kotlin/Any| { + public final inline class BackingFields : R|kotlin/Any| { public constructor(x: R|kotlin/Int|): R|BackingFields| { super() } @@ -82,7 +82,7 @@ FILE: inlineClassMembers.kt } } - public final class WithInner : R|kotlin/Any| { + public final inline class WithInner : R|kotlin/Any| { public constructor(x: R|kotlin/String|): R|WithInner| { super() } diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt index de70a6c828b..b614d7653f1 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt @@ -23,7 +23,7 @@ open class Modifier(var modifiers: Long = ModifierFlag.NONE.value) { setFlag(ModifierFlag.PROPERTY_CONST) setFlag(ModifierFlag.PARAMETER_CONST) } - KtTokens.INLINE_KEYWORD -> { + KtTokens.INLINE_KEYWORD, KtTokens.VALUE_KEYWORD -> { setFlag(if (isInClass) ModifierFlag.CLASS_INLINE else ModifierFlag.FUNCTION_INLINE) } else -> { diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 22d17b5ec29..fac7011f0b3 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -866,7 +866,7 @@ open class RawFirBuilder( isInner = classOrObject.hasModifier(INNER_KEYWORD) isCompanion = (classOrObject as? KtObjectDeclaration)?.isCompanion() == true isData = classOrObject.hasModifier(DATA_KEYWORD) - isInline = classOrObject.hasModifier(INLINE_KEYWORD) + isInline = classOrObject.hasModifier(INLINE_KEYWORD) || classOrObject.hasModifier(VALUE_KEYWORD) isFun = classOrObject.hasModifier(FUN_KEYWORD) isExternal = classOrObject.hasModifier(EXTERNAL_KEYWORD) } diff --git a/compiler/testData/codegen/box/reflection/modifiers/classes.kt b/compiler/testData/codegen/box/reflection/modifiers/classes.kt index 1494391f2e5..4ab22934d8c 100644 --- a/compiler/testData/codegen/box/reflection/modifiers/classes.kt +++ b/compiler/testData/codegen/box/reflection/modifiers/classes.kt @@ -1,5 +1,4 @@ // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // WITH_REFLECT // FILE: box.kt diff --git a/compiler/testData/codegen/box/valueClasses/jvmInline.kt b/compiler/testData/codegen/box/valueClasses/jvmInline.kt index 128e923be78..203f11925f0 100644 --- a/compiler/testData/codegen/box/valueClasses/jvmInline.kt +++ b/compiler/testData/codegen/box/valueClasses/jvmInline.kt @@ -1,7 +1,6 @@ // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME // IGNORE_BACKEND: WASM -// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND: ANDROID // IGNORE_BACKEND: NATIVE diff --git a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt index d01623a1a38..19dc7929946 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt @@ -14,11 +14,11 @@ value class Bar(val y: String) fun test(f1: Foo, f2: Foo, b1: Bar, fn1: Foo?, fn2: Foo?) { val a1 = f1 === f2 || f1 !== f2 val a2 = f1 === f1 - val a3 = f1 === b1 || f1 !== b1 + val a3 = f1 === b1 || f1 !== b1 val c1 = fn1 === fn2 || fn1 !== fn2 val c2 = f1 === fn1 || f1 !== fn1 - val c3 = b1 === fn1 || b1 !== fn1 + val c3 = b1 === fn1 || b1 !== fn1 val any = Any() diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.fir.kt deleted file mode 100644 index 5445d5d9c4f..00000000000 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.fir.kt +++ /dev/null @@ -1,19 +0,0 @@ -// !SKIP_JAVAC -// !LANGUAGE: +InlineClasses - -package kotlin.jvm - -import kotlin.reflect.KClass - -annotation class JvmInline - -@JvmInline -value class MyInt(val x: Int) -@JvmInline -value class MyString(val x: String) - -annotation class Ann1(val a: MyInt) -annotation class Ann2(val a: Array) -annotation class Ann3(vararg val a: MyInt) - -annotation class Ann4(val a: KClass) diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt index bbec44460f8..de93ec95be5 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !SKIP_JAVAC // !LANGUAGE: +InlineClasses diff --git a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt index 062857e9b71..d3064305ddf 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt @@ -9,19 +9,19 @@ annotation class JvmInline @JvmInline value class Foo(val x: Int) -fun f1(vararg a: Foo) {} -fun f2(vararg a: Foo?) {} +fun f1(vararg a: Foo) {} +fun f2(vararg a: Foo?) {} class A { - fun f3(a0: Int, vararg a1: Foo) { - fun f4(vararg a: Foo) {} + fun f3(a0: Int, vararg a1: Foo) { + fun f4(vararg a: Foo) {} val g = fun (vararg v: Foo) {} } } -class B(vararg val s: Foo) { - constructor(a: Int, vararg s: Foo) : this(*s) +class B(vararg val s: Foo) { + constructor(a: Int, vararg s: Foo) : this(*s) } -annotation class Ann(vararg val f: Foo) +annotation class Ann(vararg val f: Foo)