2022-08-27 21:17:17 +00:00
|
|
|
struct Foo { i: i32 }
|
|
|
|
|
|
|
|
impl Foo {
|
|
|
|
fn bar(&self) {}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn foo() -> Foo {
|
|
|
|
Foo { i: 1 }
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
foo.bar();
|
|
|
|
//~^ ERROR no method named `bar`
|
|
|
|
//~| HELP use parentheses to call this function
|
|
|
|
|
|
|
|
foo.i;
|
|
|
|
//~^ ERROR no field `i`
|
|
|
|
//~| HELP use parentheses to call this function
|
2022-08-27 23:08:21 +00:00
|
|
|
|
|
|
|
let callable = Box::new(|| Foo { i: 1 }) as Box<dyn Fn() -> Foo>;
|
|
|
|
|
|
|
|
callable.bar();
|
|
|
|
//~^ ERROR no method named `bar`
|
|
|
|
//~| HELP use parentheses to call this trait object
|
|
|
|
|
|
|
|
callable.i;
|
|
|
|
//~^ ERROR no field `i`
|
|
|
|
//~| HELP use parentheses to call this trait object
|
|
|
|
}
|
|
|
|
|
|
|
|
fn type_param<T: Fn() -> Foo>(t: T) {
|
|
|
|
t.bar();
|
|
|
|
//~^ ERROR no method named `bar`
|
|
|
|
//~| HELP use parentheses to call this type parameter
|
|
|
|
|
|
|
|
t.i;
|
|
|
|
//~^ ERROR no field `i`
|
|
|
|
//~| HELP use parentheses to call this type parameter
|
2022-08-27 21:17:17 +00:00
|
|
|
}
|