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 // WITH_RUNTIME 19*af87fb4bSXin Li // TEST PROCESSOR: TopLevelMemberProcessor 20*af87fb4bSXin Li // EXPECTED: 21*af87fb4bSXin Li // lib : <init> -> lib.LibJavaClass 22*af87fb4bSXin Li // lib : <init> -> lib.RealLibClass 23*af87fb4bSXin Li // lib : <init> -> lib.RealLibClass$Companion 24*af87fb4bSXin Li // lib : functionInLib -> lib.LibKt 25*af87fb4bSXin Li // lib : functionInLibCompanion -> lib.RealLibClass$Companion 26*af87fb4bSXin Li // lib : functionInLibJvmName -> lib.LibCustomClassName 27*af87fb4bSXin Li // lib : functionInLibRealClass -> lib.RealLibClass 28*af87fb4bSXin Li // lib : javaFieldInLib -> lib.LibJavaClass 29*af87fb4bSXin Li // lib : javaMethodInLib -> lib.LibJavaClass 30*af87fb4bSXin Li // lib : jvmStaticFunctionInLibCompanion -> lib.RealLibClass$Companion 31*af87fb4bSXin Li // lib : jvmStaticValueInLibCompanion -> lib.RealLibClass$Companion 32*af87fb4bSXin Li // lib : jvmStaticVariableInLibCompanion -> lib.RealLibClass$Companion 33*af87fb4bSXin Li // lib : valueInLib -> lib.LibKt 34*af87fb4bSXin Li // lib : valueInLibCompanion -> lib.RealLibClass$Companion 35*af87fb4bSXin Li // lib : valueInLibJvmName -> lib.LibCustomClassName 36*af87fb4bSXin Li // lib : valueInLibRealClass -> lib.RealLibClass 37*af87fb4bSXin Li // lib : variableInLib -> lib.LibKt 38*af87fb4bSXin Li // lib : variableInLibCompanion -> lib.RealLibClass$Companion 39*af87fb4bSXin Li // lib : variableInLibJvmName -> lib.LibCustomClassName 40*af87fb4bSXin Li // lib : variableInLibRealClass -> lib.RealLibClass 41*af87fb4bSXin Li // main : <init> -> main.MainJavaClass 42*af87fb4bSXin Li // main : <init> -> main.RealMainClass 43*af87fb4bSXin Li // main : <init> -> main.RealMainClass$Companion 44*af87fb4bSXin Li // main : functionInMain -> main.MainKt 45*af87fb4bSXin Li // main : functionInMainCompanion -> main.RealMainClass$Companion 46*af87fb4bSXin Li // main : functionInMainJvmName -> main.MainCustomClassName 47*af87fb4bSXin Li // main : functionInMainRealClass -> main.RealMainClass 48*af87fb4bSXin Li // main : javaFieldInMain -> main.MainJavaClass 49*af87fb4bSXin Li // main : javaMethodInMain -> main.MainJavaClass 50*af87fb4bSXin Li // main : jvmStaticFunctionInMainCompanion -> main.RealMainClass$Companion 51*af87fb4bSXin Li // main : jvmStaticValueInMainCompanion -> main.RealMainClass$Companion 52*af87fb4bSXin Li // main : jvmStaticVariableInMainCompanion -> main.RealMainClass$Companion 53*af87fb4bSXin Li // main : valueInMain -> main.MainKt 54*af87fb4bSXin Li // main : valueInMainCompanion -> main.RealMainClass$Companion 55*af87fb4bSXin Li // main : valueInMainJvmName -> main.MainCustomClassName 56*af87fb4bSXin Li // main : valueInMainRealClass -> main.RealMainClass 57*af87fb4bSXin Li // main : variableInMain -> main.MainKt 58*af87fb4bSXin Li // main : variableInMainCompanion -> main.RealMainClass$Companion 59*af87fb4bSXin Li // main : variableInMainJvmName -> main.MainCustomClassName 60*af87fb4bSXin Li // main : variableInMainRealClass -> main.RealMainClass 61*af87fb4bSXin Li // END 62*af87fb4bSXin Li 63*af87fb4bSXin Li // MODULE: lib 64*af87fb4bSXin Li // FILE: lib.kt 65*af87fb4bSXin Li package lib functionInLibnull66*af87fb4bSXin Lifun functionInLib() {} 67*af87fb4bSXin Li val valueInLib: String = "" 68*af87fb4bSXin Li var variableInLib: String = "" 69*af87fb4bSXin Li class RealLibClass { functionInLibRealClassnull70*af87fb4bSXin Li fun functionInLibRealClass() {} 71*af87fb4bSXin Li val valueInLibRealClass: String = "" 72*af87fb4bSXin Li var variableInLibRealClass: String = "" 73*af87fb4bSXin Li 74*af87fb4bSXin Li companion object { functionInLibCompanionnull75*af87fb4bSXin Li fun functionInLibCompanion() {} 76*af87fb4bSXin Li val valueInLibCompanion: String = "" 77*af87fb4bSXin Li var variableInLibCompanion: String = "" 78*af87fb4bSXin Li @JvmStatic jvmStaticFunctionInLibCompanionnull79*af87fb4bSXin Li fun jvmStaticFunctionInLibCompanion() {} 80*af87fb4bSXin Li @JvmStatic 81*af87fb4bSXin Li val jvmStaticValueInLibCompanion: String = "" 82*af87fb4bSXin Li @JvmStatic 83*af87fb4bSXin Li var jvmStaticVariableInLibCompanion: String = "" 84*af87fb4bSXin Li } 85*af87fb4bSXin Li } 86*af87fb4bSXin Li // FILE: customName.kt 87*af87fb4bSXin Li @file:JvmName("LibCustomClassName") 88*af87fb4bSXin Li package lib functionInLibJvmNamenull89*af87fb4bSXin Lifun functionInLibJvmName() {} 90*af87fb4bSXin Li val valueInLibJvmName: String = "" 91*af87fb4bSXin Li var variableInLibJvmName: String = "" 92*af87fb4bSXin Li 93*af87fb4bSXin Li // FILE: lib/LibJavaClass.java 94*af87fb4bSXin Li package lib; 95*af87fb4bSXin Li public class LibJavaClass { 96*af87fb4bSXin Li public LibJavaClass() {} 97*af87fb4bSXin Li private String javaFieldInLib; <lambda>null98*af87fb4bSXin Li private void javaMethodInLib() { 99*af87fb4bSXin Li } 100*af87fb4bSXin Li } 101*af87fb4bSXin Li 102*af87fb4bSXin Li // MODULE: main(lib) 103*af87fb4bSXin Li // FILE: main.kt 104*af87fb4bSXin Li package main functionInMainnull105*af87fb4bSXin Lifun functionInMain() {} 106*af87fb4bSXin Li val valueInMain: String = "" 107*af87fb4bSXin Li var variableInMain: String = "" 108*af87fb4bSXin Li class RealMainClass { functionInMainRealClassnull109*af87fb4bSXin Li fun functionInMainRealClass() {} 110*af87fb4bSXin Li val valueInMainRealClass: String = "" 111*af87fb4bSXin Li var variableInMainRealClass: String = "" 112*af87fb4bSXin Li 113*af87fb4bSXin Li companion object { functionInMainCompanionnull114*af87fb4bSXin Li fun functionInMainCompanion() {} 115*af87fb4bSXin Li val valueInMainCompanion: String = "" 116*af87fb4bSXin Li var variableInMainCompanion: String = "" 117*af87fb4bSXin Li @JvmStatic jvmStaticFunctionInMainCompanionnull118*af87fb4bSXin Li fun jvmStaticFunctionInMainCompanion() {} 119*af87fb4bSXin Li @JvmStatic 120*af87fb4bSXin Li val jvmStaticValueInMainCompanion: String = "" 121*af87fb4bSXin Li @JvmStatic 122*af87fb4bSXin Li var jvmStaticVariableInMainCompanion: String = "" 123*af87fb4bSXin Li } 124*af87fb4bSXin Li } 125*af87fb4bSXin Li // FILE: customName.kt 126*af87fb4bSXin Li @file:JvmName("MainCustomClassName") 127*af87fb4bSXin Li package main functionInMainJvmNamenull128*af87fb4bSXin Lifun functionInMainJvmName() {} 129*af87fb4bSXin Li val valueInMainJvmName: String = "" 130*af87fb4bSXin Li var variableInMainJvmName: String = "" 131*af87fb4bSXin Li // FILE: main/MainJavaClass.java 132*af87fb4bSXin Li package main; 133*af87fb4bSXin Li public class MainJavaClass { 134*af87fb4bSXin Li public MainJavaClass() {} 135*af87fb4bSXin Li private String javaFieldInMain; <lambda>null136*af87fb4bSXin Li private void javaMethodInMain() { 137*af87fb4bSXin Li } 138*af87fb4bSXin Li } 139