| // LL_FIR_DIVERGENCE | |
| // KT-82218 | |
| // LL_FIR_DIVERGENCE | |
| // RUN_PIPELINE_TILL: FRONTEND | |
| // MODULE: m1 | |
| // FILE: a.kt | |
| package foo | |
| import kotlin.js.* | |
| @JsNonModule | |
| external object A { | |
| fun f(): Int | |
| val g: Int | |
| } | |
| @JsNonModule | |
| external open class B { | |
| fun foo(): Int | |
| class Nested | |
| } | |
| @JsNonModule | |
| external fun bar(): Unit | |
| // MODULE: m2(m1) | |
| // JS_MODULE_KIND: AMD | |
| // TODO: it's hard to test @JsNonModule on file from an external module | |
| // FILE: c.kt | |
| package bar | |
| import foo.* | |
| fun box() { | |
| A.f()+A.g | |
| B() | |
| bar() | |
| B.Nested() | |
| println(::bar.name) | |
| println(A::f.name) | |
| boo<B?>(null) | |
| boo(null as B?) | |
| boo<B.Nested?>(null) | |
| println(B::class) | |
| println(B.Nested::class) | |
| val x: Any = 1 | |
| println(x is B) | |
| } | |
| external class DerivedB : B | |
| inline fun <reified T> boo(x: T) { | |
| println("${T::class.simpleName}: $x") | |
| } |