✓
Passing Passing: the compiler rejects this program as expected.
Code
// Pins the refusal: a vendored tree whose contents no longer match `vendor.lock`
// does not compile, and the diagnostic names the FILE that drifted — not just
// the binding, and not just a hash mismatch.
//
// The lock here records a hash for `main.zig` that the file on disk does not
// have. That is the shape of a supply-chain swap: the source moved under a
// dependency the program already trusts.
~import std/vendor
~std/vendor:bindings {
koru/vaxis: ./vendored/vaxis
}
~tor main {}
~proc main|zig {
}
~main()
Supporting Files
pub const name = "vaxis";
Actual compiler output
error[KORU171]: vendored `koru/vaxis` drifted from its pin: changed `main.zig`. Review it with `koruc tests/regression/100_MODULE_SYSTEM/130_PACKAGES/130_004_vendor_drift_refused/input.kz vendor diff`, then re-pin with `vendor sync` once you have read the change
--> tests/regression/100_MODULE_SYSTEM/130_PACKAGES/130_004_vendor_drift_refused/input.kz:11:0Must fail at runtime:
Program must error when executed.
Error output must contain
drifted from its pin: changed `main.zig`Flows
flow ~bindings click a branch to expand · @labels scroll to their anchor
bindings (source: koru/vaxis: ./vendored/vaxis)
flow ~main click a branch to expand · @labels scroll to their anchor
main
Test Configuration
MUST_ERROR