fix for https://github.com/mozilla/rust/issues/9394

I have tried this fix and it seems to work either with single or multiple trait inheritance.

trait Base:Base2 + Base3{
    fn foo(&self);
}

trait Base2 {
	fn baz(&self);
}

trait Base3{
	fn root(&self);
}

trait Super: Base{
    fn bar(&self);
}
 
struct X;
 
impl Base for X {
    fn foo(&self) {
        println("base foo");
    }
 
}
impl Base2 for X {
    fn baz(&self) {
        println("base2 baz");
    }
 
}
impl Base3 for X {
    fn root(&self) {
        println("base3 root");
    }
 
}
impl Super for X {
    fn bar(&self) {
        println("super bar");
    }
}

fn main() {
    let n = X;
    let s = &n as &Super;
    s.bar();
    s.foo(); // super bar
	s.baz();
	s.root();
}

bmaxa@maxa:~/examples/rust$ rustc error.rs
bmaxa@maxa:~/examples/rust$ ./error 
super bar
base foo
base2 baz
base3 root