JVM_IR KT-45697 reference classes from sources before IR generation
This commit is contained in:
committed by
TeamCityServer
parent
7d211d0d9a
commit
9bf7f3af04
+25
@@ -0,0 +1,25 @@
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
private val value = "OK"
|
||||
fun f() = value
|
||||
}
|
||||
|
||||
abstract class B : A()
|
||||
|
||||
// FILE: 3.kt
|
||||
abstract class C : B()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
class D : C()
|
||||
|
||||
fun box(): String = D().f()
|
||||
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
private val value = "OK"
|
||||
fun f() = value
|
||||
}
|
||||
|
||||
abstract class B : A()
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
fun a() = "OK"
|
||||
fun b() = a()
|
||||
|
||||
// FILE: 3.kt
|
||||
fun c() = b()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
fun d() = c()
|
||||
|
||||
fun box(): String = d()
|
||||
|
||||
// FILE: 2.kt
|
||||
fun a() = "OK"
|
||||
fun b() = a()
|
||||
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
@JvmField val value: String = "OK"
|
||||
fun f() = value
|
||||
}
|
||||
|
||||
abstract class B : A()
|
||||
|
||||
// FILE: 3.kt
|
||||
abstract class C : B()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
class D : C()
|
||||
|
||||
fun box(): String = D().f()
|
||||
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
@JvmField val value: String = "OK"
|
||||
fun f() = value
|
||||
}
|
||||
|
||||
abstract class B : A()
|
||||
Vendored
+33
@@ -0,0 +1,33 @@
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected lateinit var value: String
|
||||
fun f() = value
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
init {
|
||||
value = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: 3.kt
|
||||
abstract class C : B()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
class D : C()
|
||||
|
||||
fun box(): String = D().f()
|
||||
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected lateinit var value: String
|
||||
fun f() = value
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
init {
|
||||
value = "OK"
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected val value = "OK"
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
fun f() = value
|
||||
}
|
||||
|
||||
// FILE: 3.kt
|
||||
abstract class C : B()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
class D : C()
|
||||
|
||||
fun box(): String = D().f()
|
||||
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected val value = "OK"
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
fun f() = value
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected val value = "O"
|
||||
fun f(k: String = "K") = value + k
|
||||
}
|
||||
|
||||
abstract class B : A()
|
||||
|
||||
// FILE: 3.kt
|
||||
abstract class C : B()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
class D : C()
|
||||
|
||||
fun box(): String = D().f()
|
||||
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected val value = "O"
|
||||
fun f(k: String = "K") = value + k
|
||||
}
|
||||
|
||||
abstract class B : A()
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected val value = "OK"
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
val ok get() = value
|
||||
}
|
||||
|
||||
// FILE: 3.kt
|
||||
abstract class C : B()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
class D : C()
|
||||
|
||||
fun box(): String = D().ok
|
||||
|
||||
// FILE: 2.kt
|
||||
abstract class A {
|
||||
protected val value = "OK"
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
val ok get() = value
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
class Host {
|
||||
abstract class B : A()
|
||||
|
||||
abstract class A {
|
||||
private val value = "OK"
|
||||
fun f() = value
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: 3.kt
|
||||
abstract class C : Host.B()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
class D : C()
|
||||
|
||||
fun box(): String = D().f()
|
||||
|
||||
// FILE: 2.kt
|
||||
class Host {
|
||||
abstract class B : A()
|
||||
|
||||
abstract class A {
|
||||
private val value = "OK"
|
||||
fun f() = value
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// MODULE: lib
|
||||
// FILE: 2.kt
|
||||
val a get() = "OK"
|
||||
val b get() = a
|
||||
|
||||
// FILE: 3.kt
|
||||
val c get() = b
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: 1.kt
|
||||
val d get() = c
|
||||
|
||||
fun box(): String = d
|
||||
|
||||
// FILE: 2.kt
|
||||
val a get() = "OK"
|
||||
val b get() = a
|
||||
Reference in New Issue
Block a user