IR Scripting: update capturing logic for the REPL, imported scripts,
as well as all other implicit receivers.
This commit is contained in:
+11
@@ -122,6 +122,17 @@ class MainKtsTest {
|
||||
Assert.assertEquals(OUT_FROM_IMPORT_TEST, out)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testImportWithCapture() {
|
||||
|
||||
val out = captureOut {
|
||||
val res = evalFile(File("$TEST_DATA_ROOT/import-with-capture-test.main.kts"))
|
||||
assertSucceeded(res)
|
||||
}.lines()
|
||||
|
||||
Assert.assertEquals(OUT_FROM_IMPORT_TEST, out)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDuplicateImportError() {
|
||||
val res = evalFile(File("$TEST_DATA_ROOT/import-duplicate-test.main.kts"))
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
|
||||
@file:Import("import-common.main.kts")
|
||||
@file:Import("import-middle.main.kts")
|
||||
|
||||
sharedVar = sharedVar + 1
|
||||
|
||||
class CapturingClass1 {
|
||||
val value = sharedVar
|
||||
}
|
||||
|
||||
class CapturingClass2 {
|
||||
fun f() = CapturingClass1().value
|
||||
}
|
||||
|
||||
println("${SharedObject.greeting} ${from.msg} main")
|
||||
println("sharedVar == ${CapturingClass2().f()}")
|
||||
Reference in New Issue
Block a user