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.
clippy warned that some
Result
types were quite large due to their massive error variant. For instance,interpreter::RuntimeError
is 304 bytes, which means the following function returns a whopping 304 bytes (I'm assuming there's a niche somewhere; if not, then 305) despite itsOk
variant having no payload!numbat/numbat/src/bytecode_interpreter.rs
Lines 308 to 312 in b175c31
The same goes for
TypeCheckError
(264 bytes) andNumbatError
(also 304 as it wrapsRuntimeError
). This seemed like a lot of data to allocate space to the error case.I took clippy’s advice and boxed the errors so that they'd take 8 bytes at most. This obviously adds an indirection to the error path but uses much less stack space for the
Ok
path.