Fixed issue with TL initializers + tests
Put all top level properties into the list of explicitly exported symbols
This commit is contained in:
+6
@@ -1077,6 +1077,12 @@ internal class IrModuleSerializer(
|
|||||||
proto.addDeclarationId(protoUniqId(uniqId))
|
proto.addDeclarationId(protoUniqId(uniqId))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure that all top level properties are initialized on library's load.
|
||||||
|
file.declarations
|
||||||
|
.filterIsInstance<IrProperty>()
|
||||||
|
.filter { it.backingField?.initializer != null }
|
||||||
|
.forEach { proto.addExplicitlyExportedToCompiler(serializeIrSymbol(it.backingField!!.symbol)) }
|
||||||
|
|
||||||
file.acceptVoid(object: IrElementVisitorVoid {
|
file.acceptVoid(object: IrElementVisitorVoid {
|
||||||
override fun visitElement(element: IrElement) {
|
override fun visitElement(element: IrElement) {
|
||||||
element.acceptChildrenVoid(this)
|
element.acceptChildrenVoid(this)
|
||||||
|
|||||||
@@ -1084,6 +1084,18 @@ task initializers_correctOrder2(type: RunKonanTest) {
|
|||||||
source = "codegen/initializers/correctOrder2.kt"
|
source = "codegen/initializers/correctOrder2.kt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task initializers_linkTest1(type: LinkKonanTest) {
|
||||||
|
goldValue = "1200\n"
|
||||||
|
source = "codegen/initializers/linkTest1_main.kt"
|
||||||
|
lib = "codegen/initializers/linkTest1_lib.kt"
|
||||||
|
}
|
||||||
|
|
||||||
|
task initializers_linkTest2(type: LinkKonanTest) {
|
||||||
|
goldValue = "2\n"
|
||||||
|
source = "codegen/initializers/linkTest2_main.kt"
|
||||||
|
lib = "codegen/initializers/linkTest2_lib.kt"
|
||||||
|
}
|
||||||
|
|
||||||
task arithmetic_basic(type: RunKonanTest) {
|
task arithmetic_basic(type: RunKonanTest) {
|
||||||
source = "codegen/arithmetic/basic.kt"
|
source = "codegen/arithmetic/basic.kt"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
val a = 10
|
||||||
|
val b = a * 6
|
||||||
|
val c = a * b * 2
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
fun main() = println(c)
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
val a = mutableListOf<Int>()
|
||||||
|
val b = 1.also { a += 2 }
|
||||||
|
val c = a.single()
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
fun main() = println(c)
|
||||||
Reference in New Issue
Block a user