/* * Copyright 2020 Google LLC * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // TEST PROCESSOR: LibOriginsProcessor // EXPECTED: // annotation: Anno1: KOTLIN_LIB // annotation: Anno2: JAVA_LIB // annotation: Anno3: KOTLIN // annotation: Anno4: JAVA // classifier ref: Anno1: KOTLIN_LIB // classifier ref: Anno1: KOTLIN_LIB // classifier ref: Anno2: JAVA_LIB // classifier ref: Anno2: KOTLIN_LIB // classifier ref: Anno3: KOTLIN // classifier ref: Anno3: KOTLIN_LIB // classifier ref: Anno4: JAVA // classifier ref: Anno4: KOTLIN_LIB // classifier ref: Annotation: KOTLIN_LIB // classifier ref: Annotation: KOTLIN_LIB // classifier ref: Annotation: KOTLIN_LIB // classifier ref: Annotation: KOTLIN_LIB // classifier ref: Any: JAVA_LIB // classifier ref: Any: JAVA_LIB // classifier ref: Any: JAVA_LIB // classifier ref: Any: KOTLIN_LIB // classifier ref: Any: KOTLIN_LIB // classifier ref: Any: KOTLIN_LIB // classifier ref: ArrayList<(T2..T2?)>: JAVA_LIB // classifier ref: Byte: JAVA_LIB // classifier ref: Byte: JAVA_LIB // classifier ref: Byte: JAVA_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: Int: KOTLIN_LIB // classifier ref: JavaLib: JAVA_LIB // classifier ref: JavaLib: JAVA_LIB // classifier ref: JavaLib: JAVA_LIB // classifier ref: JavaLib: JAVA_LIB // classifier ref: KotlinLibClass: KOTLIN_LIB // classifier ref: KotlinLibClass: KOTLIN_LIB // classifier ref: KotlinLibClass: KOTLIN_LIB // classifier ref: KotlinLibClass: KOTLIN_LIB // classifier ref: KotlinLibClass: KOTLIN_LIB // classifier ref: KotlinLibClass: KOTLIN_LIB // classifier ref: KotlinLibClass: KOTLIN_LIB // classifier ref: KotlinSrcClass: SYNTHETIC // classifier ref: List: KOTLIN_LIB // classifier ref: List: KOTLIN_LIB // classifier ref: List: KOTLIN_LIB // classifier ref: List: KOTLIN_LIB // classifier ref: List: KOTLIN_LIB // classifier ref: Long: JAVA // classifier ref: Long: JAVA // classifier ref: Long: JAVA // classifier ref: Object: JAVA // classifier ref: Set: KOTLIN // classifier ref: Set: KOTLIN // classifier ref: Set: KOTLIN // classifier ref: Set: KOTLIN // classifier ref: Set: SYNTHETIC // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: KOTLIN // classifier ref: Short: SYNTHETIC // classifier ref: Short: SYNTHETIC // classifier ref: Short: SYNTHETIC // classifier ref: T1: KOTLIN_LIB // classifier ref: T1: KOTLIN_LIB // classifier ref: T1: KOTLIN_LIB // classifier ref: T1: KOTLIN_LIB // classifier ref: T1: KOTLIN_LIB // classifier ref: T1: KOTLIN_LIB // classifier ref: T2: JAVA_LIB // classifier ref: T2: JAVA_LIB // classifier ref: T2: JAVA_LIB // classifier ref: T3: KOTLIN // classifier ref: T3: KOTLIN // classifier ref: T3: KOTLIN // classifier ref: T3: KOTLIN // classifier ref: T3: SYNTHETIC // classifier ref: T4: JAVA // classifier ref: T4: JAVA // declaration: : KOTLIN // declaration: foo.bar.Anno1.: KOTLIN_LIB // declaration: foo.bar.Anno1: KOTLIN_LIB // declaration: foo.bar.Anno2.: KOTLIN_LIB // declaration: foo.bar.Anno2: KOTLIN_LIB // declaration: foo.bar.Anno3.: KOTLIN_LIB // declaration: foo.bar.Anno3: KOTLIN_LIB // declaration: foo.bar.Anno4.: KOTLIN_LIB // declaration: foo.bar.Anno4: KOTLIN_LIB // declaration: foo.bar.JavaLib.: JAVA_LIB // declaration: foo.bar.JavaLib.T2: JAVA_LIB // declaration: foo.bar.JavaLib.T2: JAVA_LIB // declaration: foo.bar.JavaLib.f1: JAVA_LIB // declaration: foo.bar.JavaLib.javaLibField: JAVA_LIB // declaration: foo.bar.JavaLib.javaLibFunction: JAVA_LIB // declaration: foo.bar.JavaLib: JAVA_LIB // declaration: foo.bar.JavaSrc.: SYNTHETIC // declaration: foo.bar.JavaSrc.LinkedList: JAVA // declaration: foo.bar.JavaSrc.f2: JAVA // declaration: foo.bar.JavaSrc.javaSrcField: JAVA // declaration: foo.bar.JavaSrc.javaSrcFunction: JAVA // declaration: foo.bar.JavaSrc.p0: JAVA // declaration: foo.bar.JavaSrc: JAVA // declaration: foo.bar.KotlinLibClass.: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.T1: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.T1: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.f1: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.f2: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.f3: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.p1: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.p2: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass.p3: KOTLIN_LIB // declaration: foo.bar.KotlinLibClass: KOTLIN_LIB // declaration: foo.bar.KotlinSrcClass.T3: KOTLIN // declaration: foo.bar.KotlinSrcClass.g1: KOTLIN // declaration: foo.bar.KotlinSrcClass.g2: KOTLIN // declaration: foo.bar.KotlinSrcClass.g3: KOTLIN // declaration: foo.bar.KotlinSrcClass.q1: KOTLIN // declaration: foo.bar.KotlinSrcClass.q2: KOTLIN // declaration: foo.bar.KotlinSrcClass.q3: KOTLIN // declaration: foo.bar.KotlinSrcClass: KOTLIN // declaration: foo.bar.kotlinLibFuntion: KOTLIN_LIB // declaration: foo.bar.kotlinLibProperty: KOTLIN_LIB // declaration: foo.bar.kotlinSrcFuntion: KOTLIN // declaration: foo.bar.kotlinSrcProperty: KOTLIN // property accessor: kotlinLibProperty.getter(): KOTLIN_LIB // property accessor: kotlinSrcProperty.getter(): SYNTHETIC // property accessor: p1.getter(): KOTLIN_LIB // property accessor: p2.getter(): KOTLIN_LIB // property accessor: p3.getter(): KOTLIN_LIB // property accessor: q1.getter(): SYNTHETIC // property accessor: q2.getter(): SYNTHETIC // property accessor: q3.getter(): SYNTHETIC // reference: Anno1: KOTLIN_LIB // reference: Anno1: KOTLIN_LIB // reference: Anno2: JAVA_LIB // reference: Anno2: KOTLIN_LIB // reference: Anno3: KOTLIN // reference: Anno3: KOTLIN_LIB // reference: Anno4: JAVA // reference: Anno4: KOTLIN_LIB // reference: Annotation: KOTLIN_LIB // reference: Annotation: KOTLIN_LIB // reference: Annotation: KOTLIN_LIB // reference: Annotation: KOTLIN_LIB // reference: Any: JAVA_LIB // reference: Any: JAVA_LIB // reference: Any: JAVA_LIB // reference: Any: KOTLIN_LIB // reference: Any: KOTLIN_LIB // reference: Any: KOTLIN_LIB // reference: Any: SYNTHETIC // reference: Any?: SYNTHETIC // reference: ArrayList<(T2..T2?)>: JAVA_LIB // reference: Byte: JAVA_LIB // reference: Byte: JAVA_LIB // reference: Byte: JAVA_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: Int: KOTLIN_LIB // reference: JavaLib: JAVA_LIB // reference: JavaSrc: SYNTHETIC // reference: KotlinLibClass: KOTLIN_LIB // reference: KotlinSrcClass: KOTLIN // reference: List: KOTLIN_LIB // reference: List: KOTLIN_LIB // reference: List: KOTLIN_LIB // reference: List: KOTLIN_LIB // reference: List: KOTLIN_LIB // reference: Long: JAVA // reference: Long: JAVA // reference: Long: JAVA // reference: Object: JAVA // reference: Set: KOTLIN // reference: Set: KOTLIN // reference: Set: KOTLIN // reference: Set: KOTLIN // reference: Set: SYNTHETIC // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: KOTLIN // reference: Short: SYNTHETIC // reference: Short: SYNTHETIC // reference: Short: SYNTHETIC // reference: T1: KOTLIN_LIB // reference: T1: KOTLIN_LIB // reference: T1: KOTLIN_LIB // reference: T1: KOTLIN_LIB // reference: T1: KOTLIN_LIB // reference: T1: KOTLIN_LIB // reference: T2: JAVA_LIB // reference: T2: JAVA_LIB // reference: T2: JAVA_LIB // reference: T3: KOTLIN // reference: T3: KOTLIN // reference: T3: KOTLIN // reference: T3: KOTLIN // reference: T3: SYNTHETIC // reference: T4: JAVA // reference: T4: JAVA // type arg: INVARIANT Int: KOTLIN_LIB // type arg: INVARIANT Short: KOTLIN // type arg: INVARIANT T1: KOTLIN_LIB // type arg: INVARIANT T1: KOTLIN_LIB // type arg: INVARIANT T1: KOTLIN_LIB // type arg: INVARIANT T1: KOTLIN_LIB // type arg: INVARIANT T1: KOTLIN_LIB // type arg: INVARIANT T2: JAVA_LIB // type arg: INVARIANT T2: JAVA_LIB // type arg: INVARIANT T3: KOTLIN // type arg: INVARIANT T3: KOTLIN // type arg: INVARIANT T3: KOTLIN // type arg: INVARIANT T3: SYNTHETIC // value param: p0: JAVA_LIB // value param: p1: JAVA_LIB // value param: p1: KOTLIN_LIB // value param: p2: KOTLIN_LIB // value param: p4: KOTLIN_LIB // value param: p5: KOTLIN_LIB // value param: p6: KOTLIN_LIB // value param: q1: KOTLIN // value param: q2: KOTLIN // value param: q4: KOTLIN // value param: q5: KOTLIN // value param: q6: KOTLIN // END // MODULE: module1 // FILE: KotlinLib.kt package foo.bar val kotlinLibProperty: Int = 0 fun kotlinLibFuntion(): Int = 0 annotation class Anno1 annotation class Anno2 annotation class Anno3 annotation class Anno4 @Anno1 class KotlinLibClass(val p1: List, val p2: Int) { val p3: Int = 0 fun f1(p4: T1): Int = 0 fun f2(p5: List): Int = 0 fun f3(p6: List): Int = 0 } // FILE: JavaLib.java package foo.bar; import java.util.ArrayList; @Anno2 class JavaLib { Byte javaLibField = 0; Byte javaLibFunction() { return 0; } Byte f1(T2 p0, ArrayList p1) { return 0; } } // MODULE: main(module1) // FILE: KotlinSrc.kt package foo.bar val kotlinSrcProperty: Short = 0 fun kotlinSrcFuntion(): Short = 0 @Anno3 class KotlinSrcClass(val q1: Set, val q2: Short) { val q3: Short = 0 fun g1(q4: T3): Short = 0 fun g2(q5: Set): Short = 0 fun g3(q6: Set): Short = 0 } // FILE: JavaSrc.java package foo.bar; import java.util.LinkedList; @Anno4 class JavaSrc { Long javaSrcField = 0; Long javaSrcFunction() { return 0; } Long f2(T4 p0, LinkedList p1) { return 0; } }