//@ run-pass //@ check-run-results #![feature(supertrait_item_shadowing)] #![warn(supertrait_item_shadowing_usage)] #![warn(supertrait_item_shadowing_definition)] #![allow(dead_code)] trait A { fn hello(&self) { println!("A"); } } impl A for T {} trait B: A { fn hello(&self) { //~^ WARN trait item `hello` from `B` shadows identically named item println!("B"); } } impl B for T {} fn main() { ().hello(); //~^ WARN trait item `hello` from `B` shadows identically named item from supertrait }