aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2008-02-06 17:56:32 +0000
committerherbelin2008-02-06 17:56:32 +0000
commitb46115bd2507909541d804073b34c8107d3b1290 (patch)
tree1ae5c17ddfe3b00c2ba234ef4af713467130e901
parent4a573f78ce747f7f7fac36f667dce1d829dc3bed (diff)
Correction d'un bug à l'interprétation de "change" (on exigeait que
l'argument soit un type même lorsque c'était un terme qu'on convertissait). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10518 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/tacinterp.ml3
-rw-r--r--test-suite/success/change.v6
2 files changed, 8 insertions, 1 deletions
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml
index 2112b91ece..b5a5f984fc 100644
--- a/tactics/tacinterp.ml
+++ b/tactics/tacinterp.ml
@@ -2091,7 +2091,8 @@ and interp_atomic ist gl = function
h_reduce (pf_interp_red_expr ist gl r) (interp_clause ist gl cl)
| TacChange (occl,c,cl) ->
h_change (Option.map (pf_interp_pattern ist gl) occl)
- (if occl = None then pf_interp_type ist gl c
+ (if occl = None & cl.onhyps = None & cl.concl_occs = []
+ then pf_interp_type ist gl c
else pf_interp_constr ist gl c)
(interp_clause ist gl cl)
diff --git a/test-suite/success/change.v b/test-suite/success/change.v
new file mode 100644
index 0000000000..cea017122e
--- /dev/null
+++ b/test-suite/success/change.v
@@ -0,0 +1,6 @@
+(* A few tests of the syntax of clauses and of the interpretation of change *)
+
+Goal let a := 0+0 in a=a.
+intro.
+change 0 in (value of a).
+change ((fun A:Type => A) nat) in (type of a).