| fn foo(a: usize, b: usize) -> usize { a } |
| |
| fn bar() -> usize { 42 } |
| |
| struct S(usize, usize); |
| enum E { |
| A(usize), |
| B { a: usize }, |
| } |
| struct V(); |
| |
| trait T { |
| fn baz(x: usize, y: usize) -> usize { x } |
| fn bat(x: usize) -> usize { 42 } |
| fn bax(x: usize) -> usize { 42 } |
| fn bach(x: usize) -> usize; |
| fn ban(&self) -> usize { 42 } |
| fn bal(&self) -> usize; |
| } |
| |
| struct X; |
| |
| impl T for X { |
| fn bach(x: usize) -> usize { 42 } |
| fn bal(&self) -> usize { 42 } |
| } |
| |
| fn main() { |
| let _: usize = foo; //~ ERROR mismatched types |
| let _: S = S; //~ ERROR mismatched types |
| let _: usize = bar; //~ ERROR mismatched types |
| let _: V = V; //~ ERROR mismatched types |
| let _: usize = T::baz; //~ ERROR mismatched types |
| let _: usize = T::bat; //~ ERROR mismatched types |
| let _: E = E::A; //~ ERROR mismatched types |
| let _: E = E::B; //~ ERROR expected value, found struct variant `E::B` |
| let _: usize = X::baz; //~ ERROR mismatched types |
| let _: usize = X::bat; //~ ERROR mismatched types |
| let _: usize = X::bax; //~ ERROR mismatched types |
| let _: usize = X::bach; //~ ERROR mismatched types |
| let _: usize = X::ban; //~ ERROR mismatched types |
| let _: usize = X::bal; //~ ERROR mismatched types |
| let _: usize = X.ban; //~ ERROR attempted to take value of method |
| let _: usize = X.bal; //~ ERROR attempted to take value of method |
| let closure = || 42; |
| let _: usize = closure; //~ ERROR mismatched types |
| } |