diff --git a/src/dune_pkg/local_package.ml b/src/dune_pkg/local_package.ml index 5a0c6ceecc7..ec6f0a61c92 100644 --- a/src/dune_pkg/local_package.ml +++ b/src/dune_pkg/local_package.ml @@ -1,12 +1,18 @@ open Import module Package_constraint = Dune_lang.Package_constraint +module Origin = struct + type t = + | Opam_file + | Pin_stanza +end + type pin = { loc : Loc.t ; version : Package_version.t ; url : Loc.t * OpamUrl.t ; name : Package_name.t - ; origin : [ `Dune | `Opam ] + ; origin : Origin.t } type pins = pin Package_name.Map.t @@ -190,7 +196,7 @@ let of_package (t : Dune_lang.Package.t) = Package_version.of_opam_package_version (OpamPackage.version pkg) in let loc = Loc.in_file (Path.source file) in - name, { loc; version; url = loc, url; name; origin = `Opam }) + name, { loc; version; url = loc, url; name; origin = Opam_file }) |> Package_name.Map.of_list with | Ok x -> x diff --git a/src/dune_pkg/local_package.mli b/src/dune_pkg/local_package.mli index 72122d36533..41f0e5dd098 100644 --- a/src/dune_pkg/local_package.mli +++ b/src/dune_pkg/local_package.mli @@ -1,11 +1,17 @@ open Import +module Origin : sig + type t = + | Opam_file + | Pin_stanza +end + type pin = { loc : Loc.t ; version : Package_version.t ; url : Loc.t * OpamUrl.t ; name : Package_name.t - ; origin : [ `Dune | `Opam ] + ; origin : Origin.t } type pins = pin Package_name.Map.t diff --git a/src/dune_pkg/pin.ml b/src/dune_pkg/pin.ml index d0efe1cc135..38608937124 100644 --- a/src/dune_pkg/pin.ml +++ b/src/dune_pkg/pin.ml @@ -35,8 +35,8 @@ module DB = struct map = Package_name.Map.fold pins ~init:t.map ~f:(fun (pin : Local_package.pin) acc -> (match pin.origin with - | `Dune -> Code_error.raise "add_opam_pins: can only pin opam packages" [] - | `Opam -> ()); + | Pin_stanza -> Code_error.raise "add_opam_pins: can only pin opam packages" [] + | Opam_file -> ()); Package_name.Map.update acc pin.name ~f:(function | None -> Some (pin, t.context) | Some _ as x -> x)) @@ -50,7 +50,7 @@ module DB = struct ; map = Pin_stanza.Project.map pins |> Package_name.Map.map ~f:(fun (url, pkg) -> - let pkg = local_package_of_pin pkg ~url ~origin:`Dune in + let pkg = local_package_of_pin pkg ~url ~origin:Pin_stanza in pkg, context) } ;; @@ -117,7 +117,7 @@ module DB = struct Dune_lang.Pin_stanza.Workspace.map pins |> String.Map.map ~f:(fun map -> Package_name.Map.map map ~f:(fun (url, package) -> - local_package_of_pin package ~url ~origin:`Dune)) + local_package_of_pin package ~url ~origin:Pin_stanza)) ;; let extract (t : t) ~names = @@ -261,7 +261,7 @@ let resolve (t : DB.t) ~(scan_project : Scan_project.t) ; Stack.pp stack ] in - let opam_package stack (package : Local_package.pin) = + let pinned_via_opam stack (package : Local_package.pin) = let* resolved_package = Pinned_package.resolve_package package in resolve package.name resolved_package; Resolved_package.opam_file resolved_package @@ -276,7 +276,7 @@ let resolve (t : DB.t) ~(scan_project : Scan_project.t) ; version ; name ; loc = package.loc - ; origin = `Opam + ; origin = Opam_file } in let stack = Stack.push stack package in @@ -286,7 +286,7 @@ let resolve (t : DB.t) ~(scan_project : Scan_project.t) |> Fiber.parallel_iter ~f:(fun package -> Pinned_package.resolve_package package >>| resolve package.name) in - let dune_package packages (package : Local_package.pin) = + let pinned_via_dune packages (package : Local_package.pin) = match Package_name.Map.find packages package.name with | None -> User_error.raise @@ -331,13 +331,13 @@ let resolve (t : DB.t) ~(scan_project : Scan_project.t) |> Fiber.parallel_iter ~f:(fun (package : Local_package.pin) -> let stack = Stack.push stack package in match package.origin with - | `Opam -> opam_package stack package - | `Dune -> + | Opam_file -> pinned_via_opam stack package + | Pin_stanza -> eval_url package.url >>= (function - | None -> opam_package stack package + | None -> pinned_via_opam stack package | Some (more_sources, packages) -> - dune_package packages package; + pinned_via_dune packages package; let more_sources = DB.add_opam_pins more_sources packages in loop stack more_sources)) in