diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-31 21:34:47 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-01 01:45:00 +0900 |
| commit | 20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d (patch) | |
| tree | d1fc3aaee3b2829d71f49581e1abc86ee62e525f /crates/shirabe/src/dependency_resolver/pool_builder.rs | |
| parent | 29df13733ae4acfd2b172bc9fd9ac9fd28efa013 (diff) | |
| download | php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.gz php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.zst php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.zip | |
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/pool_builder.rs')
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/pool_builder.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/crates/shirabe/src/dependency_resolver/pool_builder.rs b/crates/shirabe/src/dependency_resolver/pool_builder.rs index f85eb31..18d2db4 100644 --- a/crates/shirabe/src/dependency_resolver/pool_builder.rs +++ b/crates/shirabe/src/dependency_resolver/pool_builder.rs @@ -625,10 +625,12 @@ impl PoolBuilder { // right version. It'd be more work to figure out which versions and which aliases of those versions this may // apply to if let Some(reference) = self.root_references.get(&name) { - // TODO(phase-c): apply root references to the package; PHP mutates the shared package in - // place and skips already locked/fixed packages, which needs &mut access through the - // handle plus a handle-based Request. - let _ = reference; + // do not modify the references on already locked or fixed packages + if !request.is_locked_package(package.clone()) + && !request.is_fixed_package(package.clone()) + { + package.set_source_dist_references(reference); + } } // if propagateUpdate is false we are loading a fixed or locked package, root aliases do not apply as they are @@ -664,8 +666,7 @@ impl PoolBuilder { let new_index = self.index_counter; self.index_counter += 1; - self.packages - .insert(new_index, alias_handle.clone().into()); + self.packages.insert(new_index, alias_handle.clone().into()); self.alias_map .entry(alias_handle.get_alias_of().ptr_id().to_string()) .or_insert_with(IndexMap::new) |
