Fix issue 20929 - std.experimental.allocator.expandArray's range-based overload fails to instantiate for char and wchar arrays. #7530
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.
https://issues.dlang.org/show_bug.cgi?id=20929
The instantiation failure was caused by trying to get the address of an lvalue
for
emplace
, which was caused byfront
's auto-decoding of the slice used torefer to the uninitialised elements of the array.
The fix was to forgo the range functions for the slice, and just index it.
The changes to
ForcedInputRange
may seem unrelated to the fix, but I wantedto test the input-range code-path, and the only usage of
ForcedInputRange
was to test this overload of
expandArray
, so it seemed more appropriate toreuse it, rather than define another input-range.