//@ run-pass
mod a {
pub trait Foo {
fn foo() -> Self;
}
impl Foo for isize {
fn foo() -> isize {
3
impl Foo for usize {
fn foo() -> usize {
5
pub fn main() {
let x: isize = a::Foo::foo();
let y: usize = a::Foo::foo();
assert_eq!(x, 3);
assert_eq!(y, 5);