[Test] Move KotlinAgainstKotlin tests under BlackBoxCodegen tests

This commit is contained in:
Dmitriy Novozhilov
2021-01-22 15:13:50 +03:00
parent 1ea4fa4464
commit 5c8d555808
147 changed files with 3749 additions and 2743 deletions
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package a
@@ -12,6 +13,7 @@ interface Tr {
fun foo() {}
}
// MODULE: main(lib)
// FILE: B.kt
class C : a.Tr
@@ -1,6 +1,7 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// WITH_REFLECT
// MODULE: lib
// FILE: A.kt
@Target(AnnotationTarget.TYPE)
annotation class Anno(val value: String)
@@ -15,6 +16,7 @@ class C<T>(val t: T)
typealias MyCMyFoo = C<@Anno("OK") MyFoo?>
typealias MyCMaybeFoo = C<@Anno("OK") MyMaybeFoo>
// MODULE: main(lib)
// FILE: B.kt
fun testMyFoo(myc: MyCMyFoo) {}
fun testMyMaybeFoo(mycmyb: MyCMaybeFoo) {}
@@ -1,4 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package a
@@ -13,6 +15,7 @@ annotation class Ann(val x: Int)
@Ann(2)
typealias TA = Any
// MODULE: main(lib)
// FILE: B.kt
import a.Ann
@@ -1,4 +1,5 @@
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: A.kt
package a
@@ -8,6 +9,7 @@ inline class Foo(val x: IntArray) {
val size: Int get() = x.size
}
// MODULE: main(lib)
// FILE: B.kt
import a.*
@@ -1,7 +1,8 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// FILE: A.kt
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package a
@@ -10,6 +11,7 @@ inline class Foo(val x: IntArray) {
val size: Int get() = x.size
}
// MODULE: main(lib)
// FILE: B.kt
import a.*
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:[JvmName("MultifileClass") JvmMultifileClass]
@@ -9,6 +10,7 @@ const val constOK: String = "OK"
val valOK: String = "OK"
var varOK: String = "Hmmm?"
// MODULE: main(lib)
// FILE: B.kt
import a.*
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// ^ TODO decide if we want to fix KT-42020 for FIR as well
// MODULE: lib
// FILE: a.kt
package a
@@ -8,6 +9,7 @@ open class Base<T> {
fun foo(y: String) = "y:$y"
}
// MODULE: main(lib)
// FILE: b.kt
import a.Base
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package a
@@ -8,6 +9,7 @@ object CartRoutes {
}
}
// MODULE: main(lib)
// FILE: B.kt
import a.CartRoutes
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package library
@@ -10,6 +11,7 @@ public enum class EnumClass {
}
}
// MODULE: main(lib)
// FILE: B.kt
import library.EnumClass
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
class A {
@@ -7,6 +8,7 @@ class A {
}
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:[JvmName("MultifileClass") JvmMultifileClass]
@@ -9,6 +10,7 @@ annotation class A
@A
const val OK: String = "OK"
// MODULE: main(lib)
// FILE: B.kt
import a.OK
@@ -1,9 +1,11 @@
// MODULE: lib
// FILE: A.kt
class A(vararg s: String) {
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,5 @@
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: A.kt
package lib
@@ -6,6 +7,7 @@ inline class S(val string: String)
class Test(val s: S)
// MODULE: main(lib)
// FILE: B.kt
import lib.*
@@ -1,14 +1,16 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// FILE: A.kt
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package lib
inline class S(val string: String)
class Test(val s: S)
// MODULE: main(lib)
// FILE: B.kt
import lib.*
fun box() = Test(S("OK")).s.string
fun box() = Test(S("OK")).s.string
@@ -1,4 +1,5 @@
// IGNORE_BACKEND_FIR: JVM_IR
// MODULE: lib
// FILE: A.kt
// FULL_JDK
@@ -16,6 +17,7 @@ inline fun doWork(noinline job: () -> String): Callable<String> {
var sameModule = doWork { "O" }
// MODULE: main(lib)
// FILE: B.kt
import test.*
@@ -1,4 +1,5 @@
// IGNORE_BACKEND_FIR: JVM_IR
// MODULE: lib
// FILE: A.kt
// FULL_JDK
@@ -10,6 +11,7 @@ inline fun doWork(noinline job: () -> String): Callable<String> {
return Callable(job)
}
// MODULE: main(lib)
// FILE: B.kt
import test.*
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
// WITH_RUNTIME
// WITH_COROUTINES
@@ -27,6 +28,7 @@ fun builder(c: suspend Controller.() -> Unit) {
controller.callback()
}
// MODULE: main(lib)
// FILE: B.kt
import a.builder
@@ -1,9 +1,11 @@
// MODULE: lib
// FILE: A.kt
package aaa
class A(val a: Int = 1)
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package test
@@ -9,6 +10,7 @@ inline fun test(s: () -> () -> String = { val z = "Outer"; { "OK" } }) =
val same = test()
// MODULE: main(lib)
// FILE: B.kt
import test.*
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package test
@@ -9,6 +10,7 @@ inline fun test(s: () -> () -> () -> String = { val z = "Outer"; { { "OK" } } })
val same = test()
// MODULE: main(lib)
// FILE: B.kt
import test.*
@@ -1,4 +1,5 @@
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: A.kt
package z
@@ -8,6 +9,7 @@ class X {
fun Int.foo(z: Z, value: String = "OK") = value
}
// MODULE: main(lib)
// FILE: B.kt
import z.*
@@ -1,7 +1,8 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// FILE: A.kt
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package z
inline class Z(val s: String)
@@ -10,6 +11,7 @@ class X {
fun Int.foo(z: Z, value: String = "OK") = value
}
// MODULE: main(lib)
// FILE: B.kt
import z.*
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package lib
@@ -11,6 +12,7 @@ class B : A {
class C(val x: A) : A by x
// MODULE: main(lib)
// FILE: B.kt
import lib.*
@@ -1,5 +1,7 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// MODULE: lib
// FILE: A.kt
import java.io.IOException
@@ -12,6 +14,7 @@ interface A {
annotation class Anno
// MODULE: main(lib)
// FILE: B.kt
class B(a: A) : A by a
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package aaa
@@ -10,6 +11,7 @@ class A {
}
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package aaa
@@ -7,6 +8,7 @@ enum class E {
SUBCLASS { }
}
// MODULE: main(lib)
// FILE: B.kt
import aaa.E
@@ -1,8 +1,11 @@
// IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: NATIVE
// !LANGUAGE: +MultiPlatformProjects
// MODULE: lib
// FILE: impl.kt
class A(val result: String = "OK")
// MODULE: main(lib)
// FILE: multiplatform.kt
expect class B(result: String = "FAIL")
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package a
@@ -22,6 +23,7 @@ class D : A, B {
override var x: String = ""
}
// MODULE: main(lib)
// FILE: B.kt
import a.*
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
abstract class A {
@@ -9,6 +10,7 @@ abstract class A {
protected val y = x.foo()
}
// MODULE: main(lib)
// FILE: B.kt
class B : A() {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
interface KotlinMangler<D : Any> {
@@ -22,6 +23,7 @@ abstract class IrBasedKotlinManglerImpl : AbstractKotlinMangler<String>(), Kotli
get() = this
}
// MODULE: main(lib)
// FILE: B.kt
abstract class AbstractJvmManglerIr : IrBasedKotlinManglerImpl()
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
// WITH_RUNTIME
@@ -16,6 +17,7 @@ class IncrementalJsCompilerRunner(
) : IncrementalCompilerRunner<String>(workingDir, fail) {
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
// WITH_RUNTIME
@@ -81,6 +83,7 @@ interface IrElementVisitor<out R, in D>
interface IrElementTransformer<in D> : IrElementVisitor<IrElement, D>
// MODULE: main(lib)
// FILE: B.kt
fun foo(cases: Collection<IrConst<*>>, exprTransformer: IrElementTransformer<Any>, context: Any) {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
// WITH_RUNTIME
@@ -9,6 +10,7 @@ class FqName(val s: String)
@JvmField
val VOLATILE_ANNOTATION_FQ_NAME = FqName("volatile")
// MODULE: main(lib)
// FILE: B.kt
import first.second.VOLATILE_ANNOTATION_FQ_NAME
@@ -1,5 +1,7 @@
// WITH_RUNTIME
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: 1.kt
package test
@@ -10,6 +12,7 @@ class C(val x: String) {
}
}
// MODULE: main(lib)
// FILE: 2.kt
import test.C.Companion.instance
@@ -1,5 +1,6 @@
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: 1.kt
inline class IC(val s: String)
@@ -12,6 +13,7 @@ open class C : A()
class D: C()
// MODULE: main(lib)
// FILE: 2.kt
fun box(): String {
@@ -1,7 +1,8 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// FILE: 1.kt
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: 1.kt
inline class IC(val s: String)
@@ -13,6 +14,7 @@ open class C : A()
class D: C()
// MODULE: main(lib)
// FILE: 2.kt
fun box(): String {
@@ -1,4 +1,5 @@
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: A.kt
package z
@@ -20,6 +21,7 @@ inline class Z(val s: String) : IFoo {
}
}
// MODULE: main(lib)
// FILE: B.kt
import z.*
@@ -1,7 +1,9 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// FILE: A.kt
// WITH_STDLIB
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package z
interface IFoo {
@@ -22,6 +24,7 @@ inline class Z(val s: String) : IFoo {
}
}
// MODULE: main(lib)
// FILE: B.kt
import z.*
@@ -37,4 +40,4 @@ fun box(): String {
test(Z(1234))
test(Z.z(1234))
return "OK"
}
}
@@ -1,10 +1,11 @@
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: A.kt
inline class A(val x: String) {
inline fun f(other: A): A = other
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,12 +1,14 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// FILE: A.kt
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
inline class A(val x: String) {
inline fun f(other: A): A = other
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,5 @@
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: A.kt
package a
@@ -8,6 +9,7 @@ inline class S(val value: String) {
get() = value + "K"
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,7 +1,8 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// FILE: A.kt
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package a
@@ -10,6 +11,7 @@ inline class S(val value: String) {
get() = value + "K"
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,7 @@
// IGNORE_BACKEND_FIR: JVM_IR
// !LANGUAGE: +InlineClasses
// MODULE: lib
// FILE: 1.kt
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
package test
@@ -9,6 +12,7 @@ fun ordinary(s: String, ic: IC): String = s + ic.s
suspend fun suspend(s: String, ic: IC): String = s + ic.s
// MODULE: main(lib)
// FILE: 2.kt
import kotlin.coroutines.*
import test.*
@@ -1,4 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package constants
@@ -17,6 +19,7 @@ public const val str: String = ":)"
@Retention(AnnotationRetention.RUNTIME)
public annotation class AnnotationClass(public val value: String)
// MODULE: main(lib)
// FILE: B.kt
import constants.*
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package second
@@ -6,6 +7,7 @@ public class Outer() {
inner class Inner(test: String)
}
// MODULE: main(lib)
// FILE: B.kt
//test for KT-3702 Inner class constructor cannot be invoked in override function with receiver
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package test
@@ -18,6 +19,7 @@ abstract class CodeBlockBase: CompositeCodeBlock
abstract class LineSeparatedCodeBlock: CodeBlockBase()
// MODULE: main(lib)
// FILE: B.kt
import test.*
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
abstract class Base {
abstract var x: String
@@ -8,6 +9,7 @@ class Derived: Base() {
override var x: String = "Z"
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
val d = Derived()
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: NATIVE
// MODULE: lib
// FILE: A.kt
package a
@@ -8,6 +9,7 @@ class Box() {
internal fun result(value: String = "OK"): String = value
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,5 @@
// IGNORE_BACKEND_FIR: JVM_IR
// MODULE: lib
// FILE: A.kt
package a
@@ -9,6 +10,7 @@ class Box {
internal fun result(msg: Message): String = msg.value
}
// MODULE: main()(lib)
// FILE: B.kt
fun box(): String {
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: NATIVE
// MODULE: lib
// FILE: A.kt
package a
@@ -8,6 +9,7 @@ class Box(val value: String) {
internal fun result(): String = value
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package a
@@ -21,6 +22,7 @@ interface IrBindableSymbol<B : Any> : IrSymbol {
interface IrSimpleFunctionSymbol : IrFunctionSymbol, IrBindableSymbol<IrSimpleFunction>
// MODULE: main(lib)
// FILE: B.kt
import a.*
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility
// JVM_TARGET: 1.8
// FULL_JDK
// MODULE: lib
// FILE: 1.kt
interface KInterface {
fun call(): List<String> {
@@ -10,6 +11,7 @@ interface KInterface {
fun superCall() = Thread.currentThread().getStackTrace().map { it.className + "." + it.methodName }
}
// MODULE: main(lib)
// FILE: main.kt
interface KInterface2 : KInterface {
@@ -4,6 +4,7 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -26,6 +27,7 @@ class Delegate : Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
class TestClass(val foo: Test) : Test by foo
@@ -4,6 +4,7 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -23,6 +24,7 @@ class Delegate : Test {
get() = "K"
}
// MODULE: main(lib)
// FILE: 2.kt
class TestClass(val foo: Test) : Test by foo
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -8,6 +9,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
class TestClass : Test {
override fun test(): String {
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -8,6 +9,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -12,6 +13,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@@ -1,12 +1,14 @@
// !JVM_DEFAULT_MODE: all-compatibility
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
val prop: String
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
class TestClass : Test {
override val prop: String
@@ -1,12 +1,14 @@
// !JVM_DEFAULT_MODE: all-compatibility
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
val prop: String
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
override val prop: String
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
val prop: String
@@ -10,6 +11,7 @@ interface Test {
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
override val prop: String
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// FULL_JDK
// MODULE: lib
// FILE: 1.kt
// !JVM_DEFAULT_MODE: disable
interface Check {
@@ -1,6 +1,7 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// JVM_TARGET: 1.8
// MODULE: lib
// FILE: 1.kt
// !JVM_DEFAULT_MODE: disable
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// FULL_JDK
// MODULE: lib
// FILE: 1.kt
interface KInterface {
fun call(): List<String> {
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// FULL_JDK
// MODULE: lib
// FILE: 1.kt
// !JVM_DEFAULT_MODE: disable
interface KInterface {
@@ -2,6 +2,7 @@
// FULL_JDK
// WITH_RUNTIME
// JVM_TARGET: 1.8
// MODULE: lib
// FILE: 1.kt
// !JVM_DEFAULT_MODE: enable
interface KInterface {
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -9,6 +10,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
class TestClass : Test {
override fun test(): String {
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -9,6 +10,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -13,6 +14,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@@ -2,6 +2,7 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -9,6 +10,7 @@ interface Test {
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
class TestClass : Test {
override val prop: String
@@ -2,6 +2,7 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -9,6 +10,7 @@ interface Test {
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
@@ -2,6 +2,7 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_RUNTIME
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
@@ -12,6 +13,7 @@ interface Test {
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
@@ -1,4 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -6,6 +7,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -6,6 +7,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -6,6 +7,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// SKIP_JDK6
// MODULE: lib
// FILE: A.kt
import java.util.*
class Jdk6List<F> : AbstractList<F>() {
@@ -11,6 +12,7 @@ class Jdk6List<F> : AbstractList<F>() {
}
// MODULE: main(lib)
// FILE: B.kt
// FULL_JDK
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: 1.kt
interface Test {
@@ -6,6 +7,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
class TestClass : Test {
@@ -1,4 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -6,6 +7,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// FILE: 1.kt
interface Test {
@@ -7,6 +8,7 @@ interface Test {
}
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: 1.kt
interface Test {
@@ -5,6 +6,7 @@ interface Test {
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
class TestClass : Test {
@@ -1,4 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// FILE: 1.kt
interface Test {
@@ -6,6 +7,7 @@ interface Test {
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
open class A {
@@ -12,6 +13,7 @@ open class B : A() {
}
// MODULE: main(lib)
// FILE: B.kt
open class C : B() {
@@ -1,7 +1,8 @@
// !LANGUAGE: +JvmFieldInInterface +NestedClassesInAnnotations
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// MODULE: lib
// FILE: Foo.kt
public class Bar(public val value: String)
@@ -13,7 +14,7 @@ annotation class Foo {
}
}
// MODULE: main(lib)
// FILE: bar.kt
fun box(): String {
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
open class A(@JvmField public val publicField: String = "1",
@@ -8,6 +9,7 @@ open class A(@JvmField public val publicField: String = "1",
open class B : A()
// MODULE: main(lib)
// FILE: B.kt
open class C : B() {
@@ -1,7 +1,8 @@
// !LANGUAGE: +JvmFieldInInterface
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// MODULE: lib
// FILE: Foo.kt
public class Bar(public val value: String)
@@ -13,7 +14,7 @@ interface Foo {
}
}
// MODULE: main(lib)
// FILE: bar.kt
fun box(): String {
@@ -1,4 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package lib
@@ -24,6 +26,7 @@ open class A {
annotation class Anno(@get:JvmName("uglyJvmName") val value: String)
// MODULE: main(lib)
// FILE: B.kt
import lib.*
@@ -1,4 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -11,6 +13,7 @@ var v: Int = 1
inline fun i(block: () -> Unit) = block()
// MODULE: main(lib)
// FILE: B.kt
import foo.*
@@ -1,4 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -8,6 +10,7 @@ fun f() = "OK"
var v: Int = 1
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,6 +1,8 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// MODULE: lib
// FILE: A.kt
@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER")
@@ -17,6 +19,7 @@ val g: S? get() = f().substring(0, 0) + "K"
inline fun <T> i(block: () -> T): T = block()
// MODULE: main(lib)
// FILE: B.kt
import foo.bar.*
@@ -1,4 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -10,6 +12,7 @@ fun f() = "OK"
var v: Int = 1
// MODULE: main(lib)
// FILE: B.kt
import foo.*
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package aaa
@@ -10,6 +11,7 @@ public object TestObject {
public val test: String = "OK"
}
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,6 +1,7 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// MODULE: lib
// FILE: A.kt
object Host {
@@ -30,6 +31,7 @@ object Host {
set(value) { field = value }
}
// MODULE: main(lib)
// FILE: B.kt
import kotlin.reflect.*
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
package a
@@ -23,6 +24,7 @@ const val bool2 = bool
const val c2 = c
const val str2 = str
// MODULE: main(lib)
// FILE: B.kt
import a.*
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: A.kt
package test
@@ -8,6 +9,7 @@ fun test() {
property = "OK"
}
// MODULE: main(lib)
// FILE: B.kt
import test.*
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:JvmName("TTest")
@file:JvmMultifileClass
@@ -11,6 +12,7 @@ fun test() {
property = "OK"
}
// MODULE: main(lib)
// FILE: B.kt
import test.*
@@ -1,3 +1,4 @@
// MODULE: lib
// FILE: lib.kt
package lib
@@ -26,7 +27,7 @@ class CreateEmployeeUseCaseAccessor {
}
}
// MODULE: main(lib)
// FILE: main.kt
import lib.*
@@ -40,4 +41,4 @@ class CreateEmployeeUseCaseTest {
fun box(): String {
return "OK"
}
}
@@ -1,5 +1,6 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
class A {
@@ -14,6 +15,7 @@ class A {
}
}
// MODULE: main(lib)
// FILE: B.kt
import kotlin.reflect.full.*
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:[JvmName("Test") JvmMultifileClass]
@@ -8,6 +9,7 @@ val property = "K"
inline fun K(body: () -> String): String =
body() + property
// MODULE: main(lib)
// FILE: B.kt
fun box(): String {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
@file:[JvmName("Test") JvmMultifileClass]
@@ -6,6 +7,7 @@
typealias S = String
typealias LS = List<S>
// MODULE: main(lib)
// FILE: B.kt
import java.util.Arrays

Some files were not shown because too many files have changed in this diff Show More