Skip to content

Commit a19279b

Browse files
committed
(really) fix problem in the indexing of the summaries
1 parent cdfbc5d commit a19279b

1 file changed

Lines changed: 33 additions & 17 deletions

File tree

core/KaSa_rep/frontend/diff.ml

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -446,47 +446,63 @@ let summarize_from_cckappa parameters error (compil : Cckappa_sig.compil) =
446446
in
447447
error, summary
448448

449+
let add_correct_id get_map set_map set_id diff after next_id =
450+
let sorted_diff =
451+
List.sort (fun (_, _, id1) (_, _, id2) -> compare id1 id2) diff
452+
in
453+
let map_after = get_map after in
454+
let map_after, _ =
455+
List.fold_left
456+
(fun (map_after, next_id) (key, elt, _) ->
457+
let elt = set_id next_id elt in
458+
Mods.StringMap.add key elt map_after, next_id + 1)
459+
(map_after, next_id) sorted_diff
460+
in
461+
let after = set_map map_after after in
462+
after
463+
449464
let diff_gen diff_pos scan_pos set_id get_id get_obj set_map get_map parameters
450465
errors ~before ~after ~delta =
451466
let map_before = get_map before in
452467
let map_after = get_map after in
453468
let ( errors,
454-
(removed_list, created_list, pos_renaming, pos_removing, map_after, _) )
455-
=
469+
( removed_list,
470+
created_list,
471+
extended_created_list,
472+
pos_renaming,
473+
pos_removing ) ) =
456474
Mods.StringMap.monadic_fold2 parameters errors
457475
(fun _parameters errors _ elt elt'
458-
(removed_list, added_list, pos_diff, pos_removing, map_after, next_id) ->
476+
(removed_list, added_list, e_added_list, pos_diff, pos_removing) ->
459477
( errors,
460478
( removed_list,
461479
added_list,
480+
e_added_list,
462481
diff_pos (get_obj elt) (get_obj elt') pos_diff,
463-
pos_removing,
464-
map_after,
465-
next_id ) ))
482+
pos_removing ) ))
466483
(fun _parameters errors _ elt
467-
(removed_list, added_list, pos_diff, pos_deleted, map_after, next_id) ->
484+
(removed_list, added_list, e_added_list, pos_diff, pos_deleted) ->
468485
( errors,
469486
( get_id elt :: removed_list,
470487
added_list,
488+
e_added_list,
471489
pos_diff,
472-
scan_pos (fun a b -> a :: b) (get_obj elt) pos_deleted,
473-
map_after,
474-
next_id ) ))
490+
scan_pos (fun a b -> a :: b) (get_obj elt) pos_deleted ) ))
475491
(fun _parameters errors key elt
476-
(removed_list, added_list, pos_diff, pos_removing, map_after, next_id) ->
492+
(removed_list, added_list, e_added_list, pos_diff, pos_removing) ->
477493
let id = get_id elt in
478-
let elt = set_id next_id elt in
479494
( errors,
480495
( removed_list,
481496
id :: added_list,
497+
(key, elt, id) :: e_added_list,
482498
pos_diff,
483-
pos_removing,
484-
Mods.StringMap.add key elt map_after,
485-
next_id + 1 ) ))
499+
pos_removing ) ))
486500
map_before map_after
487-
([], [], Loc.diff_pos_empty, Loc.remove_pos_empty, map_after, delta)
501+
([], [], [], Loc.diff_pos_empty, Loc.remove_pos_empty)
502+
in
503+
let after =
504+
add_correct_id get_map set_map set_id extended_created_list after delta
488505
in
489-
let after = set_map map_after after in
490506
( errors,
491507
{
492508
new_elt = created_list;

0 commit comments

Comments
 (0)