aboutsummaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/me/transutil.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/boot/me/transutil.ml b/src/boot/me/transutil.ml
index 7cfe89d7..cb867fef 100644
--- a/src/boot/me/transutil.ml
+++ b/src/boot/me/transutil.ml
@@ -118,8 +118,11 @@ let slot_mem_ctrl (slot:Ast.slot) : mem_ctrl =
Ast.TY_port _
| Ast.TY_chan _
| Ast.TY_task
- | Ast.TY_vec _
| Ast.TY_str -> MEM_rc_opaque
+ | Ast.TY_vec _ ->
+ if type_has_state ty
+ then MEM_gc
+ else MEM_rc_opaque
| _ ->
match slot.Ast.slot_mode with
Ast.MODE_exterior _ when type_is_structured ty ->