Add {size/min_align/pref_align}_of_val intrinsic #21587
Closed
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.
Allows DSTs to be sized generically at runtime.
core::mem::{size/align/min_align}_of_val have also been slightly altered
to use the new intrinsics, and to also allow DSTs.
Doesn't work for DST enums and tuples, because I had nothing to test with to ensure it works. Taking a pointer to a DST enum or tuple is currently an ICE(#16812). Would it be better to wait until that ICE is fixed before doing this? Would it be better to add skeleton functionality that should work once the ICE is fixed?
Trait Objects currently seem to only store
min_align
in their vtables (presuming that this is correct? My tests suggest that the value stored there matchedmin_align
rather thanpref_align
, at least) sopref_align_of_val
will just return that for now. Is that okay?closes #19063