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 18*af87fb4bSXin Li // TEST PROCESSOR: LibOriginsProcessor 19*af87fb4bSXin Li // EXPECTED: 20*af87fb4bSXin Li // annotation: Anno1: KOTLIN_LIB 21*af87fb4bSXin Li // annotation: Anno2: JAVA_LIB 22*af87fb4bSXin Li // annotation: Anno3: KOTLIN 23*af87fb4bSXin Li // annotation: Anno4: JAVA 24*af87fb4bSXin Li // classifier ref: Anno1: KOTLIN_LIB 25*af87fb4bSXin Li // classifier ref: Anno1: KOTLIN_LIB 26*af87fb4bSXin Li // classifier ref: Anno2: JAVA_LIB 27*af87fb4bSXin Li // classifier ref: Anno2: KOTLIN_LIB 28*af87fb4bSXin Li // classifier ref: Anno3: KOTLIN 29*af87fb4bSXin Li // classifier ref: Anno3: KOTLIN_LIB 30*af87fb4bSXin Li // classifier ref: Anno4: JAVA 31*af87fb4bSXin Li // classifier ref: Anno4: KOTLIN_LIB 32*af87fb4bSXin Li // classifier ref: Annotation: KOTLIN_LIB 33*af87fb4bSXin Li // classifier ref: Annotation: KOTLIN_LIB 34*af87fb4bSXin Li // classifier ref: Annotation: KOTLIN_LIB 35*af87fb4bSXin Li // classifier ref: Annotation: KOTLIN_LIB 36*af87fb4bSXin Li // classifier ref: Any: JAVA_LIB 37*af87fb4bSXin Li // classifier ref: Any: JAVA_LIB 38*af87fb4bSXin Li // classifier ref: Any: JAVA_LIB 39*af87fb4bSXin Li // classifier ref: Any: KOTLIN_LIB 40*af87fb4bSXin Li // classifier ref: Any: KOTLIN_LIB 41*af87fb4bSXin Li // classifier ref: Any: KOTLIN_LIB 42*af87fb4bSXin Li // classifier ref: ArrayList<(T2..T2?)>: JAVA_LIB 43*af87fb4bSXin Li // classifier ref: Byte: JAVA_LIB 44*af87fb4bSXin Li // classifier ref: Byte: JAVA_LIB 45*af87fb4bSXin Li // classifier ref: Byte: JAVA_LIB 46*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 47*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 48*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 49*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 50*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 51*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 52*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 53*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 54*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 55*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 56*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 57*af87fb4bSXin Li // classifier ref: Int: KOTLIN_LIB 58*af87fb4bSXin Li // classifier ref: JavaLib: JAVA_LIB 59*af87fb4bSXin Li // classifier ref: JavaLib: JAVA_LIB 60*af87fb4bSXin Li // classifier ref: JavaLib: JAVA_LIB 61*af87fb4bSXin Li // classifier ref: JavaLib<T2>: JAVA_LIB 62*af87fb4bSXin Li // classifier ref: KotlinLibClass: KOTLIN_LIB 63*af87fb4bSXin Li // classifier ref: KotlinLibClass: KOTLIN_LIB 64*af87fb4bSXin Li // classifier ref: KotlinLibClass: KOTLIN_LIB 65*af87fb4bSXin Li // classifier ref: KotlinLibClass: KOTLIN_LIB 66*af87fb4bSXin Li // classifier ref: KotlinLibClass: KOTLIN_LIB 67*af87fb4bSXin Li // classifier ref: KotlinLibClass: KOTLIN_LIB 68*af87fb4bSXin Li // classifier ref: KotlinLibClass<T1>: KOTLIN_LIB 69*af87fb4bSXin Li // classifier ref: KotlinSrcClass: SYNTHETIC 70*af87fb4bSXin Li // classifier ref: List<Int>: KOTLIN_LIB 71*af87fb4bSXin Li // classifier ref: List<T1>: KOTLIN_LIB 72*af87fb4bSXin Li // classifier ref: List<T1>: KOTLIN_LIB 73*af87fb4bSXin Li // classifier ref: List<T1>: KOTLIN_LIB 74*af87fb4bSXin Li // classifier ref: List<T1>: KOTLIN_LIB 75*af87fb4bSXin Li // classifier ref: Long: JAVA 76*af87fb4bSXin Li // classifier ref: Long: JAVA 77*af87fb4bSXin Li // classifier ref: Long: JAVA 78*af87fb4bSXin Li // classifier ref: Object: JAVA 79*af87fb4bSXin Li // classifier ref: Set: KOTLIN 80*af87fb4bSXin Li // classifier ref: Set: KOTLIN 81*af87fb4bSXin Li // classifier ref: Set: KOTLIN 82*af87fb4bSXin Li // classifier ref: Set: KOTLIN 83*af87fb4bSXin Li // classifier ref: Set<T3>: SYNTHETIC 84*af87fb4bSXin Li // classifier ref: Short: KOTLIN 85*af87fb4bSXin Li // classifier ref: Short: KOTLIN 86*af87fb4bSXin Li // classifier ref: Short: KOTLIN 87*af87fb4bSXin Li // classifier ref: Short: KOTLIN 88*af87fb4bSXin Li // classifier ref: Short: KOTLIN 89*af87fb4bSXin Li // classifier ref: Short: KOTLIN 90*af87fb4bSXin Li // classifier ref: Short: KOTLIN 91*af87fb4bSXin Li // classifier ref: Short: KOTLIN 92*af87fb4bSXin Li // classifier ref: Short: KOTLIN 93*af87fb4bSXin Li // classifier ref: Short: SYNTHETIC 94*af87fb4bSXin Li // classifier ref: Short: SYNTHETIC 95*af87fb4bSXin Li // classifier ref: Short: SYNTHETIC 96*af87fb4bSXin Li // classifier ref: T1: KOTLIN_LIB 97*af87fb4bSXin Li // classifier ref: T1: KOTLIN_LIB 98*af87fb4bSXin Li // classifier ref: T1: KOTLIN_LIB 99*af87fb4bSXin Li // classifier ref: T1: KOTLIN_LIB 100*af87fb4bSXin Li // classifier ref: T1: KOTLIN_LIB 101*af87fb4bSXin Li // classifier ref: T1: KOTLIN_LIB 102*af87fb4bSXin Li // classifier ref: T2: JAVA_LIB 103*af87fb4bSXin Li // classifier ref: T2: JAVA_LIB 104*af87fb4bSXin Li // classifier ref: T2: JAVA_LIB 105*af87fb4bSXin Li // classifier ref: T3: KOTLIN 106*af87fb4bSXin Li // classifier ref: T3: KOTLIN 107*af87fb4bSXin Li // classifier ref: T3: KOTLIN 108*af87fb4bSXin Li // classifier ref: T3: KOTLIN 109*af87fb4bSXin Li // classifier ref: T3: SYNTHETIC 110*af87fb4bSXin Li // classifier ref: T4: JAVA 111*af87fb4bSXin Li // classifier ref: T4: JAVA 112*af87fb4bSXin Li // declaration: <init>: KOTLIN 113*af87fb4bSXin Li // declaration: foo.bar.Anno1.<init>: KOTLIN_LIB 114*af87fb4bSXin Li // declaration: foo.bar.Anno1: KOTLIN_LIB 115*af87fb4bSXin Li // declaration: foo.bar.Anno2.<init>: KOTLIN_LIB 116*af87fb4bSXin Li // declaration: foo.bar.Anno2: KOTLIN_LIB 117*af87fb4bSXin Li // declaration: foo.bar.Anno3.<init>: KOTLIN_LIB 118*af87fb4bSXin Li // declaration: foo.bar.Anno3: KOTLIN_LIB 119*af87fb4bSXin Li // declaration: foo.bar.Anno4.<init>: KOTLIN_LIB 120*af87fb4bSXin Li // declaration: foo.bar.Anno4: KOTLIN_LIB 121*af87fb4bSXin Li // declaration: foo.bar.JavaLib.<init>: JAVA_LIB 122*af87fb4bSXin Li // declaration: foo.bar.JavaLib.T2: JAVA_LIB 123*af87fb4bSXin Li // declaration: foo.bar.JavaLib.T2: JAVA_LIB 124*af87fb4bSXin Li // declaration: foo.bar.JavaLib.f1: JAVA_LIB 125*af87fb4bSXin Li // declaration: foo.bar.JavaLib.javaLibField: JAVA_LIB 126*af87fb4bSXin Li // declaration: foo.bar.JavaLib.javaLibFunction: JAVA_LIB 127*af87fb4bSXin Li // declaration: foo.bar.JavaLib: JAVA_LIB 128*af87fb4bSXin Li // declaration: foo.bar.JavaSrc.<init>: SYNTHETIC 129*af87fb4bSXin Li // declaration: foo.bar.JavaSrc.LinkedList: JAVA 130*af87fb4bSXin Li // declaration: foo.bar.JavaSrc.f2: JAVA 131*af87fb4bSXin Li // declaration: foo.bar.JavaSrc.javaSrcField: JAVA 132*af87fb4bSXin Li // declaration: foo.bar.JavaSrc.javaSrcFunction: JAVA 133*af87fb4bSXin Li // declaration: foo.bar.JavaSrc.p0: JAVA 134*af87fb4bSXin Li // declaration: foo.bar.JavaSrc: JAVA 135*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.<init>: KOTLIN_LIB 136*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.T1: KOTLIN_LIB 137*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.T1: KOTLIN_LIB 138*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.f1: KOTLIN_LIB 139*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.f2: KOTLIN_LIB 140*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.f3: KOTLIN_LIB 141*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.p1: KOTLIN_LIB 142*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.p2: KOTLIN_LIB 143*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass.p3: KOTLIN_LIB 144*af87fb4bSXin Li // declaration: foo.bar.KotlinLibClass: KOTLIN_LIB 145*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass.T3: KOTLIN 146*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass.g1: KOTLIN 147*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass.g2: KOTLIN 148*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass.g3: KOTLIN 149*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass.q1: KOTLIN 150*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass.q2: KOTLIN 151*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass.q3: KOTLIN 152*af87fb4bSXin Li // declaration: foo.bar.KotlinSrcClass: KOTLIN 153*af87fb4bSXin Li // declaration: foo.bar.kotlinLibFuntion: KOTLIN_LIB 154*af87fb4bSXin Li // declaration: foo.bar.kotlinLibProperty: KOTLIN_LIB 155*af87fb4bSXin Li // declaration: foo.bar.kotlinSrcFuntion: KOTLIN 156*af87fb4bSXin Li // declaration: foo.bar.kotlinSrcProperty: KOTLIN 157*af87fb4bSXin Li // property accessor: kotlinLibProperty.getter(): KOTLIN_LIB 158*af87fb4bSXin Li // property accessor: kotlinSrcProperty.getter(): SYNTHETIC 159*af87fb4bSXin Li // property accessor: p1.getter(): KOTLIN_LIB 160*af87fb4bSXin Li // property accessor: p2.getter(): KOTLIN_LIB 161*af87fb4bSXin Li // property accessor: p3.getter(): KOTLIN_LIB 162*af87fb4bSXin Li // property accessor: q1.getter(): SYNTHETIC 163*af87fb4bSXin Li // property accessor: q2.getter(): SYNTHETIC 164*af87fb4bSXin Li // property accessor: q3.getter(): SYNTHETIC 165*af87fb4bSXin Li // reference: Anno1: KOTLIN_LIB 166*af87fb4bSXin Li // reference: Anno1: KOTLIN_LIB 167*af87fb4bSXin Li // reference: Anno2: JAVA_LIB 168*af87fb4bSXin Li // reference: Anno2: KOTLIN_LIB 169*af87fb4bSXin Li // reference: Anno3: KOTLIN 170*af87fb4bSXin Li // reference: Anno3: KOTLIN_LIB 171*af87fb4bSXin Li // reference: Anno4: JAVA 172*af87fb4bSXin Li // reference: Anno4: KOTLIN_LIB 173*af87fb4bSXin Li // reference: Annotation: KOTLIN_LIB 174*af87fb4bSXin Li // reference: Annotation: KOTLIN_LIB 175*af87fb4bSXin Li // reference: Annotation: KOTLIN_LIB 176*af87fb4bSXin Li // reference: Annotation: KOTLIN_LIB 177*af87fb4bSXin Li // reference: Any: JAVA_LIB 178*af87fb4bSXin Li // reference: Any: JAVA_LIB 179*af87fb4bSXin Li // reference: Any: JAVA_LIB 180*af87fb4bSXin Li // reference: Any: KOTLIN_LIB 181*af87fb4bSXin Li // reference: Any: KOTLIN_LIB 182*af87fb4bSXin Li // reference: Any: KOTLIN_LIB 183*af87fb4bSXin Li // reference: Any: SYNTHETIC 184*af87fb4bSXin Li // reference: Any?: SYNTHETIC 185*af87fb4bSXin Li // reference: ArrayList<(T2..T2?)>: JAVA_LIB 186*af87fb4bSXin Li // reference: Byte: JAVA_LIB 187*af87fb4bSXin Li // reference: Byte: JAVA_LIB 188*af87fb4bSXin Li // reference: Byte: JAVA_LIB 189*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 190*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 191*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 192*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 193*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 194*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 195*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 196*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 197*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 198*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 199*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 200*af87fb4bSXin Li // reference: Int: KOTLIN_LIB 201*af87fb4bSXin Li // reference: JavaLib<T2>: JAVA_LIB 202*af87fb4bSXin Li // reference: JavaSrc: SYNTHETIC 203*af87fb4bSXin Li // reference: KotlinLibClass<T1>: KOTLIN_LIB 204*af87fb4bSXin Li // reference: KotlinSrcClass<T3>: KOTLIN 205*af87fb4bSXin Li // reference: List<Int>: KOTLIN_LIB 206*af87fb4bSXin Li // reference: List<T1>: KOTLIN_LIB 207*af87fb4bSXin Li // reference: List<T1>: KOTLIN_LIB 208*af87fb4bSXin Li // reference: List<T1>: KOTLIN_LIB 209*af87fb4bSXin Li // reference: List<T1>: KOTLIN_LIB 210*af87fb4bSXin Li // reference: Long: JAVA 211*af87fb4bSXin Li // reference: Long: JAVA 212*af87fb4bSXin Li // reference: Long: JAVA 213*af87fb4bSXin Li // reference: Object: JAVA 214*af87fb4bSXin Li // reference: Set: KOTLIN 215*af87fb4bSXin Li // reference: Set: KOTLIN 216*af87fb4bSXin Li // reference: Set: KOTLIN 217*af87fb4bSXin Li // reference: Set: KOTLIN 218*af87fb4bSXin Li // reference: Set<T3>: SYNTHETIC 219*af87fb4bSXin Li // reference: Short: KOTLIN 220*af87fb4bSXin Li // reference: Short: KOTLIN 221*af87fb4bSXin Li // reference: Short: KOTLIN 222*af87fb4bSXin Li // reference: Short: KOTLIN 223*af87fb4bSXin Li // reference: Short: KOTLIN 224*af87fb4bSXin Li // reference: Short: KOTLIN 225*af87fb4bSXin Li // reference: Short: KOTLIN 226*af87fb4bSXin Li // reference: Short: KOTLIN 227*af87fb4bSXin Li // reference: Short: KOTLIN 228*af87fb4bSXin Li // reference: Short: SYNTHETIC 229*af87fb4bSXin Li // reference: Short: SYNTHETIC 230*af87fb4bSXin Li // reference: Short: SYNTHETIC 231*af87fb4bSXin Li // reference: T1: KOTLIN_LIB 232*af87fb4bSXin Li // reference: T1: KOTLIN_LIB 233*af87fb4bSXin Li // reference: T1: KOTLIN_LIB 234*af87fb4bSXin Li // reference: T1: KOTLIN_LIB 235*af87fb4bSXin Li // reference: T1: KOTLIN_LIB 236*af87fb4bSXin Li // reference: T1: KOTLIN_LIB 237*af87fb4bSXin Li // reference: T2: JAVA_LIB 238*af87fb4bSXin Li // reference: T2: JAVA_LIB 239*af87fb4bSXin Li // reference: T2: JAVA_LIB 240*af87fb4bSXin Li // reference: T3: KOTLIN 241*af87fb4bSXin Li // reference: T3: KOTLIN 242*af87fb4bSXin Li // reference: T3: KOTLIN 243*af87fb4bSXin Li // reference: T3: KOTLIN 244*af87fb4bSXin Li // reference: T3: SYNTHETIC 245*af87fb4bSXin Li // reference: T4: JAVA 246*af87fb4bSXin Li // reference: T4: JAVA 247*af87fb4bSXin Li // type arg: INVARIANT Int: KOTLIN_LIB 248*af87fb4bSXin Li // type arg: INVARIANT Short: KOTLIN 249*af87fb4bSXin Li // type arg: INVARIANT T1: KOTLIN_LIB 250*af87fb4bSXin Li // type arg: INVARIANT T1: KOTLIN_LIB 251*af87fb4bSXin Li // type arg: INVARIANT T1: KOTLIN_LIB 252*af87fb4bSXin Li // type arg: INVARIANT T1: KOTLIN_LIB 253*af87fb4bSXin Li // type arg: INVARIANT T1: KOTLIN_LIB 254*af87fb4bSXin Li // type arg: INVARIANT T2: JAVA_LIB 255*af87fb4bSXin Li // type arg: INVARIANT T2: JAVA_LIB 256*af87fb4bSXin Li // type arg: INVARIANT T3: KOTLIN 257*af87fb4bSXin Li // type arg: INVARIANT T3: KOTLIN 258*af87fb4bSXin Li // type arg: INVARIANT T3: KOTLIN 259*af87fb4bSXin Li // type arg: INVARIANT T3: SYNTHETIC 260*af87fb4bSXin Li // value param: p0: JAVA_LIB 261*af87fb4bSXin Li // value param: p1: JAVA_LIB 262*af87fb4bSXin Li // value param: p1: KOTLIN_LIB 263*af87fb4bSXin Li // value param: p2: KOTLIN_LIB 264*af87fb4bSXin Li // value param: p4: KOTLIN_LIB 265*af87fb4bSXin Li // value param: p5: KOTLIN_LIB 266*af87fb4bSXin Li // value param: p6: KOTLIN_LIB 267*af87fb4bSXin Li // value param: q1: KOTLIN 268*af87fb4bSXin Li // value param: q2: KOTLIN 269*af87fb4bSXin Li // value param: q4: KOTLIN 270*af87fb4bSXin Li // value param: q5: KOTLIN 271*af87fb4bSXin Li // value param: q6: KOTLIN 272*af87fb4bSXin Li // END 273*af87fb4bSXin Li // MODULE: module1 274*af87fb4bSXin Li // FILE: KotlinLib.kt 275*af87fb4bSXin Li package foo.bar 276*af87fb4bSXin Li 277*af87fb4bSXin Li val kotlinLibProperty: Int = 0 kotlinLibFuntionnull278*af87fb4bSXin Lifun kotlinLibFuntion(): Int = 0 279*af87fb4bSXin Li 280*af87fb4bSXin Li annotation class Anno1 281*af87fb4bSXin Li annotation class Anno2 282*af87fb4bSXin Li annotation class Anno3 283*af87fb4bSXin Li annotation class Anno4 284*af87fb4bSXin Li 285*af87fb4bSXin Li @Anno1 286*af87fb4bSXin Li class KotlinLibClass<T1>(val p1: List<T1>, val p2: Int) { 287*af87fb4bSXin Li val p3: Int = 0 288*af87fb4bSXin Li fun f1(p4: T1): Int = 0 289*af87fb4bSXin Li fun f2(p5: List<T1>): Int = 0 290*af87fb4bSXin Li fun f3(p6: List<Int>): Int = 0 291*af87fb4bSXin Li } 292*af87fb4bSXin Li 293*af87fb4bSXin Li // FILE: JavaLib.java 294*af87fb4bSXin Li package foo.bar; 295*af87fb4bSXin Li 296*af87fb4bSXin Li import java.util.ArrayList; 297*af87fb4bSXin Li 298*af87fb4bSXin Li @Anno2 299*af87fb4bSXin Li class JavaLib<T2> { 300*af87fb4bSXin Li Byte javaLibField = 0; 301*af87fb4bSXin Li Byte javaLibFunction() { 302*af87fb4bSXin Li return 0; 303*af87fb4bSXin Li } 304*af87fb4bSXin Li Byte f1(T2 p0, ArrayList<T2> p1) { 305*af87fb4bSXin Li return 0; 306*af87fb4bSXin Li } 307*af87fb4bSXin Li } 308*af87fb4bSXin Li 309*af87fb4bSXin Li // MODULE: main(module1) 310*af87fb4bSXin Li // FILE: KotlinSrc.kt 311*af87fb4bSXin Li package foo.bar 312*af87fb4bSXin Li val kotlinSrcProperty: Short = 0 kotlinSrcFuntionnull313*af87fb4bSXin Lifun kotlinSrcFuntion(): Short = 0 314*af87fb4bSXin Li 315*af87fb4bSXin Li @Anno3 316*af87fb4bSXin Li class KotlinSrcClass<T3>(val q1: Set<T3>, val q2: Short) { 317*af87fb4bSXin Li val q3: Short = 0 318*af87fb4bSXin Li fun g1(q4: T3): Short = 0 319*af87fb4bSXin Li fun g2(q5: Set<T3>): Short = 0 320*af87fb4bSXin Li fun g3(q6: Set<Short>): Short = 0 321*af87fb4bSXin Li } 322*af87fb4bSXin Li 323*af87fb4bSXin Li // FILE: JavaSrc.java 324*af87fb4bSXin Li package foo.bar; 325*af87fb4bSXin Li 326*af87fb4bSXin Li import java.util.LinkedList; 327*af87fb4bSXin Li 328*af87fb4bSXin Li @Anno4 329*af87fb4bSXin Li class JavaSrc { 330*af87fb4bSXin Li Long javaSrcField = 0; 331*af87fb4bSXin Li Long javaSrcFunction() { 332*af87fb4bSXin Li return 0; 333*af87fb4bSXin Li } 334*af87fb4bSXin Li Long f2<T4>(T4 p0, LinkedList<T4> p1) { 335*af87fb4bSXin Li return 0; 336*af87fb4bSXin Li } 337*af87fb4bSXin Li } 338*af87fb4bSXin Li 339