From 11ba62064782700909c4eb26fda8cb7ea6175982 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Tue, 21 Sep 2021 18:16:25 +0200 Subject: [PATCH] Minor. Add tests with arrays in annotations --- .../box/inlineClasses/kclassInAnnotation.kt | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt b/compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt index ef03392f74f..766818743fa 100644 --- a/compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt +++ b/compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt @@ -8,38 +8,108 @@ import kotlin.reflect.KClass @JvmInline value class ICInt(val i: Int) +@JvmInline +value class ICIntArray(val i: IntArray) + @JvmInline value class ICIntN(val i: Int?) +@JvmInline +value class ICIntNArray(val i: Array) + @JvmInline value class ICAny(val a: Any) +@JvmInline +value class ICAnyArray(val a: Array) + +@JvmInline +value class ICAnyNArray(val a: Array) + annotation class Ann(val c: KClass<*>) +annotation class AnnArray(val c: Array>) @Ann(ICInt::class) +@AnnArray([ICInt::class]) class CInt +@Ann(ICIntArray::class) +@AnnArray([ICIntArray::class]) +class CIntArray + @Ann(ICIntN::class) +@AnnArray([ICIntN::class]) class CIntN +@Ann(ICIntNArray::class) +@AnnArray([ICIntNArray::class]) +class CIntNArray + @Ann(ICAny::class) +@AnnArray([ICAny::class]) class CAny +@Ann(ICAnyArray::class) +@AnnArray([ICAnyArray::class]) +class CAnyArray + @Ann(Result::class) +@AnnArray([Result::class]) class CResult +@Ann(ICAnyNArray::class) +@AnnArray([ICAnyNArray::class]) +class CAnyNArray + fun box(): String { var klass = (CInt::class.annotations.first() as Ann).c.toString() if (klass != "class test.ICInt") return "Expected class test.ICInt, got $klass" + klass = (CIntArray::class.annotations.first() as Ann).c.toString() + if (klass != "class test.ICIntArray") return "Expected class test.ICIntArray, got $klass" + klass = (CIntN::class.annotations.first() as Ann).c.toString() if (klass != "class test.ICIntN") return "Expected class test.ICIntN, got $klass" + klass = (CIntNArray::class.annotations.first() as Ann).c.toString() + if (klass != "class test.ICIntNArray") return "Expected class test.ICIntNArray, got $klass" + klass = (CAny::class.annotations.first() as Ann).c.toString() if (klass != "class test.ICAny") return "Expected class test.ICAny, got $klass" + klass = (CAnyArray::class.annotations.first() as Ann).c.toString() + if (klass != "class test.ICAnyArray") return "Expected class test.ICAnyArray, got $klass" + klass = (CResult::class.annotations.first() as Ann).c.toString() if (klass != "class kotlin.Result") return "Expected class kotlin.Result, got $klass" + klass = (CAnyNArray::class.annotations.first() as Ann).c.toString() + if (klass != "class test.ICAnyNArray") return "Expected class test.ICAnyNArray, got $klass" + + + klass = (CInt::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class test.ICInt") return "Expected class test.ICInt, got $klass" + + klass = (CIntArray::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class test.ICIntArray") return "Expected class test.ICIntArray, got $klass" + + klass = (CIntN::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class test.ICIntN") return "Expected class test.ICIntN, got $klass" + + klass = (CIntNArray::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class test.ICIntNArray") return "Expected class test.ICIntNArray, got $klass" + + klass = (CAny::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class test.ICAny") return "Expected class test.ICAny, got $klass" + + klass = (CAnyArray::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class test.ICAnyArray") return "Expected class test.ICAnyArray, got $klass" + + klass = (CResult::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class kotlin.Result") return "Expected class kotlin.Result, got $klass" + + klass = (CAnyNArray::class.annotations.last() as AnnArray).c[0].toString() + if (klass != "class test.ICAnyNArray") return "Expected class test.ICAnyNArray, got $klass" + return "OK" } \ No newline at end of file