feat: remove the scalar type T from the Allocator trait #1397
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.
This is based on #1396. I thought GAT was only stabilized for lifetime parameters, but it looks like it also works for actual type parameters.
This doesn’t eliminate the need for explicit
DefaultAllocator: Allocator
bounds, bust it least simplifies it by not exposing implementation details about the scalar type.I haven’t been very diligent at checking if we now have some duplicate bounds. For example if
Allocator<N1, R, C> + Allocator<N2, R, C>
got transformed toAllocator<R, C> + Allocator<R, C>
so one of them can be removed.