From 781bfa20e86755e4aa73dfc3dfca8a47bb705035 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Fri, 12 Jun 2020 00:33:33 -0700 Subject: [PATCH] FIR deserializer: fix conversion of class literal inside annotation array value. --- .../annotations/ClassLiteralArguments.txt | 2 +- .../deserialization/KotlinDeserializedJvmSymbolsProvider.kt | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/ClassLiteralArguments.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/ClassLiteralArguments.txt index 0c3741089df..c120c3c3c91 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/ClassLiteralArguments.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/ClassLiteralArguments.txt @@ -15,7 +15,7 @@ public final annotation class Anno : R|kotlin/Annotation| { } -@R|test/Anno|(klass = ((R|kotlin/String|)), klasses = ((R|kotlin/Int|), (R|kotlin/String|), (R|kotlin/Float|)), sarKlass = ((R|kotlin/String|)), d2arKlass = ((R|kotlin/DoubleArray|))) public final class Klass : R|kotlin/Any| { +@R|test/Anno|(klass = ((R|kotlin/String|)), klasses = (((R|kotlin/Int|)), ((R|kotlin/String|)), ((R|kotlin/Float|))), sarKlass = ((R|kotlin/String|)), d2arKlass = ((R|kotlin/DoubleArray|))) public final class Klass : R|kotlin/Any| { public constructor(): R|test/Klass| } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt index ee99afd6f04..58d1ccf208d 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt @@ -245,7 +245,11 @@ class KotlinDeserializedJvmSymbolsProvider( } override fun visitClassLiteral(value: ClassLiteralValue) { - elements.add(value.toFirClassReferenceExpression()) + elements.add( + buildGetClassCall { + argumentList = buildUnaryArgumentList(value.toFirClassReferenceExpression()) + } + ) } override fun visitEnd() {