From dea5e8a7ecb2120cccd2d2631ddbf892e99bffda Mon Sep 17 00:00:00 2001 From: Maxime Dénès Date: Tue, 30 Aug 2016 17:29:44 +0200 Subject: Emit a warning on Require inside a module. --- library/library.ml | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'library/library.ml') 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))) -- cgit v1.2.3