add known-bug test for unsound issue 100051
This commit is contained in:
parent
cff6c0e0c8
commit
6f6550f156
31
tests/ui/fn/implied-bounds-impl-header-projections.rs
Normal file
31
tests/ui/fn/implied-bounds-impl-header-projections.rs
Normal file
@ -0,0 +1,31 @@
|
||||
// check-pass
|
||||
// known-bug: #100051
|
||||
|
||||
// Should fail. Implied bounds from projections in impl headers can create
|
||||
// improper lifetimes. Variant of issue #98543 which was fixed by #99217.
|
||||
|
||||
trait Trait {
|
||||
type Type;
|
||||
}
|
||||
|
||||
impl<T> Trait for T {
|
||||
type Type = ();
|
||||
}
|
||||
|
||||
trait Extend<'a, 'b> {
|
||||
fn extend(self, s: &'a str) -> &'b str;
|
||||
}
|
||||
|
||||
impl<'a, 'b> Extend<'a, 'b> for <&'b &'a () as Trait>::Type
|
||||
where
|
||||
for<'what, 'ever> &'what &'ever (): Trait,
|
||||
{
|
||||
fn extend(self, s: &'a str) -> &'b str {
|
||||
s
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let y = <() as Extend<'_, '_>>::extend((), &String::from("Hello World"));
|
||||
println!("{}", y);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user