1*af87fb4bSXin Li /* 2*af87fb4bSXin Li * Copyright 2022 Google LLC 3*af87fb4bSXin Li * Copyright 2010-2022 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: DeclarationOrderProcessor 20*af87fb4bSXin Li // EXPECTED: 21*af87fb4bSXin Li // lib.KotlinClass 22*af87fb4bSXin Li // b:Ljava/lang/String; 23*af87fb4bSXin Li // a:Ljava/lang/String; 24*af87fb4bSXin Li // c:Ljava/lang/String; 25*af87fb4bSXin Li // isB:Ljava/lang/String; 26*af87fb4bSXin Li // isA:Ljava/lang/String; 27*af87fb4bSXin Li // isC:Ljava/lang/String; 28*af87fb4bSXin Li // noBackingB:Ljava/lang/String; 29*af87fb4bSXin Li // noBackingA:Ljava/lang/String; 30*af87fb4bSXin Li // noBackingC:Ljava/lang/String; 31*af87fb4bSXin Li // noBackingVarB:Ljava/lang/String; 32*af87fb4bSXin Li // noBackingVarA:Ljava/lang/String; 33*af87fb4bSXin Li // noBackingVarC:Ljava/lang/String; 34*af87fb4bSXin Li // overloaded:(Ljava/lang/String;)Ljava/lang/String; 35*af87fb4bSXin Li // overloaded:(I)Ljava/lang/String; 36*af87fb4bSXin Li // overloaded:()Ljava/lang/String; 37*af87fb4bSXin Li // overloaded:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; 38*af87fb4bSXin Li // <init>:()V 39*af87fb4bSXin Li // lib.JavaClass 40*af87fb4bSXin Li // b:Ljava/lang/String; 41*af87fb4bSXin Li // a:Ljava/lang/String; 42*af87fb4bSXin Li // c:Ljava/lang/String; 43*af87fb4bSXin Li // overloaded:(Ljava/lang/String;)V 44*af87fb4bSXin Li // overloaded:(I)V 45*af87fb4bSXin Li // overloaded:()V 46*af87fb4bSXin Li // overloaded:(Ljava/lang/String;Ljava/lang/String;)V 47*af87fb4bSXin Li // <init>:()V 48*af87fb4bSXin Li // KotlinClass 49*af87fb4bSXin Li // b:Ljava/lang/String; 50*af87fb4bSXin Li // a:Ljava/lang/String; 51*af87fb4bSXin Li // c:Ljava/lang/String; 52*af87fb4bSXin Li // isB:Ljava/lang/String; 53*af87fb4bSXin Li // isA:Ljava/lang/String; 54*af87fb4bSXin Li // isC:Ljava/lang/String; 55*af87fb4bSXin Li // noBackingB:Ljava/lang/String; 56*af87fb4bSXin Li // noBackingA:Ljava/lang/String; 57*af87fb4bSXin Li // noBackingC:Ljava/lang/String; 58*af87fb4bSXin Li // noBackingVarB:Ljava/lang/String; 59*af87fb4bSXin Li // noBackingVarA:Ljava/lang/String; 60*af87fb4bSXin Li // noBackingVarC:Ljava/lang/String; 61*af87fb4bSXin Li // overloaded:(Ljava/lang/String;)Ljava/lang/String; 62*af87fb4bSXin Li // overloaded:(I)Ljava/lang/String; 63*af87fb4bSXin Li // overloaded:()Ljava/lang/String; 64*af87fb4bSXin Li // overloaded:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; 65*af87fb4bSXin Li // <init>:()V 66*af87fb4bSXin Li // JavaClass 67*af87fb4bSXin Li // b:Ljava/lang/String; 68*af87fb4bSXin Li // a:Ljava/lang/String; 69*af87fb4bSXin Li // c:Ljava/lang/String; 70*af87fb4bSXin Li // overloaded:(Ljava/lang/String;)V 71*af87fb4bSXin Li // overloaded:(I)V 72*af87fb4bSXin Li // overloaded:()V 73*af87fb4bSXin Li // overloaded:(Ljava/lang/String;Ljava/lang/String;)V 74*af87fb4bSXin Li // <init>:()V 75*af87fb4bSXin Li // END 76*af87fb4bSXin Li // MODULE: module1 77*af87fb4bSXin Li // FILE: lib/KotlinClass.kt 78*af87fb4bSXin Li package lib; 79*af87fb4bSXin Li class KotlinClass { 80*af87fb4bSXin Li val b: String = TODO() 81*af87fb4bSXin Li val a: String = TODO() 82*af87fb4bSXin Li val c: String = TODO() 83*af87fb4bSXin Li val isB:String = TODO() 84*af87fb4bSXin Li val isA:String = TODO() 85*af87fb4bSXin Li val isC:String = TODO() 86*af87fb4bSXin Li val noBackingB: String 87*af87fb4bSXin Li get() = "" 88*af87fb4bSXin Li val noBackingA: String 89*af87fb4bSXin Li get() = "" 90*af87fb4bSXin Li val noBackingC: String 91*af87fb4bSXin Li get() = "" 92*af87fb4bSXin Li var noBackingVarB: String 93*af87fb4bSXin Li get() = "" 94*af87fb4bSXin Li set(value) {} 95*af87fb4bSXin Li var noBackingVarA: String 96*af87fb4bSXin Li get() = "" 97*af87fb4bSXin Li set(value) {} 98*af87fb4bSXin Li var noBackingVarC: String 99*af87fb4bSXin Li get() = "" 100*af87fb4bSXin Li set(value) {} overloadednull101*af87fb4bSXin Li fun overloaded(x:String): String = TODO() 102*af87fb4bSXin Li fun overloaded(x:Int): String = TODO() 103*af87fb4bSXin Li fun overloaded(): String = TODO() 104*af87fb4bSXin Li fun overloaded(x:String, y:String): String = TODO() 105*af87fb4bSXin Li } 106*af87fb4bSXin Li // FILE: lib/JavaClass.java 107*af87fb4bSXin Li package lib; 108*af87fb4bSXin Li public class JavaClass { 109*af87fb4bSXin Li // notice the non alphabetic order, which is triggering the problem 110*af87fb4bSXin Li String b = ""; 111*af87fb4bSXin Li String a = ""; 112*af87fb4bSXin Li String c = ""; 113*af87fb4bSXin Li void overloaded(String x) {} 114*af87fb4bSXin Li void overloaded(int x) {} 115*af87fb4bSXin Li void overloaded() {} 116*af87fb4bSXin Li void overloaded(String x, String y) {} 117*af87fb4bSXin Li } 118*af87fb4bSXin Li // MODULE: main(module1) 119*af87fb4bSXin Li // FILE: main.kt 120*af87fb4bSXin Li class KotlinClass { 121*af87fb4bSXin Li val b: String? = TODO() 122*af87fb4bSXin Li val a: String = TODO() 123*af87fb4bSXin Li val c: String? = TODO() 124*af87fb4bSXin Li val isB:String = TODO() 125*af87fb4bSXin Li val isA:String = TODO() 126*af87fb4bSXin Li val isC:String = TODO() 127*af87fb4bSXin Li val noBackingB: String 128*af87fb4bSXin Li get() = "" 129*af87fb4bSXin Li val noBackingA: String 130*af87fb4bSXin Li get() = "" 131*af87fb4bSXin Li val noBackingC: String 132*af87fb4bSXin Li get() = "" 133*af87fb4bSXin Li var noBackingVarB: String 134*af87fb4bSXin Li get() = "" 135*af87fb4bSXin Li set(value) {} 136*af87fb4bSXin Li var noBackingVarA: String 137*af87fb4bSXin Li get() = "" 138*af87fb4bSXin Li set(value) {} 139*af87fb4bSXin Li var noBackingVarC: String 140*af87fb4bSXin Li get() = "" 141*af87fb4bSXin Li set(value) {} overloadednull142*af87fb4bSXin Li fun overloaded(x:String): String = TODO() 143*af87fb4bSXin Li fun overloaded(x:Int): String = TODO() 144*af87fb4bSXin Li fun overloaded(): String = TODO() 145*af87fb4bSXin Li fun overloaded(x:String, y:String): String = TODO() 146*af87fb4bSXin Li } 147*af87fb4bSXin Li // FILE: JavaClass.java 148*af87fb4bSXin Li public class JavaClass { 149*af87fb4bSXin Li String b = ""; 150*af87fb4bSXin Li String a = ""; 151*af87fb4bSXin Li String c = ""; 152*af87fb4bSXin Li void overloaded(String x) {} 153*af87fb4bSXin Li void overloaded(int x) {} 154*af87fb4bSXin Li void overloaded() {} 155*af87fb4bSXin Li void overloaded(String x, String y) {} 156*af87fb4bSXin Li } 157