| // It might be intuitive for a user coming from languages like Java |
| // to declare a method directly in a struct's definition. Make sure |
| // rustc can give a helpful suggestion. |
| // Suggested in issue #76421 |
| |
| struct S { |
| field: usize, |
| |
| fn foo() {} |
| //~^ ERROR functions are not allowed in struct definitions |
| //~| HELP unlike in C++, Java, and C#, functions are declared in `impl` blocks |
| //~| HELP see https://doc.rust-lang.org/book/ch05-03-method-syntax.html for more information |
| } |
| |
| union U { |
| variant: usize, |
| |
| fn foo() {} |
| //~^ ERROR functions are not allowed in union definitions |
| //~| HELP unlike in C++, Java, and C#, functions are declared in `impl` blocks |
| //~| HELP see https://doc.rust-lang.org/book/ch05-03-method-syntax.html for more information |
| } |
| |
| enum E { |
| Variant, |
| |
| fn foo() {} |
| //~^ ERROR functions are not allowed in enum definitions |
| //~| HELP unlike in C++, Java, and C#, functions are declared in `impl` blocks |
| //~| HELP see https://doc.rust-lang.org/book/ch05-03-method-syntax.html for more information |
| //~| HELP enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }` |
| } |
| |
| fn main() {} |