rust/tests/ui/methods/supertrait-shadowing/trivially-false-subtrait.rs

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

27 lines
451 B
Rust
Raw Normal View History

2024-09-19 01:31:48 +00:00
//@ check-pass
// Make sure we don't prefer a subtrait that we would've otherwise eliminated
// in `consider_probe` during method probing.
#![feature(supertrait_item_shadowing)]
#![allow(dead_code)]
struct W<T>(T);
trait Upstream {
fn hello(&self) {}
}
impl<T> Upstream for T {}
trait Downstream: Upstream {
fn hello(&self) {}
}
impl<T> Downstream for W<T> where T: Foo {}
trait Foo {}
fn main() {
let x = W(1i32);
x.hello();
}