From efe5bdb1987411a473d4af15451a376d20928245 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 12 Jun 2026 03:19:34 +0900 Subject: refactor(php-shim): replace literal sprintf calls with format! Convert every sprintf() call with a compile-time literal format string to format!, implementing Display for PhpMixed (delegating to php_to_string) so PhpMixed values render with PHP string semantics through {}. Also merge the format!-wrapped and conditional-literal dynamic sites into single format! calls. Genuinely runtime format strings (table styles, configurable error messages, command synopsis, progress-bar modifiers, regex-built messages) still go through sprintf. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/package/locker.rs | 38 +++++++++++++++--------------------- 1 file changed, 16 insertions(+), 22 deletions(-) (limited to 'crates/shirabe/src/package/locker.rs') diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs index ed53143..c61d807 100644 --- a/crates/shirabe/src/package/locker.rs +++ b/crates/shirabe/src/package/locker.rs @@ -750,9 +750,9 @@ impl Locker { if name.is_empty() || version.is_empty() { return Err(LogicException { - message: sprintf( - "Package \"%s\" has no version or name and can not be locked", - &[PhpMixed::String(package.to_string())], + message: format!( + "Package \"{}\" has no version or name and can not be locked", + PhpMixed::String(package.to_string()), ), code: 0, } @@ -975,11 +975,8 @@ impl Locker { let _ = &results; let mut description = provider.get_pretty_version(); if provider.get_name() != link.get_target() { - 'outer: for (method, text) in [ - ("getReplaces", "replaced as %s by %s"), - ("getProvides", "provided as %s by %s"), - ] - .iter() + 'outer: for (method, verb) in + [("getReplaces", "replaced"), ("getProvides", "provided")].iter() { let provider_links = match *method { "getReplaces" => provider.get_replaces(), @@ -988,20 +985,17 @@ impl Locker { }; for provider_link in provider_links.values() { if provider_link.get_target() == link.get_target() { - description = sprintf( - text, - &[ - PhpMixed::String( - provider_link - .get_pretty_constraint() - .to_string(), - ), - PhpMixed::String(format!( - "{} {}", - provider.get_pretty_name(), - provider.get_pretty_version() - )), - ], + description = format!( + "{} as {} by {}", + verb, + PhpMixed::String( + provider_link.get_pretty_constraint().to_string(), + ), + PhpMixed::String(format!( + "{} {}", + provider.get_pretty_name(), + provider.get_pretty_version() + )), ); break 'outer; } -- cgit v1.3.1