Tests: do not add transitive dependencies in multi-module tests
Prefer to have all module dependencies, including dependencies on stdlib/reflect, declared explicitly. This allows to have tests on situations like the one in KT-45308: three modules A<-B<-C, where C doesn't depend on A, which was compiling correctly with the old JVM backend before 1.5, but started to fail with JVM IR in 1.5. Also simplify the code a bit, remove duplicated logic.
This commit is contained in:
@@ -29,6 +29,7 @@ fun builder(c: suspend Controller.() -> Unit) {
|
||||
}
|
||||
|
||||
// MODULE: main(lib)
|
||||
// WITH_RUNTIME
|
||||
// FILE: B.kt
|
||||
import a.builder
|
||||
|
||||
|
||||
+1
-3
@@ -83,6 +83,7 @@ interface IrElementVisitor<out R, in D>
|
||||
interface IrElementTransformer<in D> : IrElementVisitor<IrElement, D>
|
||||
|
||||
// MODULE: main(lib)
|
||||
// WITH_RUNTIME
|
||||
// FILE: B.kt
|
||||
|
||||
fun foo(cases: Collection<IrConst<*>>, exprTransformer: IrElementTransformer<Any>, context: Any) {
|
||||
@@ -94,6 +95,3 @@ fun foo(cases: Collection<IrConst<*>>, exprTransformer: IrElementTransformer<Any
|
||||
fun box(): String {
|
||||
return "OK"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+1
@@ -11,6 +11,7 @@ class FqName(val s: String)
|
||||
val VOLATILE_ANNOTATION_FQ_NAME = FqName("volatile")
|
||||
|
||||
// MODULE: main(lib)
|
||||
// WITH_RUNTIME
|
||||
// FILE: B.kt
|
||||
|
||||
import first.second.VOLATILE_ANNOTATION_FQ_NAME
|
||||
|
||||
+2
-5
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS
|
||||
// MODULE: lib1
|
||||
// FILE: lib1.kt
|
||||
|
||||
@@ -13,14 +12,12 @@ inline class IC<TT>(val c: C<TT>) {
|
||||
fun foo(): Int = c.hashCode()
|
||||
}
|
||||
|
||||
|
||||
// MODULE: main(lib2)
|
||||
// MODULE: main(lib1, lib2)
|
||||
// FILE: main.kt
|
||||
|
||||
|
||||
fun box(): String {
|
||||
val ic = IC<Int>(C(42))
|
||||
|
||||
if (ic.foo() != 42) return "FAIL"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
// KT-45308 Psi2ir: "AssertionError: TypeAliasDescriptor expected" caused by using typealias from one module as a type in another module without a transitive dependency
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
|
||||
// MODULE: a
|
||||
// FILE: a.kt
|
||||
package a
|
||||
|
||||
Reference in New Issue
Block a user