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