From 67a46eba9c2c13349a684e90239500326fd2a6d7 Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Thu, 21 Sep 2023 12:53:08 +0200 Subject: [PATCH] [FIR2IR] Fix default value conversion in annotation classes This fixes failing test `FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.DefaultArguments.testAnnotationsViaActualTypeAlias2`. It started to fail after commit 4e08cafc78a703153b0bf43f999884aa826e50b6 "[FIR2IR] Get rid of IrSymbol.owner usages in Fir2IrLazyClass" where in Fir2IrLazyClass `declarationStorage.getIrConstructorSymbol` was changed to `declarationStorage.getOrCreateIrConstructor`. Before change, value parameters were initialized in `Fir2IrLazyConstructor#valueParameters` where `forcedDefaultValueConversion` was passed. After the change parameters via `Fir2IrCallableDeclarationsGenerator.declareParameters` where `forcedDefaultValueConversion` is not passed to method. ^KT-62104 Fixed --- .../backend/generators/Fir2IrCallableDeclarationsGenerator.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt index a312ba13469..02429319e98 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt @@ -741,7 +741,8 @@ class Fir2IrCallableDeclarationsGenerator(val components: Fir2IrComponents) : Fi valueParameter, index + contextReceiverParametersCount, useStubForDefaultValueStub = function !is FirConstructor || containingClass?.name != Name.identifier("Enum"), typeOrigin, - skipDefaultParameter = isFakeOverride || origin == IrDeclarationOrigin.DELEGATED_MEMBER + skipDefaultParameter = isFakeOverride || origin == IrDeclarationOrigin.DELEGATED_MEMBER, + forcedDefaultValueConversion = containingClass?.isAnnotationClass == true ).apply { this.parent = parent }