@@ -360,7 +360,7 @@ module Solver = struct
360
360
and real_impl =
361
361
{ pkg : OpamPackage .t
362
362
; conflict_class : OpamPackage.Name .t list
363
- ; requires : dependency list
363
+ ; requires : dependency list Lazy .t
364
364
}
365
365
366
366
and dependency =
@@ -454,7 +454,7 @@ module Solver = struct
454
454
let requires _ = function
455
455
| Dummy | Reject _ -> []
456
456
| VirtualImpl (_ , deps ) -> deps
457
- | RealImpl impl -> impl.requires
457
+ | RealImpl impl -> Lazy. force impl.requires
458
458
;;
459
459
460
460
let conflict_class = function
@@ -565,15 +565,16 @@ module Solver = struct
565
565
let pkg = OpamPackage. create role version in
566
566
(* Note: we ignore depopts here: see opam/doc/design/depopts-and-features *)
567
567
let requires =
568
- let rank = Rank. assign () in
569
- let make_deps importance xform get =
570
- get opam
571
- |> Context. filter_deps context pkg
572
- |> xform
573
- |> list_deps ~importance ~rank
574
- in
575
- make_deps Ensure ensure OpamFile.OPAM. depends
576
- @ make_deps Prevent prevent OpamFile.OPAM. conflicts
568
+ lazy
569
+ (let rank = Rank. assign () in
570
+ let make_deps importance xform get =
571
+ get opam
572
+ |> Context. filter_deps context pkg
573
+ |> xform
574
+ |> list_deps ~importance ~rank
575
+ in
576
+ make_deps Ensure ensure OpamFile.OPAM. depends
577
+ @ make_deps Prevent prevent OpamFile.OPAM. conflicts)
577
578
in
578
579
let conflict_class = OpamFile.OPAM. conflict_class opam in
579
580
Some (RealImpl { pkg; requires; conflict_class }))
0 commit comments