Restore support for local class literals in annotation arguments

This was broken in c1ab08c8ce where we started to represent KClassValue
as a ClassId of the referenced class + number of times it's been wrapped
into kotlin.Array. Local classes do not have a sane ClassId, so in this
change we restore the old behavior by representing KClassValue with a
sealed class value instead

 #KT-29891 Fixed
This commit is contained in:
Alexander Udalov
2019-02-19 19:31:44 +01:00
parent f733bda912
commit 3f1533c35b
14 changed files with 132 additions and 35 deletions
@@ -19280,6 +19280,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
runTest("compiler/testData/codegen/box/reflection/annotations/findAnnotation.kt");
}
@TestMetadata("localClassLiteral.kt")
public void testLocalClassLiteral() throws Exception {
runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt");
}
@TestMetadata("localClassParameterAnnotation.kt")
public void testLocalClassParameterAnnotation() throws Exception {
runTest("compiler/testData/codegen/box/reflection/annotations/localClassParameterAnnotation.kt");