diff options
| author | bors <bors@rust-lang.org> | 2022-07-14 14:29:37 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-07-14 14:29:37 +0000 |
| commit | 073b3253c1ff736e980c31201eda750df082197d (patch) | |
| tree | 5276fb404a33a35785c1050e0d86d732cfc5fd43 /src/test/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs | |
| parent | fbba1d7acbd84435e63d185d57c2d88e88f489ee (diff) | |
| parent | 796641b5d85d06f2884e28971a358421976aefaa (diff) | |
| download | rust-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
