@@ -1198,12 +1198,24 @@ module DB = struct
11981198 ; dep_pkg_digest : Pkg_digest .t
11991199 }
12001200
1201+ let dep_equal (dep : dep ) { dep_pkg; dep_loc; dep_pkg_digest } =
1202+ Pkg. equal dep.dep_pkg dep_pkg
1203+ && Loc. equal dep.dep_loc dep_loc
1204+ && Pkg_digest. equal dep.dep_pkg_digest dep_pkg_digest
1205+ ;;
1206+
12011207 type entry =
12021208 { pkg : Pkg .t
12031209 ; deps : dep list
12041210 ; pkg_digest : Pkg_digest .t
12051211 }
12061212
1213+ let entry_equal (entry : entry ) { pkg; deps; pkg_digest } =
1214+ Pkg. equal entry.pkg pkg
1215+ && List. equal dep_equal entry.deps deps
1216+ && Pkg_digest. equal entry.pkg_digest pkg_digest
1217+ ;;
1218+
12071219 let entries_by_name_of_lock_dir
12081220 (lock_dir : Dune_pkg.Lock_dir.t )
12091221 ~platform
@@ -1257,18 +1269,7 @@ module DB = struct
12571269 (* Associate each package's digest with the package and its dependencies. *)
12581270 type t = entry Pkg_digest.Map .t
12591271
1260- let equal a b =
1261- Pkg_digest.Map. equal a b ~equal: (fun (entry : entry ) { pkg; deps; pkg_digest } ->
1262- Pkg. equal entry.pkg pkg
1263- && List. equal
1264- (fun (dep : dep ) { dep_pkg; dep_loc; dep_pkg_digest } ->
1265- Pkg. equal dep.dep_pkg dep_pkg
1266- && Loc. equal dep.dep_loc dep_loc
1267- && Pkg_digest. equal dep.dep_pkg_digest dep_pkg_digest)
1268- entry.deps
1269- deps
1270- && Pkg_digest. equal entry.pkg_digest pkg_digest)
1271- ;;
1272+ let equal = Pkg_digest.Map. equal ~equal: entry_equal
12721273
12731274 let of_lock_dir lock_dir ~platform ~system_provided =
12741275 entries_by_name_of_lock_dir lock_dir ~platform ~system_provided
@@ -1337,12 +1338,10 @@ module DB = struct
13371338 ; system_provided : Package.Name.Set .t
13381339 }
13391340
1340- let equal t t2 =
1341- phys_equal t t2
1342- ||
1343- let { pkg_digest_table; system_provided } = t2 in
1344- Pkg_table. equal t.pkg_digest_table pkg_digest_table
1345- && Package.Name.Set. equal t.system_provided system_provided
1341+ let equal t ({ pkg_digest_table; system_provided } as t' ) =
1342+ phys_equal t t'
1343+ || (Pkg_table. equal t.pkg_digest_table pkg_digest_table
1344+ && Package.Name.Set. equal t.system_provided system_provided)
13461345 ;;
13471346
13481347 let hash = `Do_not_hash
@@ -1435,8 +1434,7 @@ end = struct
14351434 && DB. equal db t.db
14361435 ;;
14371436
1438- let hash { db; pkg_digest; universe } =
1439- let _ = db in
1437+ let hash { db = _ ; pkg_digest; universe } =
14401438 Tuple.T2. hash Pkg_digest. hash Package_universe. hash (pkg_digest, universe)
14411439 ;;
14421440
0 commit comments