Skip to content

Commit

Permalink
Merge PR coq#19095: ppvernac fixes (univdecl incorrect printing and a…
Browse files Browse the repository at this point in the history
…ttribute spacing)

Reviewed-by: proux01
Ack-by: silene
Co-authored-by: proux01 <[email protected]>
  • Loading branch information
coqbot-app[bot] and proux01 authored Jun 10, 2024
2 parents f37ff96 + 30694e9 commit 8eb4e97
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions vernac/ppvernac.ml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@ let pr_variance_lident (lid,v) =
let v = Option.cata UVars.Variance.pr (mt()) v in
v ++ pr_lident lid

let pr_univdecl_qualities l extensible =
(* "extensible" not really supported in syntax currently *)
if List.is_empty l then mt()
else prlist_with_sep spc pr_lident l ++ strbrk " | "

let pr_univdecl_instance l extensible =
prlist_with_sep spc pr_lident l ++
(if extensible then str"+" else mt ())
Expand All @@ -83,24 +88,30 @@ let pr_cumul_univdecl_instance l extensible =

let pr_univdecl_constraints l extensible =
if List.is_empty l && extensible then mt ()
else str"|" ++ spc () ++ prlist_with_sep (fun () -> strbrk" | ") pr_uconstraint l ++
else pr_spcbar () ++ prlist_with_sep pr_comma pr_uconstraint l ++
(if extensible then str"+" else mt())

let pr_universe_decl l =
let open UState in
match l with
| None -> mt ()
| Some l ->
str"@{" ++ pr_univdecl_instance l.univdecl_instance l.univdecl_extensible_instance ++
pr_univdecl_constraints l.univdecl_constraints l.univdecl_extensible_constraints ++ str "}"
str"@{" ++
pr_univdecl_qualities l.univdecl_qualities l.univdecl_extensible_qualities ++
pr_univdecl_instance l.univdecl_instance l.univdecl_extensible_instance ++
pr_univdecl_constraints l.univdecl_constraints l.univdecl_extensible_constraints ++
str "}"

let pr_cumul_univ_decl l =
let open UState in
match l with
| None -> mt ()
| Some l ->
str"@{" ++ pr_cumul_univdecl_instance l.univdecl_instance l.univdecl_extensible_instance ++
pr_univdecl_constraints l.univdecl_constraints l.univdecl_extensible_constraints ++ str "}"
str"@{" ++
pr_univdecl_qualities l.univdecl_qualities l.univdecl_extensible_qualities ++
pr_cumul_univdecl_instance l.univdecl_instance l.univdecl_extensible_instance ++
pr_univdecl_constraints l.univdecl_constraints l.univdecl_extensible_constraints ++
str "}"

let pr_ident_decl (lid, l) =
pr_lident lid ++ pr_universe_decl l
Expand Down Expand Up @@ -548,7 +559,7 @@ let pr_intarg n = spc () ++ int n
let pr_vernac_attributes =
function
| [] -> mt ()
| flags -> str "#[" ++ prlist_with_sep pr_comma Attributes.pr_vernac_flag flags ++ str "]" ++ cut ()
| flags -> str "#[" ++ prlist_with_sep pr_comma Attributes.pr_vernac_flag flags ++ str "]" ++ spc ()

let pr_oc coe ins = match coe, ins with
| NoCoercion, NoInstance -> str" :"
Expand Down

0 comments on commit 8eb4e97

Please sign in to comment.