[K/JS] Rework main function call to support it in per-file
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1281
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
var ok: String = "OK"
|
||||
|
||||
fun main(args: Array<Int>) {
|
||||
ok += "Fail Int"
|
||||
}
|
||||
|
||||
fun main(args: Array<in String>) {
|
||||
ok += "Fail IN"
|
||||
}
|
||||
|
||||
fun main(args: Array<String>): Unit? {
|
||||
ok += "Fail return Unit?"
|
||||
return Unit
|
||||
}
|
||||
|
||||
fun Any.main(args: Array<String>) {
|
||||
ok += "Fail Any.main(...)"
|
||||
}
|
||||
|
||||
fun box() = ok
|
||||
@@ -0,0 +1,56 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1281
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
// FILE: ok.kt
|
||||
|
||||
package ok
|
||||
|
||||
var ok: String = "fail"
|
||||
|
||||
// FILE: 1.kt
|
||||
// RECOMPILE
|
||||
|
||||
package a.a
|
||||
|
||||
import ok.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
ok = "fail: b.b"
|
||||
}
|
||||
|
||||
// FILE: 0.kt
|
||||
|
||||
package b
|
||||
|
||||
import ok.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
ok = "fail: b"
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
package a
|
||||
|
||||
import ok.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
ok = "OK"
|
||||
}
|
||||
|
||||
// FILE: 3.kt
|
||||
|
||||
package a.b
|
||||
|
||||
import ok.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
ok = "fail: a.b"
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
import ok.*
|
||||
|
||||
fun box() = ok
|
||||
@@ -0,0 +1,11 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1281
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
var ok: String = "fail"
|
||||
|
||||
fun main() {
|
||||
ok = "OK"
|
||||
}
|
||||
|
||||
fun box() = ok
|
||||
@@ -0,0 +1,13 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1281
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
var ok: String = "fail"
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
if (0 != args.size) error("fail")
|
||||
|
||||
ok = "OK"
|
||||
}
|
||||
|
||||
fun box() = ok
|
||||
@@ -0,0 +1,27 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1296
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
import kotlin.coroutines.*
|
||||
|
||||
var ok: String = "fail"
|
||||
|
||||
var callback: () -> Unit = {}
|
||||
|
||||
suspend fun main(args: Array<String>) {
|
||||
if (0 != args.size) error("Fail")
|
||||
|
||||
suspendCoroutine<Unit> { cont ->
|
||||
callback = {
|
||||
cont.resume(Unit)
|
||||
}
|
||||
}
|
||||
|
||||
ok = "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if ("fail" != ok) return "Fail"
|
||||
callback()
|
||||
return ok
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1296
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
import kotlin.coroutines.*
|
||||
|
||||
var ok: String = "fail"
|
||||
|
||||
var callback: () -> Unit = {}
|
||||
|
||||
suspend fun main() {
|
||||
suspendCoroutine<Unit> { cont ->
|
||||
callback = {
|
||||
cont.resume(Unit)
|
||||
}
|
||||
}
|
||||
|
||||
ok = "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if ("fail" != ok) error("Fail")
|
||||
callback()
|
||||
return ok
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1299
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
import kotlin.coroutines.*
|
||||
|
||||
var callback: () -> Unit = {}
|
||||
|
||||
val exception = Exception()
|
||||
|
||||
suspend fun main() {
|
||||
|
||||
suspendCoroutine<Unit> { cont ->
|
||||
callback = {
|
||||
cont.resume(Unit)
|
||||
}
|
||||
}
|
||||
|
||||
throw exception
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
try {
|
||||
callback()
|
||||
} catch (e: Exception) {
|
||||
if (e !== exception) return "Fail"
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1281
|
||||
// ES_MODULES
|
||||
// CALL_MAIN
|
||||
|
||||
var o: String = "fail O"
|
||||
var k: String = "K"
|
||||
|
||||
fun main() {
|
||||
k = "fail K"
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
if (args.size != 0) error("Fail")
|
||||
|
||||
o = "O"
|
||||
}
|
||||
|
||||
fun box() = o + k
|
||||
Reference in New Issue
Block a user