diff options
| -rw-r--r-- | toplevel/stm.ml | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/toplevel/stm.ml b/toplevel/stm.ml index fdd24f7e48..f63cd9e4e5 100644 --- a/toplevel/stm.ml +++ b/toplevel/stm.ml @@ -533,10 +533,13 @@ end = struct (* {{{ *) let freeze marhallable id = VCS.set_state id (freeze_global_state marhallable) let exn_on id ?valid e = - let loc = Option.default Loc.ghost (Loc.get_loc e) in - let msg = string_of_ppcmds (print e) in - Pp.feedback ~state_id:id (Interface.ErrorMsg (loc, msg)); - Stateid.add e ?valid id + match Stateid.get e with + | Some _ -> e + | None -> + let loc = Option.default Loc.ghost (Loc.get_loc e) in + let msg = string_of_ppcmds (print e) in + Pp.feedback ~state_id:id (Interface.ErrorMsg (loc, msg)); + Stateid.add e ?valid id let define ?(redefine=false) ?(cache=`No) f id = let str_id = Stateid.to_string id in |
