From 3ef7095aa0c8cdb6c1f15d46304bbe8c2e6393d6 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 22 Aug 2026 19:47:23 +0900 Subject: fix(package): dispatch get_links_for_type on Link::TYPE_* values PHP resolves a link kind through `$package->{'get'.ucfirst($linkType)}()`, so the argument is a `Link::$TYPES` value ("requires", "devRequires", ...). The helper matched the composer.json key names ("require", "require-dev", ...) instead, so every caller passing a `Link::TYPE_*` constant got an empty map back: `show ` printed none of its requires/provides/conflicts/ replaces sections, and `--format=json` carried none of those keys. The two callers that were passing composer.json keys now pass the matching `method`, as PHP does. --- crates/shirabe/src/package/dumper/array_dumper.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'crates/shirabe/src/package/dumper/array_dumper.rs') diff --git a/crates/shirabe/src/package/dumper/array_dumper.rs b/crates/shirabe/src/package/dumper/array_dumper.rs index 303a5871..336c96b0 100644 --- a/crates/shirabe/src/package/dumper/array_dumper.rs +++ b/crates/shirabe/src/package/dumper/array_dumper.rs @@ -92,8 +92,8 @@ impl ArrayDumper { data.insert("dist".to_string(), PhpMixed::Array(dist)); } - for type_name in SUPPORTED_LINK_TYPES.keys() { - let links = package.get_links_for_type(type_name); + for (type_name, opts) in SUPPORTED_LINK_TYPES.iter() { + let links = package.get_links_for_type(opts.method); if links.is_empty() { continue; } -- cgit v1.3.1-4-g156e