Detect fn with a body in an extern block
This commit is contained in:
parent
69656fa4cb
commit
c8d9cd99fa
5 changed files with 91 additions and 15 deletions
11
src/test/ui/extern/extern-ffi-fn-with-body.rs
vendored
Normal file
11
src/test/ui/extern/extern-ffi-fn-with-body.rs
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
extern "C" {
|
||||
fn foo() -> i32 { //~ ERROR incorrect `fn` inside `extern` block
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" fn bar() -> i32 {
|
||||
return 0;
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
18
src/test/ui/extern/extern-ffi-fn-with-body.stderr
vendored
Normal file
18
src/test/ui/extern/extern-ffi-fn-with-body.stderr
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
error: incorrect `fn` inside `extern` block
|
||||
--> $DIR/extern-ffi-fn-with-body.rs:2:8
|
||||
|
|
||||
LL | extern "C" {
|
||||
| ------ `extern` blocks define existing foreign functions and `fn`s inside of them can't have a body
|
||||
LL | fn foo() -> i32 {
|
||||
| ________^^^__________-
|
||||
| | |
|
||||
| | can't have a body
|
||||
LL | | return 0;
|
||||
LL | | }
|
||||
| |_____- this body is invalid here
|
||||
|
|
||||
= 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 previous error
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue