diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-06-06 04:17:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-06 04:17:26 +0200 |
| commit | 55b76f4720ed2f230770c479f502904f1f31d5d1 (patch) | |
| tree | c3c7a18ef321be743948a98e5716a753dbe0b980 /compiler/rustc_codegen_llvm/src | |
| parent | 8f04878deecba4e0ec36fb2ff06c58a45579f296 (diff) | |
| parent | e7ad2da7f134c66779625a09b134b85ed1c7c7a9 (diff) | |
| download | rust-55b76f4720ed2f230770c479f502904f1f31d5d1.tar.gz rust-55b76f4720ed2f230770c479f502904f1f31d5d1.zip | |
Rollup merge of #125987 - estebank:issue-122622, r=Nadrieril
When `derive`ing, account for HRTB on `BareFn` fields
When given
```rust
trait SomeTrait {
type SomeType<'a>;
}
#[derive(Clone)]
struct Foo<T: SomeTrait> {
x: for<'a> fn(T::SomeType<'a>)
}
```
expand to
```rust
impl<T: ::core::clone::Clone + SomeTrait> ::core::clone::Clone for Foo<T>
where for<'a> T::SomeType<'a>: ::core::clone::Clone {
#[inline]
fn clone(&self) -> Foo<T> {
Foo { x: ::core::clone::Clone::clone(&self.x) }
}
}
```
instead of the previous invalid
```
impl<T: ::core::clone::Clone + SomeTrait> ::core::clone::Clone for Foo<T>
where T::SomeType<'a>: ::core::clone::Clone {
#[inline]
fn clone(&self) -> Foo<T> {
Foo { x: ::core::clone::Clone::clone(&self.x) }
}
}
```
Fix #122622.
<!--
If this PR is related to an unstable feature or an otherwise tracked effort,
please link to the relevant tracking issue here. If you don't know of a related
tracking issue or there are none, feel free to ignore this.
This PR will get automatically assigned to a reviewer. In case you would like
a specific user to review your work, you can assign it to them by using
r? <reviewer name>
-->
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
