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