Skip to content

Commit f310c0d

Browse files
committed
Type_descr.join: preserve aliases on join with Bottom
1 parent 881504d commit f310c0d

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
@@ -507,9 +507,15 @@ module Make (Head : Type_head_intf.S
507507
(* CR mshinwell: Add shortcut when the canonical simples are equal *)
508508
let shared_aliases =
509509
let shared_aliases =
510-
match canonical_simple1, canonical_simple2 with
511-
| None, _ | _, None -> Simple.Set.empty
512-
| Some simple1, Some simple2 ->
510+
match canonical_simple1, head1, canonical_simple2, head2 with
511+
| None, _, None, _
512+
| None, (Ok _ | Unknown), _, _
513+
| _, _, None, (Ok _ | Unknown) -> Simple.Set.empty
514+
| Some simple1, _, _, Bottom ->
515+
Simple.Set.singleton simple1
516+
| _, Bottom, Some simple2, _ ->
517+
Simple.Set.singleton simple2
518+
| Some simple1, _, Some simple2, _ ->
513519
if Simple.same simple1 simple2
514520
then Simple.Set.singleton simple1
515521
else

0 commit comments

Comments
 (0)