1 // It might be intuitive for a user coming from languages like Java
2 // to declare a method directly in a struct's definition. Make sure
3 // rustc can give a helpful suggestion.
4 // Suggested in issue #76421
5
6 struct S {
7 field: usize,
8
9 fn foo() {}
10 //~^ ERROR functions are not allowed in struct definitions
11 //~| HELP unlike in C++, Java, and C#, functions are declared in `impl` blocks
12 //~| HELP see https://doc.rust-lang.org/book/ch05-03-method-syntax.html for more information
13 }
14
15 union U {
16 variant: usize,
17
foo()18 fn foo() {}
19 //~^ ERROR functions are not allowed in union definitions
20 //~| HELP unlike in C++, Java, and C#, functions are declared in `impl` blocks
21 //~| HELP see https://doc.rust-lang.org/book/ch05-03-method-syntax.html for more information
22 }
23
24 enum E {
25 Variant,
26
27 fn foo() {}
28 //~^ ERROR functions are not allowed in enum definitions
29 //~| HELP unlike in C++, Java, and C#, functions are declared in `impl` blocks
30 //~| HELP see https://doc.rust-lang.org/book/ch05-03-method-syntax.html for more information
31 }
32
main()33 fn main() {}
34