Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Output lifetime elision chooses arbitrarily among several input origins · case 01
Output lifetime elision chooses arbitrarily among several input origins.
Output lifetime elision chooses arbitrarily among several input origins · case 02
Output lifetime elision chooses arbitrarily among several input origins.
Output lifetime elision chooses arbitrarily among several input origins · case 03
Output lifetime elision chooses arbitrarily among several input origins.
Output lifetime elision chooses arbitrarily among several input origins · case 04
Output lifetime elision chooses arbitrarily among several input origins.
Output lifetime elision chooses arbitrarily among several input origins · case 05
Output lifetime elision chooses arbitrarily among several input origins.
Receiver-based output elision is replaced by another argument lifetime · case 01
Receiver-based output elision is replaced by another argument lifetime.
Receiver-based output elision is replaced by another argument lifetime · case 02
Receiver-based output elision is replaced by another argument lifetime.
Receiver-based output elision is replaced by another argument lifetime · case 03
Receiver-based output elision is replaced by another argument lifetime.
Receiver-based output elision is replaced by another argument lifetime · case 04
Receiver-based output elision is replaced by another argument lifetime.
Receiver-based output elision is replaced by another argument lifetime · case 05
Receiver-based output elision is replaced by another argument lifetime.
A later return-source alternative lacks a caller-provided lifetime · case 01
A later return-source alternative lacks a caller-provided lifetime.
A later return-source alternative lacks a caller-provided lifetime · case 02
A later return-source alternative lacks a caller-provided lifetime.
A later return-source alternative lacks a caller-provided lifetime · case 03
A later return-source alternative lacks a caller-provided lifetime.
A later return-source alternative lacks a caller-provided lifetime · case 04
A later return-source alternative lacks a caller-provided lifetime.
A later return-source alternative lacks a caller-provided lifetime · case 05
A later return-source alternative lacks a caller-provided lifetime.
A union return provenance hides a reference to a local · case 01
A union return provenance hides a reference to a local.
A union return provenance hides a reference to a local · case 02
A union return provenance hides a reference to a local.
A union return provenance hides a reference to a local · case 03
A union return provenance hides a reference to a local.
A union return provenance hides a reference to a local · case 04
A union return provenance hides a reference to a local.
A union return provenance hides a reference to a local · case 05
A union return provenance hides a reference to a local.
A mutable output is justified by mutability of an unrelated input · case 01
A mutable output is justified by mutability of an unrelated input.
A mutable output is justified by mutability of an unrelated input · case 02
A mutable output is justified by mutability of an unrelated input.
A mutable output is justified by mutability of an unrelated input · case 03
A mutable output is justified by mutability of an unrelated input.
A mutable output is justified by mutability of an unrelated input · case 04
A mutable output is justified by mutability of an unrelated input.
A mutable output is justified by mutability of an unrelated input · case 05
A mutable output is justified by mutability of an unrelated input.
A return lifetime compares extent sizes instead of point containment · case 01
A return lifetime compares extent sizes instead of point containment.
A return lifetime compares extent sizes instead of point containment · case 02
A return lifetime compares extent sizes instead of point containment.
A return lifetime compares extent sizes instead of point containment · case 03
A return lifetime compares extent sizes instead of point containment.
A return lifetime compares extent sizes instead of point containment · case 04
A return lifetime compares extent sizes instead of point containment.
A return lifetime compares extent sizes instead of point containment · case 05
A return lifetime compares extent sizes instead of point containment.
A lifetime bound by an inner signature escapes one binder level · case 01
A lifetime bound by an inner signature escapes one binder level.
A lifetime bound by an inner signature escapes one binder level · case 02
A lifetime bound by an inner signature escapes one binder level.
A lifetime bound by an inner signature escapes one binder level · case 03
A lifetime bound by an inner signature escapes one binder level.
A lifetime bound by an inner signature escapes one binder level · case 04
A lifetime bound by an inner signature escapes one binder level.
A lifetime bound by an inner signature escapes one binder level · case 05
A lifetime bound by an inner signature escapes one binder level.
An unused lifetime parameter survives when another parameter is used · case 01
An unused lifetime parameter survives when another parameter is used.
An unused lifetime parameter survives when another parameter is used · case 02
An unused lifetime parameter survives when another parameter is used.
An unused lifetime parameter survives when another parameter is used · case 03
An unused lifetime parameter survives when another parameter is used.
An unused lifetime parameter survives when another parameter is used · case 04
An unused lifetime parameter survives when another parameter is used.
An unused lifetime parameter survives when another parameter is used · case 05
An unused lifetime parameter survives when another parameter is used.
Capture inference forgets to resolve later captured places · case 01
Capture inference forgets to resolve later captured places.
Capture inference forgets to resolve later captured places · case 02
Capture inference forgets to resolve later captured places.
Capture inference forgets to resolve later captured places · case 03
Capture inference forgets to resolve later captured places.
Capture inference forgets to resolve later captured places · case 04
Capture inference forgets to resolve later captured places.
Capture inference forgets to resolve later captured places · case 05
Capture inference forgets to resolve later captured places.
Ancestor capture does not subsume a nested captured place · case 01
Ancestor capture does not subsume a nested captured place.
Ancestor capture does not subsume a nested captured place · case 02
Ancestor capture does not subsume a nested captured place.
Ancestor capture does not subsume a nested captured place · case 03
Ancestor capture does not subsume a nested captured place.
Ancestor capture does not subsume a nested captured place · case 04
Ancestor capture does not subsume a nested captured place.
Ancestor capture does not subsume a nested captured place · case 05
Ancestor capture does not subsume a nested captured place.
A unique capture is duplicated while constructing the environment · case 01
A unique capture is duplicated while constructing the environment.
A unique capture is duplicated while constructing the environment · case 02
A unique capture is duplicated while constructing the environment.
A unique capture is duplicated while constructing the environment · case 03
A unique capture is duplicated while constructing the environment.
A unique capture is duplicated while constructing the environment · case 04
A unique capture is duplicated while constructing the environment.
A unique capture is duplicated while constructing the environment · case 05
A unique capture is duplicated while constructing the environment.
A consuming closure is incorrectly admitted as repeatedly mutable-callable · case 01
A consuming closure is incorrectly admitted as repeatedly mutable-callable.
A consuming closure is incorrectly admitted as repeatedly mutable-callable · case 02
A consuming closure is incorrectly admitted as repeatedly mutable-callable.
A consuming closure is incorrectly admitted as repeatedly mutable-callable · case 03
A consuming closure is incorrectly admitted as repeatedly mutable-callable.
A consuming closure is incorrectly admitted as repeatedly mutable-callable · case 04
A consuming closure is incorrectly admitted as repeatedly mutable-callable.
A consuming closure is incorrectly admitted as repeatedly mutable-callable · case 05
A consuming closure is incorrectly admitted as repeatedly mutable-callable.
A single mutated capture fails to upgrade closure call capability · case 01
A single mutated capture fails to upgrade closure call capability.
A single mutated capture fails to upgrade closure call capability · case 02
A single mutated capture fails to upgrade closure call capability.
A single mutated capture fails to upgrade closure call capability · case 03
A single mutated capture fails to upgrade closure call capability.
A single mutated capture fails to upgrade closure call capability · case 04
A single mutated capture fails to upgrade closure call capability.
A single mutated capture fails to upgrade closure call capability · case 05
A single mutated capture fails to upgrade closure call capability.
A later captured stack reference escapes with the closure environment · case 01
A later captured stack reference escapes with the closure environment.
A later captured stack reference escapes with the closure environment · case 02
A later captured stack reference escapes with the closure environment.
A later captured stack reference escapes with the closure environment · case 03
A later captured stack reference escapes with the closure environment.
A later captured stack reference escapes with the closure environment · case 04
A later captured stack reference escapes with the closure environment.
A later captured stack reference escapes with the closure environment · case 05
A later captured stack reference escapes with the closure environment.
Closure call sites extend beyond inferred environment lifetime · case 01
Closure call sites extend beyond inferred environment lifetime.
Closure call sites extend beyond inferred environment lifetime · case 02
Closure call sites extend beyond inferred environment lifetime.
Closure call sites extend beyond inferred environment lifetime · case 03
Closure call sites extend beyond inferred environment lifetime.
Closure call sites extend beyond inferred environment lifetime · case 04
Closure call sites extend beyond inferred environment lifetime.
Closure call sites extend beyond inferred environment lifetime · case 05
Closure call sites extend beyond inferred environment lifetime.
An environment outlives the storage of a captured reference · case 01
An environment outlives the storage of a captured reference.
An environment outlives the storage of a captured reference · case 02
An environment outlives the storage of a captured reference.
An environment outlives the storage of a captured reference · case 03
An environment outlives the storage of a captured reference.
An environment outlives the storage of a captured reference · case 04
An environment outlives the storage of a captured reference.
An environment outlives the storage of a captured reference · case 05
An environment outlives the storage of a captured reference.
A packed captured field is borrowed as though it were aligned · case 01
A packed captured field is borrowed as though it were aligned.
A packed captured field is borrowed as though it were aligned · case 02
A packed captured field is borrowed as though it were aligned.
A packed captured field is borrowed as though it were aligned · case 03
A packed captured field is borrowed as though it were aligned.
A packed captured field is borrowed as though it were aligned · case 04
A packed captured field is borrowed as though it were aligned.
A packed captured field is borrowed as though it were aligned · case 05
A packed captured field is borrowed as though it were aligned.
Capture precision partially moves a value whose destructor needs the whole aggregate · case 01
Capture precision partially moves a value whose destructor needs the whole aggregate.
Capture precision partially moves a value whose destructor needs the whole aggregate · case 02
Capture precision partially moves a value whose destructor needs the whole aggregate.
Capture precision partially moves a value whose destructor needs the whole aggregate · case 03
Capture precision partially moves a value whose destructor needs the whole aggregate.
Capture precision partially moves a value whose destructor needs the whole aggregate · case 04
Capture precision partially moves a value whose destructor needs the whole aggregate.
Capture precision partially moves a value whose destructor needs the whole aggregate · case 05
Capture precision partially moves a value whose destructor needs the whole aggregate.
A borrowed local live at yield is not promoted into generator storage · case 01
A borrowed local live at yield is not promoted into generator storage.
A borrowed local live at yield is not promoted into generator storage · case 02
A borrowed local live at yield is not promoted into generator storage.
A borrowed local live at yield is not promoted into generator storage · case 03
A borrowed local live at yield is not promoted into generator storage.
A borrowed local live at yield is not promoted into generator storage · case 04
A borrowed local live at yield is not promoted into generator storage.
A borrowed local live at yield is not promoted into generator storage · case 05
A borrowed local live at yield is not promoted into generator storage.
A movable generator is accepted with one retained self reference · case 01
A movable generator is accepted with one retained self reference.
A movable generator is accepted with one retained self reference · case 02
A movable generator is accepted with one retained self reference.
A movable generator is accepted with one retained self reference · case 03
A movable generator is accepted with one retained self reference.
A movable generator is accepted with one retained self reference · case 04
A movable generator is accepted with one retained self reference.
A movable generator is accepted with one retained self reference · case 05
A movable generator is accepted with one retained self reference.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗