FIR2IR: fix argument mapping for deserialized annotation #KT-48298 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
6660c9b26b
commit
1a5552bef8
+7
-2
@@ -505,10 +505,15 @@ class CallAndReferenceGenerator(
|
||||
return applyArgumentsWithReorderingIfNeeded(argumentMapping, valueParameters, substitutor, annotationMode)
|
||||
}
|
||||
}
|
||||
// Case without argument mapping (deserialized annotation)
|
||||
// TODO: support argument mapping in deserialized annotations and remove me
|
||||
for ((index, argument) in call.arguments.withIndex()) {
|
||||
val valueParameter = valueParameters?.get(index)
|
||||
val valueParameter = when (argument) {
|
||||
is FirNamedArgumentExpression -> valueParameters?.find { it.name == argument.name }
|
||||
else -> null
|
||||
} ?: valueParameters?.get(index)
|
||||
val argumentExpression = convertArgument(argument, valueParameter, substitutor)
|
||||
putValueArgument(index, argumentExpression)
|
||||
putValueArgument(valueParameters?.indexOf(valueParameter)?.takeIf { it >= 0 } ?: index, argumentExpression)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
+1
-107
@@ -1,110 +1,4 @@
|
||||
warning: ATTENTION!
|
||||
This build uses in-dev FIR:
|
||||
-Xuse-fir
|
||||
exception: java.lang.IllegalStateException: Exception while evaluating constants in file firVsClassicAnnotation.kt
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformerKt.evaluateConstants(IrConstTransformer.kt:27)
|
||||
at org.jetbrains.kotlin.fir.backend.Fir2IrConverter$Companion.createModuleFragment(Fir2IrConverter.kt:324)
|
||||
at org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade.convertToIr(FirAnalyzerFacade.kt:110)
|
||||
at org.jetbrains.kotlin.cli.jvm.compiler.FirKotlinToJvmBytecodeCompiler.compileModule(FirKotlinToJvmBytecodeCompiler.kt:139)
|
||||
at org.jetbrains.kotlin.cli.jvm.compiler.FirKotlinToJvmBytecodeCompiler.compileModulesUsingFrontendIR(FirKotlinToJvmBytecodeCompiler.kt:110)
|
||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
|
||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:60)
|
||||
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170)
|
||||
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
|
||||
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92)
|
||||
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
|
||||
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
|
||||
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:76)
|
||||
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:45)
|
||||
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:227)
|
||||
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:225)
|
||||
at org.jetbrains.kotlin.test.CompilerTestUtil.executeCompiler(CompilerTestUtil.kt:41)
|
||||
at org.jetbrains.kotlin.cli.AbstractCliTest.executeCompilerGrabOutput(AbstractCliTest.java:73)
|
||||
at org.jetbrains.kotlin.cli.AbstractCliTest.doTest(AbstractCliTest.java:105)
|
||||
at org.jetbrains.kotlin.cli.AbstractCliTest.doJvmTest(AbstractCliTest.java:273)
|
||||
at org.jetbrains.kotlin.test.KotlinTestUtils.lambda$testWithCustomIgnoreDirective$4(KotlinTestUtils.java:522)
|
||||
at org.jetbrains.kotlin.test.KotlinTestUtils.runTestImpl(KotlinTestUtils.java:492)
|
||||
at org.jetbrains.kotlin.test.KotlinTestUtils.runTest(KotlinTestUtils.java:435)
|
||||
at org.jetbrains.kotlin.cli.CliTestGenerated$Jvm.runTest(CliTestGenerated.java:27)
|
||||
at org.jetbrains.kotlin.cli.CliTestGenerated$Jvm.testFirVsClassicAnnotation(CliTestGenerated.java:331)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at junit.framework.TestCase.runTest(TestCase.java:176)
|
||||
at org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.lambda$runTest$5(KtUsefulTestCase.java:285)
|
||||
at org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.invokeTestRunnable(KtUsefulTestCase.java:312)
|
||||
at org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.runTest(KtUsefulTestCase.java:300)
|
||||
at org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.defaultRunBare(KtUsefulTestCase.java:323)
|
||||
at org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.runBare(KtUsefulTestCase.java:384)
|
||||
at junit.framework.TestResult$1.protect(TestResult.java:122)
|
||||
at junit.framework.TestResult.runProtected(TestResult.java:142)
|
||||
at junit.framework.TestResult.run(TestResult.java:125)
|
||||
at junit.framework.TestCase.run(TestCase.java:129)
|
||||
at junit.framework.TestSuite.runTest(TestSuite.java:252)
|
||||
at junit.framework.TestSuite.run(TestSuite.java:247)
|
||||
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
|
||||
at org.jetbrains.kotlin.test.JUnit3RunnerWithInnersForGradle.run(JUnit3RunnerWithInnersForGradle.java:71)
|
||||
at org.jetbrains.kotlin.test.JUnit3RunnerWithInners.run(JUnit3RunnerWithInners.java:54)
|
||||
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
|
||||
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
|
||||
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
|
||||
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
|
||||
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
|
||||
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
|
||||
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
|
||||
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
|
||||
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
|
||||
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
|
||||
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
|
||||
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
|
||||
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
|
||||
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
|
||||
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
|
||||
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
|
||||
at java.lang.Thread.run(Thread.java:748)
|
||||
Caused by: java.lang.IllegalStateException: Exception while interpreting annotation of a declaration PROPERTY FAKE_OVERRIDE name:isNameGenerated visibility:public modality:FINAL [fake_override,val]: Property(description = 'true', ignore = <null>, externalName = <null>)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer.visitDeclaration(IrConstTransformer.kt:64)
|
||||
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitProperty(IrElementTransformerVoid.kt:78)
|
||||
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitProperty(IrElementTransformerVoid.kt:79)
|
||||
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitProperty(IrElementTransformerVoid.kt:24)
|
||||
at org.jetbrains.kotlin.ir.declarations.IrProperty.accept(IrProperty.kt:49)
|
||||
at org.jetbrains.kotlin.ir.IrElement$DefaultImpls.transform(IrElement.kt:32)
|
||||
at org.jetbrains.kotlin.ir.IrElementBase.transform(IrElementBase.kt:19)
|
||||
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
|
||||
at org.jetbrains.kotlin.ir.declarations.IrClass.transformChildren(IrClass.kt:66)
|
||||
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitDeclaration(IrElementTransformerVoid.kt:57)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer.visitDeclaration(IrConstTransformer.kt:66)
|
||||
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitClass(IrElementTransformerVoid.kt:66)
|
||||
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitClass(IrElementTransformerVoid.kt:67)
|
||||
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitClass(IrElementTransformerVoid.kt:24)
|
||||
at org.jetbrains.kotlin.ir.declarations.IrClass.accept(IrClass.kt:55)
|
||||
at org.jetbrains.kotlin.ir.IrElement$DefaultImpls.transform(IrElement.kt:32)
|
||||
at org.jetbrains.kotlin.ir.IrElementBase.transform(IrElementBase.kt:19)
|
||||
at org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl.transformChildren(IrFileImpl.kt:89)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformerKt.evaluateConstants(IrConstTransformer.kt:25)
|
||||
... 73 more
|
||||
Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
|
||||
at org.jetbrains.kotlin.ir.interpreter.IrTreeBuildUtilsKt.toIrConstOrNull(IrTreeBuildUtils.kt:57)
|
||||
at org.jetbrains.kotlin.ir.interpreter.IrTreeBuildUtilsKt.toIrConst(IrTreeBuildUtils.kt:65)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer.convertToConstIfPossible(IrConstTransformer.kt:115)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer.transformSingleArg(IrConstTransformer.kt:105)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer.transformAnnotation(IrConstTransformer.kt:80)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer.transformAnnotations(IrConstTransformer.kt:71)
|
||||
at org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer.visitDeclaration(IrConstTransformer.kt:62)
|
||||
... 91 more
|
||||
|
||||
INTERNAL_ERROR
|
||||
OK
|
||||
|
||||
Reference in New Issue
Block a user