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 4e10c559708..139580c6a75 100644 --- a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.fir.txt @@ -4,7 +4,7 @@ FILE: inlineClassDeclaration.kt super() } - public final inline class B : R|kotlin/Any| { + public final inner inline class B : R|kotlin/Any| { public constructor(x: R|kotlin/Int|): R|A.B| { super() } diff --git a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.kt b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.kt index 29fb1c6778c..7d2b7097a78 100644 --- a/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.kt +++ b/compiler/fir/analysis-tests/testData/resolve/inlineClasses/inlineClassDeclaration.kt @@ -1,5 +1,5 @@ class A { - inline class B(val x: Int) + inline inner class B(val x: Int) fun foo() { inline class C(val x: Int) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineClassDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineClassDeclarationChecker.kt index 90e57a1cc6f..fa089274aeb 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineClassDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineClassDeclarationChecker.kt @@ -31,7 +31,7 @@ object FirInlineClassDeclarationChecker : FirRegularClassChecker() { return } - if (context.containingDeclarations.size > 1) { + if (declaration.isInner || declaration.isLocal) { reporter.reportOn(declaration.source, FirErrors.INLINE_CLASS_NOT_TOP_LEVEL, context) } diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt index 99cd1c2f489..c8f57d8f443 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt @@ -15,16 +15,16 @@ inline class A9(final val x: Int) class B1 { companion object { - inline class C1(val x: Int) + inline class C1(val x: Int) inner inline class C11(val x: Int) } - inline class C2(val x: Int) + inline class C2(val x: Int) inner inline class C21(val x: Int) } object B2 { - inline class C3(val x: Int) + inline class C3(val x: Int) inner inline class C31(val x: Int) } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt index e1a337da762..f6dd33b95f1 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt @@ -31,16 +31,16 @@ value class A9(final val x: Int) class B1 { companion object { @JvmInline - value class C1(val x: Int) + value class C1(val x: Int) } @JvmInline - value class C2(val x: Int) + value class C2(val x: Int) } object B2 { @JvmInline - value class C3(val x: Int) + value class C3(val x: Int) } @JvmInline