diff options
| author | Hugo Herbelin | 2017-08-21 23:01:04 +0200 |
|---|---|---|
| committer | Hugo Herbelin | 2018-02-20 10:03:06 +0100 |
| commit | 50970e4043d73d9a4fbd17ffe765745f6d726317 (patch) | |
| tree | 30af940838c330d2b50a2da6c669667c23dfc7fc /pretyping | |
| parent | 15abe33f55b317410223bd48576fa35c81943ff9 (diff) | |
Using an "as" clause when needed for printing irrefutable patterns.
Example which is now reprinted as parsed:
fun '((x,y) as z) => (y,x)=z
Diffstat (limited to 'pretyping')
| -rw-r--r-- | pretyping/glob_ops.ml | 5 | ||||
| -rw-r--r-- | pretyping/glob_ops.mli | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/pretyping/glob_ops.ml b/pretyping/glob_ops.ml index b3e6aa0591..25817478e7 100644 --- a/pretyping/glob_ops.ml +++ b/pretyping/glob_ops.ml @@ -24,6 +24,11 @@ let alias_of_pat pat = DAst.with_val (function | PatCstr(_,_,name) -> name ) pat +let set_pat_alias id = DAst.map (function + | PatVar Anonymous -> PatVar (Name id) + | PatCstr (cstr,patl,Anonymous) -> PatCstr (cstr,patl,Name id) + | pat -> assert false) + let cases_predicate_names tml = List.flatten (List.map (function | (tm,(na,None)) -> [na] diff --git a/pretyping/glob_ops.mli b/pretyping/glob_ops.mli index 7a6d501145..0d9fb1f453 100644 --- a/pretyping/glob_ops.mli +++ b/pretyping/glob_ops.mli @@ -15,6 +15,8 @@ val cases_pattern_eq : 'a cases_pattern_g -> 'a cases_pattern_g -> bool val alias_of_pat : 'a cases_pattern_g -> Name.t +val set_pat_alias : Id.t -> 'a cases_pattern_g -> 'a cases_pattern_g + val cast_type_eq : ('a -> 'a -> bool) -> 'a Misctypes.cast_type -> 'a Misctypes.cast_type -> bool |
