summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--toplevel/toploop.ml12
1 files changed, 9 insertions, 3 deletions
diff --git a/toplevel/toploop.ml b/toplevel/toploop.ml
index b74bbfca5..53a587a92 100644
--- a/toplevel/toploop.ml
+++ b/toplevel/toploop.ml
@@ -48,9 +48,15 @@ let setvalue name v =
let rec eval_path = function
| Pident id ->
- if Ident.persistent id
- then Symtable.get_global_value id
- else getvalue (Ident.name id)
+ if Ident.persistent id || Ident.global id then
+ Symtable.get_global_value id
+ else begin
+ let name = Ident.name id in
+ try
+ Hashtbl.find toplevel_value_bindings name
+ with Not_found ->
+ raise (Symtable.Error(Symtable.Undefined_global name))
+ end
| Pdot(p, s, pos) ->
Obj.field (eval_path p) pos
| Papply(p1, p2) ->