error: free function without a body
  --> $DIR/fn-body-optional-semantic-fail.rs:4:5
   |
LL |     fn f1();
   |     ^^^^^^^-
   |            |
   |            help: provide a definition for the function: `{ <body> }`

error: associated function in `impl` without body
  --> $DIR/fn-body-optional-semantic-fail.rs:14:9
   |
LL |         fn f1();
   |         ^^^^^^^-
   |                |
   |                help: provide a definition for the function: `{ <body> }`

error: associated function in `impl` without body
  --> $DIR/fn-body-optional-semantic-fail.rs:19:9
   |
LL |         fn f3();
   |         ^^^^^^^-
   |                |
   |                help: provide a definition for the function: `{ <body> }`

error: incorrect function inside `extern` block
  --> $DIR/fn-body-optional-semantic-fail.rs:25:12
   |
LL |     extern {
   |     ------ `extern` blocks define existing foreign functions and functions inside of them cannot have a body
LL |         fn f5(); // OK.
LL |         fn f6() {}
   |            ^^   -- help: remove the invalid body: `;`
   |            |
   |            cannot have a body
   |
   = help: you might have meant to write a function accessible through FFI, which can be done by writing `extern fn` outside of the `extern` block
   = note: for more information, visit https://doc.rust-lang.org/std/keyword.extern.html

error: aborting due to 4 previous errors

