diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt index 679e0624027..512b2958ad5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt @@ -394,6 +394,21 @@ abstract class AbstractFirSpecificAnnotationResolveTransformer( } } + override fun transformScript( + script: FirScript, + data: Nothing?, + ): FirScript { + if (shouldTransformDeclaration(script)) { + computationSession.recordThatAnnotationsAreResolved(script) + transformDeclaration(script, null).also { + transformChildren(script) { + script.transformStatements(this, data) + } + } + } + return script + } + inline fun withRegularClass( regularClass: FirRegularClass, action: () -> Unit diff --git a/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/test/ScriptCompilerTest.kt b/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/test/ScriptCompilerTest.kt index 8a406353a68..ee6eae7d8dd 100644 --- a/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/test/ScriptCompilerTest.kt +++ b/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/test/ScriptCompilerTest.kt @@ -33,6 +33,17 @@ class ScriptCompilerTest : TestCase() { assertTrue(res.reports.none { it.message.contains("nonsense") }) } + fun testDeprecationAnnotation() { + val res = compile(""" + @Deprecated("BECAUSE") + fun deprecatedFunction() {} + deprecatedFunction() + """.trimIndent().toScriptSource()) {} + + assertTrue(res is ResultWithDiagnostics.Success) + assertTrue(res.reports.any { it.message.contains("deprecatedFunction(): Unit' is deprecated. BECAUSE") }) + } + fun testSimpleVarAccess() { val res = compileToClass( """