summaryrefslogtreecommitdiff
path: root/compiler/Substitute.ml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--compiler/Substitute.ml15
1 files changed, 14 insertions, 1 deletions
diff --git a/compiler/Substitute.ml b/compiler/Substitute.ml
index 8348424c..9adbbcba 100644
--- a/compiler/Substitute.ml
+++ b/compiler/Substitute.ml
@@ -397,7 +397,7 @@ let subst_ids_visitor (rsubst : T.RegionId.id -> T.RegionId.id)
let visitor =
object (self : 'self)
- inherit [_] V.map_abs
+ inherit [_] C.map_env
method! visit_borrow_id _ bid = bsubst bid
method! visit_loan_id _ bid = bsubst bid
method! visit_ety _ ty = ty_substitute_ids tsubst ty
@@ -427,6 +427,7 @@ let subst_ids_visitor (rsubst : T.RegionId.id -> T.RegionId.id)
visitor#visit_typed_avalue () x
method visit_abs (x : V.abs) : V.abs = visitor#visit_abs () x
+ method visit_env (env : C.env) : C.env = visitor#visit_env () env
end
let typed_value_subst_ids (rsubst : T.RegionId.id -> T.RegionId.id)
@@ -468,3 +469,15 @@ let typed_avalue_subst_rids (rsubst : T.RegionId.id -> T.RegionId.id)
asubst)
#visit_typed_avalue
x
+
+let env_subst_rids (rsubst : T.RegionId.id -> T.RegionId.id) (x : C.env) : C.env
+ =
+ let asubst _ = raise (Failure "Unreachable") in
+ (subst_ids_visitor rsubst
+ (fun x -> x)
+ (fun x -> x)
+ (fun x -> x)
+ (fun x -> x)
+ asubst)
+ #visit_env
+ x