diff options
author | 2017-10-04 21:05:48 +0200 | |
---|---|---|
committer | 2017-10-04 21:05:48 +0200 | |
commit | 1b985e084e89c8d952644031dd03c9b2736261aa (patch) | |
tree | cf1d6a1becc3cc92716dcdc645fb7384daee231d | |
parent | cf39d22df11bc33d393db42dfd4b5b0a2c8ded16 (diff) | |
parent | cf265ef5e32f08562db702fb545fb5d346e0e924 (diff) |
Merge PR #1078: Report missing arguments in error message
-rw-r--r-- | plugins/ltac/tacinterp.ml | 8 | ||||
-rw-r--r-- | test-suite/output/ltac_extra_args.out | 8 | ||||
-rw-r--r-- | test-suite/output/ltac_extra_args.v | 10 |
3 files changed, 25 insertions, 1 deletions
diff --git a/plugins/ltac/tacinterp.ml b/plugins/ltac/tacinterp.ml index 18348bc11..20f117ff4 100644 --- a/plugins/ltac/tacinterp.ml +++ b/plugins/ltac/tacinterp.ml @@ -1394,7 +1394,13 @@ and interp_app loc ist fv largs : Val.t Ftactic.t = if List.is_empty lval then Ftactic.return v else interp_app loc ist v lval else Ftactic.return (of_tacvalue (VFun(push_appl appl largs,trace,newlfun,lvar,body))) - | _ -> fail + | (VFun(appl,trace,olfun,[],body)) -> + let extra_args = List.length largs in + Tacticals.New.tclZEROMSG (str "Illegal tactic application: got " ++ + str (string_of_int extra_args) ++ + str " extra " ++ str (String.plural extra_args "argument") ++ + str ".") + | VRec(_,_) -> fail else fail (* Gives the tactic corresponding to the tactic value *) diff --git a/test-suite/output/ltac_extra_args.out b/test-suite/output/ltac_extra_args.out new file mode 100644 index 000000000..77e799d35 --- /dev/null +++ b/test-suite/output/ltac_extra_args.out @@ -0,0 +1,8 @@ +The command has indeed failed with message: +Illegal tactic application: got 1 extra argument. +The command has indeed failed with message: +Illegal tactic application: got 2 extra arguments. +The command has indeed failed with message: +Illegal tactic application: got 1 extra argument. +The command has indeed failed with message: +Illegal tactic application: got 2 extra arguments. diff --git a/test-suite/output/ltac_extra_args.v b/test-suite/output/ltac_extra_args.v new file mode 100644 index 000000000..4caf619fe --- /dev/null +++ b/test-suite/output/ltac_extra_args.v @@ -0,0 +1,10 @@ +Ltac foo := idtac. +Ltac bar H := idtac. + +Goal True. +Proof. + Fail foo H. + Fail foo H H'. + Fail bar H H'. + Fail bar H H' H''. +Abort. |