xref: /aosp_15_r20/external/ksp/test-utils/testData/api/hello.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1*af87fb4bSXin Li /*
<lambda>null2*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 
18*af87fb4bSXin Li // WITH_RUNTIME
19*af87fb4bSXin Li // TEST PROCESSOR: HelloProcessor
20*af87fb4bSXin Li // EXPECTED:
21*af87fb4bSXin Li // 8
22*af87fb4bSXin Li // AClass
23*af87fb4bSXin Li // Bar.BBB
24*af87fb4bSXin Li // Bar.list
25*af87fb4bSXin Li // C
26*af87fb4bSXin Li // C.f
27*af87fb4bSXin Li // C.javaFun
28*af87fb4bSXin Li // test.Foo
29*af87fb4bSXin Li // test.ITF
30*af87fb4bSXin Li // END
31*af87fb4bSXin Li //FILE: a.kt
32*af87fb4bSXin Li package test
33*af87fb4bSXin Li annotation class Anno
34*af87fb4bSXin Li 
35*af87fb4bSXin Li 
36*af87fb4bSXin Li @Anno
37*af87fb4bSXin Li class Foo() {
38*af87fb4bSXin Li     val k = "123"
39*af87fb4bSXin Li     var a : String = "123"
40*af87fb4bSXin Li     val aaa : (Int) -> Int = { a -> 1 }
41*af87fb4bSXin Li     fun bar(): Int {
42*af87fb4bSXin Li //        val aa = 1234
43*af87fb4bSXin Li         return 3
44*af87fb4bSXin Li     }
45*af87fb4bSXin Li }
46*af87fb4bSXin Li 
47*af87fb4bSXin Li @Anno
48*af87fb4bSXin Li interface ITF<T> {
fooITFnull49*af87fb4bSXin Li     fun fooITF() = 1
50*af87fb4bSXin Li }
51*af87fb4bSXin Li 
52*af87fb4bSXin Li //FILE: b.kt
53*af87fb4bSXin Li import test.Anno
54*af87fb4bSXin Li import test.ITF
55*af87fb4bSXin Li 
56*af87fb4bSXin Li class Bar<out S, out D>() : ITF<D> {
57*af87fb4bSXin Li     @Anno
58*af87fb4bSXin Li     val list : List<Int>? = null
59*af87fb4bSXin Li     val funInObj = foo()
60*af87fb4bSXin Li     open internal fun foo(c: C, dd: () -> D): Int {
61*af87fb4bSXin Li         val a = 1
62*af87fb4bSXin Li //        fun <TTT> foo(c: C, dd: () -> TTT): Int {
63*af87fb4bSXin Li //            return 1
64*af87fb4bSXin Li //        }
65*af87fb4bSXin Li         return 1
66*af87fb4bSXin Li     }
67*af87fb4bSXin Li     @Anno
68*af87fb4bSXin Li     class BBB {
69*af87fb4bSXin Li         fun <TTA: String> fofo(c: C, dd: () -> TTA): Int {
70*af87fb4bSXin Li             return 1
71*af87fb4bSXin Li         }
72*af87fb4bSXin Li         fun <TTA: Int> fofofo(c: C, dd: () -> TTA): Int {
73*af87fb4bSXin Li             return 1
74*af87fb4bSXin Li         }
75*af87fb4bSXin Li     }
76*af87fb4bSXin Li     val a = 1
77*af87fb4bSXin Li 
78*af87fb4bSXin Li     val kk
79*af87fb4bSXin Li     get() = 1
80*af87fb4bSXin Li 
81*af87fb4bSXin Li     companion object {
82*af87fb4bSXin Li         val s = 1
83*af87fb4bSXin Li         fun foo() = 123
84*af87fb4bSXin Li     }
85*af87fb4bSXin Li }
86*af87fb4bSXin Li 
87*af87fb4bSXin Li //FILE: c.kt
88*af87fb4bSXin Li import test.Anno
89*af87fb4bSXin Li 
90*af87fb4bSXin Li @Anno
91*af87fb4bSXin Li class AClass(val a: Int, val b: String, c: Double) {
foonull92*af87fb4bSXin Li     fun foo() = a + b.length + c
93*af87fb4bSXin Li }
94*af87fb4bSXin Li 
95*af87fb4bSXin Li fun <D> foo(c: C, dd: () -> D) = 1
96*af87fb4bSXin Li 
97*af87fb4bSXin Li class CC: C() {}
98*af87fb4bSXin Li 
99*af87fb4bSXin Li // FILE: C.java
100*af87fb4bSXin Li import java.util.List;
101*af87fb4bSXin Li import java.util.ArrayList;
102*af87fb4bSXin Li import test.Foo;
103*af87fb4bSXin Li import test.ITF;
104*af87fb4bSXin Li import test.Anno;
105*af87fb4bSXin Li 
106*af87fb4bSXin Li @Anno
107*af87fb4bSXin Li class C {
108*af87fb4bSXin Li     @Anno
109*af87fb4bSXin Li     public Foo f = new Foo();
110*af87fb4bSXin Li     List<? extends ITF> list = new ArrayList<>();
111*af87fb4bSXin Li 
112*af87fb4bSXin Li     @Anno
<lambda>null113*af87fb4bSXin Li     public String javaFun() {
114*af87fb4bSXin Li         return f.k;
115*af87fb4bSXin Li     }
116*af87fb4bSXin Li }
117