diff options
Diffstat (limited to 'library')
-rw-r--r-- | library/library.ml | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/library/library.ml b/library/library.ml index c7f3ba433..a653ccc74 100644 --- a/library/library.ml +++ b/library/library.ml @@ -362,8 +362,12 @@ let rec intern_library (dir, f) = pr_dirpath m.library_name ++ spc () ++ str "and not library" ++ spc() ++ pr_dirpath dir); compunit_cache := CompilingModulemap.add dir m !compunit_cache; - List.iter (intern_mandatory_library dir) m.library_deps; - m + try + List.iter (intern_mandatory_library dir) m.library_deps; + m + with e -> + compunit_cache := CompilingModulemap.remove dir !compunit_cache; + raise e and intern_mandatory_library caller (dir,d) = let m = intern_absolute_library_from dir in |