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