From 68f4147869c7ccb1c0a07cab7a7b1524bdba9baa Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Mon, 3 Sep 2018 10:19:05 +0400 Subject: [PATCH] Simplify some Result.List.all Signed-off-by: Rudi Grinberg --- src/inline_tests.ml | 24 ++++++++++-------------- src/preprocessing.ml | 18 ++++++++---------- src/sub_system.ml | 2 +- 3 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/inline_tests.ml b/src/inline_tests.ml index 4788f123..d4952cfd 100644 --- a/src/inline_tests.ml +++ b/src/inline_tests.ml @@ -66,19 +66,17 @@ module Backend = struct { info ; lib ; runner_libraries = - Result.List.all (List.map info.runner_libraries ~f:resolve) + Result.List.map info.runner_libraries ~f:resolve ; extends = let open Result.O in - Result.List.all - (List.map info.extends - ~f:(fun ((loc, name) as x) -> - resolve x >>= fun lib -> - match get ~loc lib with - | None -> - Error (Errors.exnf loc "%S is not an %s" - (Lib_name.to_string name) - (desc ~plural:false)) - | Some t -> Ok t)) + Result.List.map info.extends ~f:(fun ((loc, name) as x) -> + resolve x >>= fun lib -> + match get ~loc lib with + | None -> + Error (Errors.exnf loc "%S is not an %s" + (Lib_name.to_string name) + (desc ~plural:false)) + | Some t -> Ok t) } let dgen t = @@ -190,9 +188,7 @@ include Sub_system.Register_end_point( >>= fun libs -> Lib.DB.find_many (Scope.libs scope) [Dune_file.Library.best_name lib] >>= fun lib -> - Result.List.all - (List.map info.libraries - ~f:(Lib.DB.resolve (Scope.libs scope))) + Result.List.map info.libraries ~f:(Lib.DB.resolve (Scope.libs scope)) >>= fun more_libs -> Lib.closure (lib @ libs @ more_libs) in diff --git a/src/preprocessing.ml b/src/preprocessing.ml index 635f3987..ebfdf1a0 100644 --- a/src/preprocessing.ml +++ b/src/preprocessing.ml @@ -87,16 +87,14 @@ module Driver = struct ; lib = lazy lib ; replaces = let open Result.O in - Result.List.all - (List.map info.replaces - ~f:(fun ((loc, name) as x) -> - resolve x >>= fun lib -> - match get ~loc lib with - | None -> - Error (Errors.exnf loc "%a is not a %s" - Lib_name.pp_quoted name - (desc ~plural:false)) - | Some t -> Ok t)) + Result.List.map info.replaces ~f:(fun ((loc, name) as x) -> + resolve x >>= fun lib -> + match get ~loc lib with + | None -> + Error (Errors.exnf loc "%a is not a %s" + Lib_name.pp_quoted name + (desc ~plural:false)) + | Some t -> Ok t) } let dgen t = diff --git a/src/sub_system.ml b/src/sub_system.ml index 6bad3b48..ee477464 100644 --- a/src/sub_system.ml +++ b/src/sub_system.ml @@ -133,7 +133,7 @@ module Register_end_point(M : End_point) = struct (match M.Info.backends info with | None -> Ok None | Some l -> - Result.List.all (List.map l ~f:(M.Backend.resolve (Scope.libs c.scope))) + Result.List.map l ~f:(M.Backend.resolve (Scope.libs c.scope)) >>| Option.some) >>= fun written_by_user -> M.Backend.Selection_error.or_exn ~loc:(M.Info.loc info)