[EE-IR] Support mutations by evaluator fragments

- box captured variables using `Ref`s, the same mechanism that's used
  for shared variables in closures.
This commit is contained in:
Kristoffer Andersen
2021-10-04 13:13:19 +02:00
committed by Alexander Udalov
parent 3ccbd25856
commit be1c0bb9c1
11 changed files with 206 additions and 36 deletions
@@ -83,6 +83,8 @@ interface IrDeclarationOrigin {
object CONTINUATION : IrDeclarationOriginImpl("CONTINUATION", isSynthetic = true)
object LOWERED_SUSPEND_FUNCTION : IrDeclarationOriginImpl("LOWERED_SUSPEND_FUNCTION", isSynthetic = true)
object SHARED_VARIABLE_IN_EVALUATOR_FRAGMENT : IrDeclarationOriginImpl("SHARED_VARIABLE_IN_EVALUATOR_FRAGMENT", isSynthetic = true)
val isSynthetic: Boolean get() = false
}