Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a loom version of
std::boxed::Box
. To make it possible/easier to write loom tests that detect memory leaks if the library under test usually usesBox
.However, box is magical, so a normal crate can't replicate its API to 100%. A normal box can be dereferenced so the box is consumed and the value moved back to the stack. Normal crates can't implement this, so I added a
Box::into_value(self) -> T
method instead.As you can see, there is one test that is marked with
#[ignore]
. It's a test that checks if loom correctly catches a memory leak. And it does, but it causes an illegal instruction and the process dies. So#[should_panic]
is not enough to capture the panic here sadly. Not sure if it's possible to work around this currently? I guess loom first has to not cause illegal instructions when it detects a memory leak.