rust/tests/ui/mir/issue-80949.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

35 lines
571 B
Rust
Raw Normal View History

2021-01-21 21:44:30 -06:00
// build-pass
trait Trait { type Item; }
impl<'a, X> Trait for &'a Vec<X> {
type Item = &'a X;
}
impl<X> Trait for Box<dyn Trait<Item = X>> {
type Item = X;
}
fn make_dyn_trait(_: &()) -> Box<dyn Trait<Item = &()>> {
todo!()
}
fn diff<'a, M, N, S>(_: N, _: S)
where
M: 'a,
N: Trait<Item = &'a M>,
S: Trait<Item = &'a M>,
{
todo!()
}
fn may_panic<X>(_: X) { }
fn main() {
let dyn_trait = make_dyn_trait(&());
let storage = vec![()];
let _x = may_panic(());
let storage_ref = &storage;
diff(dyn_trait, storage_ref);
}