aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp/dumpglob.ml
diff options
context:
space:
mode:
authorGravatar Guillaume Melquiond <guillaume.melquiond@inria.fr>2015-12-31 17:00:42 +0100
committerGravatar Guillaume Melquiond <guillaume.melquiond@inria.fr>2015-12-31 17:00:42 +0100
commitd3bc575c498ae09ad1003405d17a9d5cfbcf3cbf (patch)
tree0e4073818b6de4b44e4282bdabf5ab7fb7191072 /interp/dumpglob.ml
parentb2eaecf0e748e3c286e1ef337f72cee6d3475162 (diff)
Do not dump a glob reference when its location is ghost. (Fix bug #4469)
This patch also causes the code to finish a bit faster in the NoGlob case by not preparing a string for dump_string. It also optimizes Dumpglob.is_ghost by only checking whether the end position is zero. Note that no ghost locations were part of the glob files of the standard library before the patch. Note also that the html documentation of the standard library is bitwise identical before and after the patch.
Diffstat (limited to 'interp/dumpglob.ml')
-rw-r--r--interp/dumpglob.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/interp/dumpglob.ml b/interp/dumpglob.ml
index c18ceecab..c7d3da653 100644
--- a/interp/dumpglob.ml
+++ b/interp/dumpglob.ml
@@ -139,12 +139,15 @@ let interval loc =
loc1, loc2-1
let dump_ref loc filepath modpath ident ty =
- if !glob_output = Feedback then
+ match !glob_output with
+ | Feedback ->
Pp.feedback (Feedback.GlobRef (loc, filepath, modpath, ident, ty))
- else
+ | NoGlob -> ()
+ | _ when not (Loc.is_ghost loc) ->
let bl,el = interval loc in
dump_string (Printf.sprintf "R%d:%d %s %s %s %s\n"
bl el filepath modpath ident ty)
+ | _ -> ()
let dump_reference loc modpath ident ty =
let filepath = Names.DirPath.to_string (Lib.library_dp ()) in