//@ 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<T> A for T {} | |
trait B: A { | |
fn hello(&self) { | |
//~^ WARN trait item `hello` from `B` shadows identically named item | |
println!("B"); | |
} | |
} | |
impl<T> B for T {} | |
fn main() { | |
().hello(); | |
//~^ WARN trait item `hello` from `B` shadows identically named item from supertrait | |
} |