aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins/quote
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-01-24 13:07:11 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-02-14 17:30:44 +0100
commit5db9588098f9f02d923c21f3914e3c671b10728f (patch)
tree7e19fc592e6fc80f8bc5f849d23faa6a4dee4d09 /plugins/quote
parentaaf75678a13d9c26341e762ab8e56b957cf4c771 (diff)
Quick hack to fix interpretation of patterns in Ltac.
Interpretation of patterns in Ltac is essentially flawed. It does a roundtrip through the pretyper, and relies on suspicious flagging of evars in the evar source field to recognize original pattern holes. After the pattern_of_constr function was made evar-insensitive, it expanded evars that were solved by magical side-effects of the pretyper, even if it hadn't been asked to perform any heuristics. We backtrack on the insensitivity of the pattern_of_constr function. This may have a performance penalty in other dubious code, e.g. hints. In the long run we should get rid of the pattern_of_constr function.
Diffstat (limited to 'plugins/quote')
-rw-r--r--plugins/quote/quote.ml4
1 files changed, 2 insertions, 2 deletions
diff --git a/plugins/quote/quote.ml b/plugins/quote/quote.ml
index edf34607b..23069a9ab 100644
--- a/plugins/quote/quote.ml
+++ b/plugins/quote/quote.ml
@@ -214,9 +214,9 @@ let compute_rhs env sigma bodyi index_of_f =
let i = destRel sigma (Array.last args) in
PMeta (Some (coerce_meta_in i))
| App (f,args) ->
- PApp (pattern_of_constr env sigma f, Array.map aux args)
+ PApp (pattern_of_constr env sigma (EConstr.to_constr sigma f), Array.map aux args)
| Cast (c,_,_) -> aux c
- | _ -> pattern_of_constr env sigma c
+ | _ -> pattern_of_constr env sigma (EConstr.to_constr sigma c)
in
aux bodyi