Fix escaping immutable closure captures
This commit is contained in:
1 parent
0f5343fa17
commit
14214e91e1
2 files changed
+58
-10
No files matched your search
@@ -90,4 +90,48 @@ class OptTest {
|
||||
}
|
||||
assertContains(ex.errorMessage, "can't reassign val a")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssignOpErrorMessageFromExample() = runTest {
|
||||
val source = Source(
|
||||
"examples/error1.lyng",
|
||||
"""
|
||||
val a = 1
|
||||
a += 2
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
val ex = assertFailsWith<ScriptError> {
|
||||
Script.newScope().eval(source)
|
||||
}
|
||||
|
||||
assertContains(ex.errorMessage, "can't reassign val a")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testClosuresInLaunchPool() = runTest {
|
||||
eval($$"""
|
||||
val result = Set()
|
||||
val mu = Mutex()
|
||||
fn doSomething(value) {
|
||||
delay(100)
|
||||
println(value)
|
||||
mu.withLock {
|
||||
result += value
|
||||
}
|
||||
}
|
||||
|
||||
val lp = LaunchPool(4, 1000)
|
||||
for (i in 1 .. 10) {
|
||||
val ii: Int = i
|
||||
lp.launch {
|
||||
doSomething( ii )
|
||||
}
|
||||
}
|
||||
println("all tasks were placed into lauchpool")
|
||||
lp.closeAndJoin()
|
||||
println("ALL DONE: $result")
|
||||
assertEquals((1..10).toSet(), result)
|
||||
""".trimIndent())
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user