mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
rustboot: Only bottom out at opaque IL types after finding two cycles. DON'T ASK ME WHY THIS WORKS.
This commit is contained in:
parent
6443179bca
commit
d7cbeba731
@ -2425,7 +2425,7 @@ and referent_type
|
||||
Some parent_tags
|
||||
when boxed
|
||||
&& parent_tags <> []
|
||||
&& List.mem ttag parent_tags
|
||||
&& (list_count ttag parent_tags) > 1
|
||||
&& is_back_edge ttag (List.hd parent_tags) ->
|
||||
Il.StructTy [| word; Il.OpaqueTy |]
|
||||
| _ -> tag ttag
|
||||
|
@ -380,6 +380,13 @@ let rec list_drop n ls =
|
||||
else list_drop (n-1) (List.tl ls)
|
||||
;;
|
||||
|
||||
let rec list_count elem lst =
|
||||
match lst with
|
||||
[] -> 0
|
||||
| h::t when h = elem -> 1 + (list_count elem t)
|
||||
| _::t -> list_count elem t
|
||||
;;
|
||||
|
||||
|
||||
(*
|
||||
* Auxiliary pair functions.
|
||||
|
Loading…
Reference in New Issue
Block a user