Skip to content

Commit 3abdbac

Browse files
committed
Type_descr.join: preserve aliases on join with Bottom
1 parent 2f39cfb commit 3abdbac

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

middle_end/flambda/types/type_descr.rec.ml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -499,9 +499,15 @@ module Make (Head : Type_head_intf.S
499499
(* CR mshinwell: Add shortcut when the canonical simples are equal *)
500500
let shared_aliases =
501501
let shared_aliases =
502-
match canonical_simple1, canonical_simple2 with
503-
| None, _ | _, None -> Simple.Set.empty
504-
| Some simple1, Some simple2 ->
502+
match canonical_simple1, head1, canonical_simple2, head2 with
503+
| None, _, None, _
504+
| None, (Ok _ | Unknown), _, _
505+
| _, _, None, (Ok _ | Unknown) -> Simple.Set.empty
506+
| Some simple1, _, _, Bottom ->
507+
Simple.Set.singleton simple1
508+
| _, Bottom, Some simple2, _ ->
509+
Simple.Set.singleton simple2
510+
| Some simple1, _, Some simple2, _ ->
505511
if Simple.same simple1 simple2
506512
then Simple.Set.singleton simple1
507513
else

0 commit comments

Comments
 (0)