[Swift Export] KT-65008: support simple top-level properties

Merge-request: KT-MR-14131
Merged-by: Gleb Lukianets <Gleb.Lukianets@jetbrains.com>
This commit is contained in:
Gleb Lukianets
2024-02-05 16:29:37 +00:00
committed by Space Team
parent ad5ee28d58
commit f262247b2b
49 changed files with 1172 additions and 72 deletions
@@ -0,0 +1,12 @@
#include <stdint.h>
int32_t namespace_main_foo_get();
int32_t namespace_main_bar_get();
void namespace_main_bar_set(int32_t newValue);
int32_t namespace_main_foobar(int32_t param);
int32_t __root___baz();
@@ -0,0 +1,32 @@
import kotlin.native.internal.ExportedBridge
@ExportedBridge("namespace_main_foo_get")
public fun namespace_main_foo_get(): Int {
val result = namespace.main.foo()
return result
}
@ExportedBridge("namespace_main_bar_get")
public fun namespace_main_bar_get(): Int {
val result = namespace.main.bar()
return result
}
@ExportedBridge("namespace_main_bar_set")
public fun namespace_main_bar_set(newValue: Int): Unit {
val result = namespace.main.bar(newValue)
return result
}
@ExportedBridge("namespace_main_foobar")
public fun namespace_main_foobar(param: Int): Int {
val result = namespace.main.foobar(param)
return result
}
@ExportedBridge("__root___baz")
public fun __root___baz(): Int {
val result = baz()
return result
}
@@ -0,0 +1,26 @@
enum namespace {
enum main {
public static var foo: Swift.Int32 {
get {
return namespace_main_foo_get()
}
}
public static var bar: Swift.Int32 {
get {
return namespace_main_bar_get()
}
set {
namespace_main_bar_set(newValue)
}
}
public static func foobar(
param: Swift.Int32
) -> Swift.Int32 {
return namespace_main_foobar(param)
}
}
}
public func baz() -> Swift.Int32 {
return __root___baz()
}
@@ -0,0 +1,9 @@
package namespace.main
import namespace.*
val foo: Int get() = 10
var bar: Int = 20
fun foobar(param: Int): Int = foo + bar + param + baz
@@ -0,0 +1 @@
fun baz: Int = 30