// 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 = `, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }` } fn main() {}