Skip to content

Commit ed1c20e

Browse files
panglesdjonludlam
authored andcommitted
Add local jump to definition for constructors
Signed-off-by: Paul-Elliot <[email protected]>
1 parent bb0bfbc commit ed1c20e

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/loader/implementation.ml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,15 @@ module Analysis = struct
174174
| { exp_desc = Texp_try (e, cases); _ } ->
175175
expression env e @ List.concat_map (case env) cases
176176
| { exp_desc = Texp_tuple es; _ } -> List.concat_map (expression env) es
177-
| { exp_desc = Texp_construct (_, _, es); _ } ->
178-
List.concat_map (expression env) es
177+
| { exp_desc = Texp_construct (_, cons_description, es); exp_loc; _ } ->
178+
let x =
179+
match
180+
Shape.Uid.Tbl.find_opt (get_uid_to_loc env) cons_description.cstr_uid
181+
with
182+
| Some _ -> [ (DefJmp cons_description.cstr_uid, pos_of_loc exp_loc) ]
183+
| None -> []
184+
in
185+
x @ List.concat_map (expression env) es
179186
| { exp_desc = Texp_variant (_, Some e); _ } -> expression env e
180187
| { exp_desc = Texp_variant (_, None); _ } -> []
181188
| { exp_desc = Texp_record { fields; extended_expression; _ }; _ } ->

0 commit comments

Comments
 (0)