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: MangledNamesProcessor 20 // EXPECTED: 21 // JavaEnum -> declarations 22 // JavaEnum.VAL1 -> declarations 23 // JavaEnum.VAL2 -> declarations 24 // values -> values 25 // valueOf -> valueOf 26 // <init> -> <init> 27 // JavaInput -> declarations 28 // javaFunction -> javaFunction 29 // staticJavaFunction -> staticJavaFunction 30 // getX -> getX 31 // getY -> getY 32 // setY -> setY 33 // mainPackage.Foo -> declarations 34 // get-normalProp -> getNormalProp 35 // set-normalProp -> setNormalProp 36 // get-inlineProp -> getInlineProp-HRn7Rpw 37 // set-inlineProp -> setInlineProp-E03SJzc 38 // get-internalProp -> getInternalProp$mainModule 39 // set-internalProp -> setInternalProp$mainModule 40 // get-internalInlineProp -> getInternalInlineProp-HRn7Rpw$mainModule 41 // set-internalInlineProp -> setInternalInlineProp-E03SJzc$mainModule 42 // get-jvmNameProp -> explicitGetterName 43 // set-jvmNameProp -> explicitSetterName 44 // normalFun -> normalFun 45 // hasJvmName -> explicitJvmName 46 // inlineReceivingFun -> inlineReceivingFun-E03SJzc 47 // inlineReturningFun -> inlineReturningFun-HRn7Rpw 48 // internalInlineReceivingFun -> internalInlineReceivingFun-E03SJzc$mainModule 49 // internalInlineReturningFun -> internalInlineReturningFun-HRn7Rpw$mainModule 50 // mainPackage.AbstractKotlinClass -> declarations 51 // get-abstractVar -> getAbstractVar 52 // set-abstractVar -> setAbstractVar 53 // get-abstractVal -> getAbstractVal 54 // get-internalAbstractVar -> getInternalAbstractVar$mainModule 55 // set-internalAbstractVar -> setInternalAbstractVar$mainModule 56 // get-internalAbstractVal -> getInternalAbstractVal$mainModule 57 // set-internalAbstractVal -> setInternalAbstractVal$mainModule 58 // fileLevelInternalFun -> fileLevelInternalFun 59 // fileLevelInlineReceivingFun -> fileLevelInlineReceivingFun-E03SJzc 60 // fileLevelInlineReturningFun -> fileLevelInlineReturningFun 61 // fileLevelInternalInlineReceivingFun -> fileLevelInternalInlineReceivingFun-E03SJzc 62 // fileLevelInternalInlineReturningFun -> fileLevelInternalInlineReturningFun 63 // mainPackage.MyInterface -> declarations 64 // get-x -> getX 65 // get-y -> getY 66 // set-y -> setY 67 // libPackage.Foo -> declarations 68 // get-inlineProp -> getInlineProp-b_MPbnQ 69 // set-inlineProp -> setInlineProp-mQ73O9w 70 // get-internalInlineProp -> getInternalInlineProp-b_MPbnQ$lib 71 // set-internalInlineProp -> setInternalInlineProp-mQ73O9w$lib 72 // get-internalProp -> getInternalProp$lib 73 // set-internalProp -> setInternalProp$lib 74 // get-jvmNameProp -> explicitGetterName 75 // set-jvmNameProp -> explicitSetterName 76 // get-normalProp -> getNormalProp 77 // set-normalProp -> setNormalProp 78 // hasJvmName -> explicitJvmName 79 // inlineReceivingFun -> inlineReceivingFun-mQ73O9w 80 // inlineReturningFun -> inlineReturningFun-b_MPbnQ 81 // internalInlineReceivingFun -> internalInlineReceivingFun-mQ73O9w$lib 82 // internalInlineReturningFun -> internalInlineReturningFun-b_MPbnQ$lib 83 // normalFun -> normalFun 84 // <init> -> <init> 85 // libPackage.AbstractKotlinClass -> declarations 86 // get-abstractVal -> getAbstractVal 87 // get-abstractVar -> getAbstractVar 88 // set-abstractVar -> setAbstractVar 89 // get-internalAbstractVal -> getInternalAbstractVal$lib 90 // set-internalAbstractVal -> setInternalAbstractVal$lib 91 // get-internalAbstractVar -> getInternalAbstractVar$lib 92 // set-internalAbstractVar -> setInternalAbstractVar$lib 93 // libPackage.MyInterface -> declarations 94 // get-x -> getX 95 // get-y -> getY 96 // set-y -> setY 97 // END 98 // MODULE: lib 99 // FILE: input.kt 100 /** 101 * control group 102 */ 103 package libPackage; 104 inline class Inline1(val value:String) 105 class Foo { 106 var normalProp:String = TODO() 107 var inlineProp: Inline1 = TODO() 108 internal var internalProp: String = TODO() 109 internal var internalInlineProp: Inline1 = TODO() 110 @get:JvmName("explicitGetterName") 111 @set:JvmName("explicitSetterName") 112 var jvmNameProp:String normalFunnull113 fun normalFun() {} 114 @JvmName("explicitJvmName") hasJvmNamenull115 fun hasJvmName() {} inlineReceivingFunnull116 fun inlineReceivingFun(value: Inline1) {} inlineReturningFunnull117 fun inlineReturningFun(): Inline1 = TODO() 118 internal fun internalInlineReceivingFun(value: Inline1) {} internalInlineReturningFunnull119 internal fun internalInlineReturningFun(): Inline1 = TODO() 120 } 121 122 abstract class AbstractKotlinClass { 123 abstract var abstractVar:String 124 abstract val abstractVal:String 125 internal abstract var internalAbstractVar:String 126 internal abstract var internalAbstractVal:String 127 } 128 129 interface MyInterface { 130 val x:Int 131 var y:Int 132 } 133 // MODULE: mainModule(lib) 134 // FILE: input.kt 135 package mainPackage; 136 inline class Inline1(val value:String) 137 class Foo { 138 var normalProp:String = TODO() 139 var inlineProp: Inline1 = TODO() 140 internal var internalProp: String = TODO() 141 internal var internalInlineProp: Inline1 = TODO() 142 @get:JvmName("explicitGetterName") 143 @set:JvmName("explicitSetterName") 144 var jvmNameProp:String normalFunnull145 fun normalFun() {} 146 @JvmName("explicitJvmName") hasJvmNamenull147 fun hasJvmName() {} inlineReceivingFunnull148 fun inlineReceivingFun(value: Inline1) {} inlineReturningFunnull149 fun inlineReturningFun(): Inline1 = TODO() 150 internal fun internalInlineReceivingFun(value: Inline1) {} internalInlineReturningFunnull151 internal fun internalInlineReturningFun(): Inline1 = TODO() 152 } 153 154 abstract class AbstractKotlinClass { 155 abstract var abstractVar:String 156 abstract val abstractVal:String 157 internal abstract var internalAbstractVar:String 158 internal abstract var internalAbstractVal:String 159 } 160 fileLevelInternalFunnull161internal fun fileLevelInternalFun(): Unit = TODO() 162 fun fileLevelInlineReceivingFun(inline1: Inline1): Unit = TODO() 163 fun fileLevelInlineReturningFun(): Inline1 = TODO() 164 fun fileLevelInternalInlineReceivingFun(inline1: Inline1): Unit = TODO() 165 fun fileLevelInternalInlineReturningFun(): Inline1 = TODO() 166 167 interface MyInterface { 168 val x:Int 169 var y:Int 170 } 171 172 // FILE: JavaInput.java 173 import mainPackage.MyInterface; 174 175 class JavaInput implements MyInterface { 176 String javaField; 177 String javaFunction() {} 178 static String staticJavaField; <lambda>null179 static void staticJavaFunction() {} <lambda>null180 public int getX() { 181 return 1; 182 } <lambda>null183 public int getY() { 184 return 1; 185 } 186 public void setY(int value) { 187 } 188 } 189 190 // FILE: JavaEnum.java 191 public enum JavaEnum { 192 VAL1, 193 VAL2; 194 } 195