From 27d00055df8691a6bd99aaf38633a7338b16cc6a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 11 Jul 2026 16:33:05 +0900 Subject: chore: use fully-qualified name for Rc/RefCell --- crates/shirabe/src/dependency_resolver/solver.rs | 50 +++++++++++++----------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'crates/shirabe/src/dependency_resolver/solver.rs') diff --git a/crates/shirabe/src/dependency_resolver/solver.rs b/crates/shirabe/src/dependency_resolver/solver.rs index 933f79f5..960cd7a6 100644 --- a/crates/shirabe/src/dependency_resolver/solver.rs +++ b/crates/shirabe/src/dependency_resolver/solver.rs @@ -23,12 +23,10 @@ use crate::package::BasePackageHandle; use indexmap::IndexMap; use shirabe_php_shim::{array_shift, array_unshift, microtime, spl_object_hash}; use shirabe_semver::constraint::AnyConstraint; -use std::cell::RefCell; -use std::rc::Rc; #[derive(Debug)] pub struct Solver { - pub(crate) policy: Rc, + pub(crate) policy: std::rc::Rc, pub(crate) pool: std::rc::Rc>, pub(crate) rules: RuleSet, @@ -41,7 +39,7 @@ pub struct Solver { /// Pairs of `(literals, level)` — PHP indexes into these with the BRANCH_* constants. pub(crate) branches: Vec<(Vec, i64)>, pub(crate) problems: Vec, - pub(crate) learned_pool: Vec>>>, + pub(crate) learned_pool: Vec>>>, pub(crate) learned_why: IndexMap, pub test_flag_learned_positive_literal: bool, @@ -54,7 +52,7 @@ impl Solver { const BRANCH_LEVEL: usize = 1; pub fn new( - policy: Rc, + policy: std::rc::Rc, pool: std::rc::Rc>, io: std::rc::Rc>, ) -> Self { @@ -205,14 +203,16 @@ impl Solver { .is_empty() { let mut problem = Problem::new(); - problem.add_rule(Rc::new(RefCell::new(Rule::Generic(GenericRule::new( - Vec::new(), - rule::RULE_ROOT_REQUIRE, - rule::ReasonData::RootRequire { - package_name: package_name.clone(), - constraint: active_constraint.clone(), - }, - ))))); + problem.add_rule(std::rc::Rc::new(std::cell::RefCell::new(Rule::Generic( + GenericRule::new( + Vec::new(), + rule::RULE_ROOT_REQUIRE, + rule::ReasonData::RootRequire { + package_name: package_name.clone(), + constraint: active_constraint.clone(), + }, + ), + )))); self.problems.push(problem); } } @@ -223,7 +223,7 @@ impl Solver { pub fn solve( &mut self, request: &Request, - platform_requirement_filter: Option>, + platform_requirement_filter: Option>, ) -> anyhow::Result> { let platform_requirement_filter = platform_requirement_filter .unwrap_or_else(|| PlatformRequirementFilterFactory::ignore_nothing()); @@ -244,7 +244,9 @@ impl Solver { while iterator.valid() { let rule = iterator.current(); self.watch_graph - .insert(Rc::new(RefCell::new(RuleWatchNode::new(rule)))); + .insert(std::rc::Rc::new(std::cell::RefCell::new( + RuleWatchNode::new(rule), + ))); iterator.next(); } @@ -293,7 +295,7 @@ impl Solver { /// If we find unit rules we make new decisions based on them /// /// Returns a `Rule` on conflict, otherwise `None`. - fn propagate(&mut self, level: i64) -> Option>> { + fn propagate(&mut self, level: i64) -> Option>> { while self.decisions.valid_offset(self.propagate_index) { let decision = self .decisions @@ -354,7 +356,7 @@ impl Solver { &mut self, level: i64, literal: i64, - rule: Rc>, + rule: std::rc::Rc>, ) -> anyhow::Result { let mut level = level + 1; @@ -390,13 +392,15 @@ impl Solver { // The same learned rule instance is shared between RuleSet, // RuleWatchGraph, and Decisions (PHP shares one object). - let new_rule = Rc::new(RefCell::new(Rule::Generic(new_rule))); + let new_rule = std::rc::Rc::new(std::cell::RefCell::new(Rule::Generic(new_rule))); self.rules.add(new_rule.clone(), RuleSet::TYPE_LEARNED)?; self.learned_why .insert(spl_object_hash(&*new_rule.borrow()), why); - let rule_node = Rc::new(RefCell::new(RuleWatchNode::new(new_rule.clone()))); + let rule_node = std::rc::Rc::new(std::cell::RefCell::new(RuleWatchNode::new( + new_rule.clone(), + ))); rule_node.borrow_mut().watch2_on_highest(&self.decisions); self.watch_graph.insert(rule_node); @@ -410,7 +414,7 @@ impl Solver { &mut self, level: i64, decision_queue: Vec, - rule: Rc>, + rule: std::rc::Rc>, ) -> anyhow::Result { // choose best package to install from decisionQueue let mut literals = self.policy.select_preferred_packages( @@ -433,7 +437,7 @@ impl Solver { fn analyze( &mut self, level: i64, - rule: Rc>, + rule: std::rc::Rc>, ) -> anyhow::Result<(i64, i64, GenericRule, i64)> { let analyzed_rule = rule.clone(); let mut rule = rule; @@ -602,7 +606,7 @@ impl Solver { fn analyze_unsolvable_rule( &self, problem: &mut Problem, - conflict_rule: Rc>, + conflict_rule: std::rc::Rc>, rule_seen: &mut IndexMap, ) { let why = spl_object_hash(&*conflict_rule.borrow()); @@ -630,7 +634,7 @@ impl Solver { problem.add_rule(conflict_rule); } - fn analyze_unsolvable(&mut self, conflict_rule: Rc>) { + fn analyze_unsolvable(&mut self, conflict_rule: std::rc::Rc>) { let mut problem = Problem::new(); problem.add_rule(conflict_rule.clone()); -- cgit v1.3.1