aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-04-02 15:53:14 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-04-09 11:52:17 +0200
commit70930579d8454a4ff50ee0ea1e97a55863bf01f6 (patch)
treea944648db2762f53f70f6b4d935942131afa80cc /interp
parent1a43fda0dc9bb8d100808426980446353f8f1ae3 (diff)
More explicit message when a {struct x} argument refers to a local definition.
Diffstat (limited to 'interp')
-rw-r--r--interp/topconstr.ml7
1 files changed, 6 insertions, 1 deletions
diff --git a/interp/topconstr.ml b/interp/topconstr.ml
index 89e04b69d..513fa8f16 100644
--- a/interp/topconstr.ml
+++ b/interp/topconstr.ml
@@ -176,7 +176,12 @@ let split_at_annot bl na =
in
(List.rev ans, CLocalAssum (r, k, t) :: rest)
end
- | CLocalDef _ as x :: rest -> aux (x :: acc) rest
+ | CLocalDef ((_,na),_,_) as x :: rest ->
+ if Name.equal (Name id) na then
+ user_err ~loc
+ (Nameops.pr_id id ++ str" must be a proper parameter and not a local definition.")
+ else
+ aux (x :: acc) rest
| CLocalPattern (loc,_,_) :: rest ->
Loc.raise ~loc (Stream.Error "pattern with quote not allowed after fix")
| [] ->