[JS] Don't fail on recursive upper bounds while resolving JsExports

Fixes https://youtrack.jetbrains.com/issue/KT-42112
This commit is contained in:
Shagen Ogandzhanian
2020-11-23 17:59:03 +01:00
parent f9a032dbfa
commit 3282e092d8
6 changed files with 141 additions and 33 deletions
@@ -0,0 +1,14 @@
$kotlin_test_internal$.beginModule();
module.exports = function() {
var ping = require("JS_TESTS").api.ping;
var Something = require("JS_TESTS").api.Something;
return {
"pingCall": function() {
return ping(new Something())
},
};
};
$kotlin_test_internal$.endModule("lib");
@@ -0,0 +1,28 @@
// MODULE_KIND: COMMON_JS
// SKIP_MINIFICATION
// FILE: api.kt
package api
@JsExport
class Something<T: Something<T>> {
fun ping(): String {
return "OK"
}
}
@JsExport
fun ping(s: Something<*>): String {
return s.ping()
}
// FILE: main.kt
external interface JsResult {
val pingCall: () -> String
}
@JsModule("lib")
external fun jsBox(): JsResult
fun box(): String {
return jsBox().pingCall()
}