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