# Error code E0403

Some type parameters have the same name.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    fn f<T, T>(s: T, u: T) {} // error: the name `T` is already used for a generic
                              //        parameter in this item's generic parameters
    }

Please verify that none of the type parameters are misspelled, and rename any clashing parameters. Example:

    #![allow(unused)]
    fn main() {
    fn f<T, Y>(s: T, u: Y) {} // ok!
    }

Type parameters in an associated item also cannot shadow parameters from the containing item:

    #![allow(unused)]
    fn main() {
    trait Foo<T> {
        fn do_something(&self) -> T;
        fn do_something_else<T: Clone>(&self, bar: T);
    }
    }