Fix a bug where kotlin common classes were seen as missing dependencies
When kotlin referred to them through java signatures Java resolver ignores expect classes #KT-24185 Fixed
This commit is contained in:
+3
@@ -0,0 +1,3 @@
|
||||
package common
|
||||
|
||||
class A<T1, T2>(val t1: T1, val t2: T2)
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package j1;
|
||||
|
||||
import common.A;
|
||||
|
||||
public class Use {
|
||||
public static A<String, String> returnA() {
|
||||
return new A<String, String>("", "");
|
||||
}
|
||||
|
||||
public static void acceptA(A<String, String> a) {
|
||||
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package j1
|
||||
|
||||
fun j() {
|
||||
Use.acceptA(Use.returnA())
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package j2;
|
||||
|
||||
import common.A;
|
||||
|
||||
public class Use {
|
||||
public static A<String, String> returnA() {
|
||||
return new A<String, String>("", "");
|
||||
}
|
||||
|
||||
public static void acceptA(A<String, String> a) {
|
||||
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package j2
|
||||
|
||||
fun j() {
|
||||
Use.acceptA(Use.returnA())
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package common
|
||||
|
||||
expect class A
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package j1;
|
||||
|
||||
import common.A;
|
||||
|
||||
public class Use {
|
||||
public static void use() {
|
||||
A a = new A();
|
||||
a.id1();
|
||||
}
|
||||
|
||||
public static void acceptA(A a) {
|
||||
|
||||
}
|
||||
|
||||
public static A returnA() {
|
||||
return new A();
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package common
|
||||
|
||||
actual class A {
|
||||
fun id1() {}
|
||||
}
|
||||
|
||||
|
||||
fun use() {
|
||||
j2.Use.acceptA(j2.Use.returnA())
|
||||
j2.Use.returnA().id2()
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package j2;
|
||||
|
||||
import common.A;
|
||||
|
||||
public class Use {
|
||||
public static void use() {
|
||||
A a = new A();
|
||||
a.id2();
|
||||
}
|
||||
|
||||
public static void acceptA(A a) {
|
||||
|
||||
}
|
||||
|
||||
public static A returnA() {
|
||||
return new A();
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package common
|
||||
|
||||
actual class A {
|
||||
fun id2() {}
|
||||
}
|
||||
|
||||
|
||||
fun use() {
|
||||
j2.Use.acceptA(j2.Use.returnA())
|
||||
j2.Use.returnA().id2()
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package j;
|
||||
|
||||
import common.A;
|
||||
|
||||
public class Use {
|
||||
public static void use(A a) {
|
||||
a.id2();
|
||||
}
|
||||
|
||||
public static void acceptA(A a) {
|
||||
|
||||
}
|
||||
|
||||
public static A returnA() {
|
||||
return new A();
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package b
|
||||
|
||||
import common.A
|
||||
|
||||
fun use(a: A) {
|
||||
a.id2()
|
||||
j.Use.acceptA(j.Use.returnA())
|
||||
val a2: A = j.Use.returnA()
|
||||
a2.id2()
|
||||
j.Use.returnA().id2()
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package j;
|
||||
|
||||
import common.A;
|
||||
|
||||
public class Use {
|
||||
public static void use(A a) {
|
||||
a.id1();
|
||||
}
|
||||
|
||||
public static void acceptA(A a) {
|
||||
|
||||
}
|
||||
|
||||
public static A returnA() {
|
||||
return new A();
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package c
|
||||
|
||||
import common.A
|
||||
|
||||
fun use(a: A) {
|
||||
// errors happen when common module part appears before platform part in dependencies list
|
||||
// this is incorrect behaviour but doesn't seem to lead to user facing bugs atm
|
||||
a.<error>id1</error>()
|
||||
val a2: A = j.Use.returnA()
|
||||
a2.<error>id1</error>()
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package j;
|
||||
|
||||
import common.A;
|
||||
|
||||
public class Use {
|
||||
public static void use(A a) {
|
||||
a.id1();
|
||||
}
|
||||
|
||||
public static void acceptA(A a) {
|
||||
|
||||
}
|
||||
|
||||
public static A returnA() {
|
||||
return new A();
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package c
|
||||
|
||||
import common.A
|
||||
|
||||
fun use(a: A) {
|
||||
a.id1()
|
||||
j.Use.acceptA(j.Use.returnA())
|
||||
j.Use.returnA().id1()
|
||||
val a2: A = j.Use.returnA()
|
||||
a2.id1()
|
||||
}
|
||||
Reference in New Issue
Block a user