xref: /aosp_15_r20/external/ksp/test-utils/testData/api/annotationWithArbitraryClassValue.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1*af87fb4bSXin Li /*
2*af87fb4bSXin Li  * Copyright 2020 Google LLC
3*af87fb4bSXin Li  * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
4*af87fb4bSXin Li  *
5*af87fb4bSXin Li  * Licensed under the Apache License, Version 2.0 (the "License");
6*af87fb4bSXin Li  * you may not use this file except in compliance with the License.
7*af87fb4bSXin Li  * You may obtain a copy of the License at
8*af87fb4bSXin Li  *
9*af87fb4bSXin Li  * http://www.apache.org/licenses/LICENSE-2.0
10*af87fb4bSXin Li  *
11*af87fb4bSXin Li  * Unless required by applicable law or agreed to in writing, software
12*af87fb4bSXin Li  * distributed under the License is distributed on an "AS IS" BASIS,
13*af87fb4bSXin Li  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*af87fb4bSXin Li  * See the License for the specific language governing permissions and
15*af87fb4bSXin Li  * limitations under the License.
16*af87fb4bSXin Li  */
17*af87fb4bSXin Li // TEST PROCESSOR: AnnotationArbitraryClassValueProcessor
18*af87fb4bSXin Li // EXPECTED:
19*af87fb4bSXin Li // User
20*af87fb4bSXin Li // String, Company, IntArray, Array<User>
21*af87fb4bSXin Li // END
22*af87fb4bSXin Li // FILE: a.kt
23*af87fb4bSXin Li package com.google.devtools.ksp.processor
24*af87fb4bSXin Li 
25*af87fb4bSXin Li import kotlin.reflect.KClass
26*af87fb4bSXin Li 
27*af87fb4bSXin Li annotation class ClassValueAnnotation(
28*af87fb4bSXin Li     val classValue: KClass<*>,
29*af87fb4bSXin Li     val classValues: Array<KClass<*>>)
30*af87fb4bSXin Li 
31*af87fb4bSXin Li data class User(val id: Long, val name: String)
32*af87fb4bSXin Li data class Company(val id: Long, val name: String, val location: String)
33*af87fb4bSXin Li 
34*af87fb4bSXin Li @ClassValueAnnotation(
35*af87fb4bSXin Li     classValue = User::class,
36*af87fb4bSXin Li     classValues = [String::class, Company::class, IntArray::class, Array<User>::class]
37*af87fb4bSXin Li )
38*af87fb4bSXin Li class ClassValueAnnotated
39