blob: dd5af3e344cabd1ffeb8dae4edc204b5883c48d9 [file] [log] [blame]
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
}