diff options
| author | León Orell Valerian Liehr <me@fmease.dev> | 2023-10-30 10:48:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-30 10:48:20 +0100 |
| commit | 12eb539bf27fd96fa515b28e1dab28489f5ce027 (patch) | |
| tree | 58e34313fdfa73dca9804d6b9c1b4c3151d15476 /tests | |
| parent | fd5ffab4abfa9fb0a5163b9d9c463e6ad29c8bab (diff) | |
| parent | c5613258bb3f10907ba1127f363102bf842637cd (diff) | |
| download | rust-12eb539bf27fd96fa515b28e1dab28489f5ce027.tar.gz rust-12eb539bf27fd96fa515b28e1dab28489f5ce027.zip | |
Rollup merge of #117371 - compiler-errors:unique-params, r=oli-obk
Ignore RPIT duplicated lifetimes in `opaque_types_defined_by` An RPIT's or TAIT's own generics are kinda useless -- so just ignore them. For TAITs, they will always be empty, and for RPITs, they're always duplicated lifetimes. Fixes #115013.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait.rs | 13 | ||||
| -rw-r--r-- | tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait2.rs | 15 |
2 files changed, 28 insertions, 0 deletions
diff --git a/tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait.rs b/tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait.rs new file mode 100644 index 00000000000..4c56fe2d1dc --- /dev/null +++ b/tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait.rs @@ -0,0 +1,13 @@ +// check-pass + +#![feature(type_alias_impl_trait)] + +type Opaque<'lt> = impl Sized + 'lt; + +fn test<'a>( + arg: impl Iterator<Item = &'a u8>, +) -> impl Iterator<Item = Opaque<'a>> { + arg +} + +fn main() {} diff --git a/tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait2.rs b/tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait2.rs new file mode 100644 index 00000000000..97f8c799fc5 --- /dev/null +++ b/tests/ui/type-alias-impl-trait/duplicate-lifetimes-from-rpit-containing-tait2.rs @@ -0,0 +1,15 @@ +// check-pass +// edition: 2021 + +#![feature(type_alias_impl_trait)] + +struct Foo<'a>(&'a ()); + +impl<'a> Foo<'a> { + async fn new() -> () { + type T = impl Sized; + let _: T = (); + } +} + +fn main() {} |
