diff options
| author | Maxime Dénès | 2017-06-12 15:41:20 +0200 |
|---|---|---|
| committer | Maxime Dénès | 2017-06-12 16:43:32 +0200 |
| commit | ba079418c3ffbfa0d852a8bc73fd9d258e6da4ef (patch) | |
| tree | a63209cfbec52b4ba6a014702470bb19d06a82af /interp/notation_ops.ml | |
| parent | 102d7418e399de646b069924277e4baea1badaca (diff) | |
| parent | 8443867a2f944c3ecaf0b0b826368c29935a21e1 (diff) | |
Merge PR#707: add support for "-bypass-API" argument to "coq_makefile"
Diffstat (limited to 'interp/notation_ops.ml')
| -rw-r--r-- | interp/notation_ops.ml | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/interp/notation_ops.ml b/interp/notation_ops.ml index 08b9fbe8ec..33b93606ec 100644 --- a/interp/notation_ops.ml +++ b/interp/notation_ops.ml @@ -1154,10 +1154,6 @@ let match_notation_constr u c (metas,pat) = metas ([],[],[]) (* Matching cases pattern *) -let add_patterns_for_params ind l = - let mib,_ = Global.lookup_inductive ind in - let nparams = mib.Declarations.mind_nparams in - Util.List.addn nparams (CAst.make @@ PatVar Anonymous) l let bind_env_cases_pattern (terms,x,termlists,y as sigma) var v = try @@ -1187,10 +1183,11 @@ let rec match_cases_pattern metas (terms,(),termlists,() as sigma) a1 a2 = | r1, NVar id2 when Id.List.mem_assoc id2 metas -> (bind_env_cases_pattern sigma id2 a1),(0,[]) | PatVar Anonymous, NHole _ -> sigma,(0,[]) | PatCstr ((ind,_ as r1),largs,_), NRef (ConstructRef r2) when eq_constructor r1 r2 -> - sigma,(0,add_patterns_for_params (fst r1) largs) + let l = try add_patterns_for_params_remove_local_defs r1 largs with Not_found -> raise No_match in + sigma,(0,l) | PatCstr ((ind,_ as r1),args1,_), NApp (NRef (ConstructRef r2),l2) when eq_constructor r1 r2 -> - let l1 = add_patterns_for_params (fst r1) args1 in + let l1 = try add_patterns_for_params_remove_local_defs r1 args1 with Not_found -> raise No_match in let le2 = List.length l2 in if Int.equal le2 0 (* Special case of a notation for a @Cstr *) || le2 > List.length l1 then |
