diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2016-08-30 17:29:44 +0200 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2016-08-30 17:29:44 +0200 |
commit | dea5e8a7ecb2120cccd2d2631ddbf892e99bffda (patch) | |
tree | d55a9001d96f5c4274388be84cec02060514848e /library/library.ml | |
parent | cc6957b0dbb19a4c0ca505650d252d9486088a5f (diff) |
Emit a warning on Require inside a module.
Diffstat (limited to 'library/library.ml')
-rw-r--r-- | library/library.ml | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/library/library.ml b/library/library.ml index 4bd71888e..d44f796a7 100644 --- a/library/library.ml +++ b/library/library.ml @@ -553,12 +553,20 @@ let in_require : require_obj -> obj = let (f_xml_require, xml_require) = Hook.make ~default:ignore () +let warn_require_in_module = + CWarnings.create ~name:"require-in-module" ~category:"deprecated" + (fun () -> strbrk "Require inside a module is" ++ + strbrk " deprecated and strongly discouraged. " ++ + strbrk "You can Require a module at toplevel " ++ + strbrk "and optionally Import it inside another one.") + let require_library_from_dirpath modrefl export = let needed, contents = List.fold_left rec_intern_library ([], DPMap.empty) modrefl in let needed = List.rev_map (fun dir -> DPMap.find dir contents) needed in let modrefl = List.map fst modrefl in if Lib.is_module_or_modtype () then begin + warn_require_in_module (); add_anonymous_leaf (in_require (needed,modrefl,None)); Option.iter (fun exp -> add_anonymous_leaf (in_import_library (modrefl,exp))) |