aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analyze.c')
-rw-r--r--src/analyze.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/analyze.c b/src/analyze.c
index c05542a..fc94e15 100644
--- a/src/analyze.c
+++ b/src/analyze.c
@@ -252,7 +252,12 @@ static int deduce_closure_types(struct scope *scope, struct ast *node, struct ty
return -1;
}
+ /* use same loop to deduce ownership rules */
for (; param && t; param = param->n, t = t->n) {
+ /* if this param owns the next, reflect that in our variables */
+ if (t->or)
+ param->or = param->n;
+
if (var_type(param))
continue;