diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index 517e12931bc..b1cd6154391 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -2193,6 +2193,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/kotlinProperties.kt"); } + @Test + @TestMetadata("lambdaParameter.kt") + public void testLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt"); + } + @Test @TestMetadata("standaloneInExpression.kt") public void testStandaloneInExpression() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index e8dde6d268f..782f6f82ead 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -2193,6 +2193,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/kotlinProperties.kt"); } + @Test + @TestMetadata("lambdaParameter.kt") + public void testLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt"); + } + @Test @TestMetadata("standaloneInExpression.kt") public void testStandaloneInExpression() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index 33685c6f9dc..421eef9cec9 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -2193,6 +2193,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/kotlinProperties.kt"); } + @Test + @TestMetadata("lambdaParameter.kt") + public void testLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt"); + } + @Test @TestMetadata("standaloneInExpression.kt") public void testStandaloneInExpression() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index a872a30c509..9722c01f667 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -2199,6 +2199,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/kotlinProperties.kt"); } + @Test + @TestMetadata("lambdaParameter.kt") + public void testLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt"); + } + @Test @TestMetadata("standaloneInExpression.kt") public void testStandaloneInExpression() throws Exception { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt index be005b531f1..8626f6ef3a6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt @@ -295,6 +295,20 @@ abstract class AbstractFirExpressionsResolveTransformerForAnnotations(transforme return arrayLiteral } + override fun transformAnonymousObjectExpression( + anonymousObjectExpression: FirAnonymousObjectExpression, + data: ResolutionMode, + ): FirStatement { + return anonymousObjectExpression + } + + override fun transformAnonymousFunctionExpression( + anonymousFunctionExpression: FirAnonymousFunctionExpression, + data: ResolutionMode, + ): FirStatement { + return anonymousFunctionExpression + } + override fun shouldComputeTypeOfGetClassCallWithNotQualifierInLhs(getClassCall: FirGetClassCall): Boolean { return false } diff --git a/compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.fir.kt b/compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.fir.kt new file mode 100644 index 00000000000..3d515f5f47c --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.fir.kt @@ -0,0 +1,18 @@ +// ISSUE: KT-59565 + +@Target(AnnotationTarget.TYPE) +annotation class Ann(val x: Int) + +class A{ + fun local() = 1 + var result = local() + result += 1 + result +}) Any> + +fun f(x: @Ann({ + fun local() = 1 + var result = local() + result += 1 + result +}) Int) = x diff --git a/compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt b/compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt new file mode 100644 index 00000000000..2a8dabc16b6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt @@ -0,0 +1,18 @@ +// ISSUE: KT-59565 + +@Target(AnnotationTarget.TYPE) +annotation class Ann(val x: Int) + +class A{ + fun local() = 1 + var result = local() + result += 1 + result +}) Any> + +fun f(x: @Ann({ + fun local() = 1 + var result = local() + result += 1 + result +}) Int) = x diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 2e826a0178d..6e04f4ec880 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -2199,6 +2199,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/kotlinProperties.kt"); } + @Test + @TestMetadata("lambdaParameter.kt") + public void testLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt"); + } + @Test @TestMetadata("standaloneInExpression.kt") public void testStandaloneInExpression() throws Exception {