about summary refs log tree commit diff
path: root/src/test/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-07-14 14:29:37 +0000
committerbors <bors@rust-lang.org>2022-07-14 14:29:37 +0000
commit073b3253c1ff736e980c31201eda750df082197d (patch)
tree5276fb404a33a35785c1050e0d86d732cfc5fd43 /src/test/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs
parentfbba1d7acbd84435e63d185d57c2d88e88f489ee (diff)
parent796641b5d85d06f2884e28971a358421976aefaa (diff)
downloadrust-073b3253c1ff736e980c31201eda750df082197d.tar.gz
rust-073b3253c1ff736e980c31201eda750df082197d.zip
Auto merge of #12556 - DorianListens:dscheidt/generic-extract, r=Veykril
fix: Support generics in extract_function assist

This change attempts to resolve issue #7636: Extract into Function does not
create a generic function with constraints when extracting generic code.

In `FunctionBody::analyze_container`, we now traverse the `ancestors` in search
of `AnyHasGenericParams`, and attach any `GenericParamList`s and `WhereClause`s
we find to the `ContainerInfo`.

Later, in `format_function`, we collect all the `GenericParam`s and
`WherePred`s from the container, and filter them to keep only types matching
`TypeParam`s used within the newly extracted function body or param list. We
can then include the new `GenericParamList` and `WhereClause` in the new
function definition.

This change only impacts `TypeParam`s. `LifetimeParam`s and `ConstParam`s are
out of scope for this change.

I've never contributed to this project before, but I did try to follow the style guide. I believe that this change represents an improvement over the status quo, but I think it's also fair to argue that it doesn't fully "fix" the linked issue. I'm totally open to merging this as is, or going further to try to make a more complete solution. Also: if there are other unit or integration tests I should add, please let me know where to look!
Diffstat (limited to 'src/test/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs')
0 files changed, 0 insertions, 0 deletions