aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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).