The defect
scripts/build-windows-release.ps1:86-87 — Assert-CrtPolicy declares
[Parameter(Mandatory)][string[]]$ImportOutput with no
[AllowEmptyCollection()]. It is byte-identical in shape to the Invoke-Checked
defect fixed under #512, and reachable from :114/:116.
Demonstrated during the review of #583: a DumpbinRunner returning no lines
yields
Cannot bind argument to parameter 'ImportOutput' because it is an empty array.
Why it has not fired
dumpbin is invoked without /nologo, so it always emits a banner and the
collection is never empty in practice. That is a coincidence of the current call
site, not a property of the function — adding /nologo, redirecting output, or
any future caller that filters lines re-arms it.
Severity
Low and pre-existing — identical on main, not currently reachable. Filed
rather than folded into #583 because that PR's scope was #512's call sites, and
widening it would have obscured the tree-equivalence its review depended on.
Done when
Assert-CrtPolicy accepts an explicitly empty import list (or refuses it with a
message that names what was missing rather than a binding error), and the pwsh
contract suite pins the empty case so it cannot regress.
Found while reviewing #583 (#512).
The defect
scripts/build-windows-release.ps1:86-87—Assert-CrtPolicydeclares[Parameter(Mandatory)][string[]]$ImportOutputwith no[AllowEmptyCollection()]. It is byte-identical in shape to theInvoke-Checkeddefect fixed under #512, and reachable from
:114/:116.Demonstrated during the review of #583: a
DumpbinRunnerreturning no linesyields
Why it has not fired
dumpbinis invoked without/nologo, so it always emits a banner and thecollection is never empty in practice. That is a coincidence of the current call
site, not a property of the function — adding
/nologo, redirecting output, orany future caller that filters lines re-arms it.
Severity
Low and pre-existing — identical on
main, not currently reachable. Filedrather than folded into #583 because that PR's scope was #512's call sites, and
widening it would have obscured the tree-equivalence its review depended on.
Done when
Assert-CrtPolicyaccepts an explicitly empty import list (or refuses it with amessage that names what was missing rather than a binding error), and the pwsh
contract suite pins the empty case so it cannot regress.
Found while reviewing #583 (#512).