diff options
| author | Maxime Dénès | 2016-08-30 17:29:44 +0200 |
|---|---|---|
| committer | Maxime Dénès | 2016-08-30 17:29:44 +0200 |
| commit | dea5e8a7ecb2120cccd2d2631ddbf892e99bffda (patch) | |
| tree | d55a9001d96f5c4274388be84cec02060514848e /library | |
| parent | cc6957b0dbb19a4c0ca505650d252d9486088a5f (diff) | |
Emit a warning on Require inside a module.
Diffstat (limited to 'library')
| -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 4bd71888e0..d44f796a7a 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))) |
