From f25463e8483d8dcfb64cda4e96d5b4fbd11a19c8 Mon Sep 17 00:00:00 2001 From: yukang Date: Wed, 5 Jul 2023 16:25:46 +0800 Subject: Fix the issue of wrong diagnosis for extern pub fn --- tests/ui/parser/issue-113342.rs | 9 +++++++++ tests/ui/parser/issue-113342.stderr | 11 +++++++++++ 2 files changed, 20 insertions(+) create mode 100644 tests/ui/parser/issue-113342.rs create mode 100644 tests/ui/parser/issue-113342.stderr (limited to 'tests/ui/parser') diff --git a/tests/ui/parser/issue-113342.rs b/tests/ui/parser/issue-113342.rs new file mode 100644 index 00000000000..18b502736f7 --- /dev/null +++ b/tests/ui/parser/issue-113342.rs @@ -0,0 +1,9 @@ +#[link(name = "my_c_library")] +extern "C" { + fn my_c_function(x: i32) -> bool; +} + +#[no_mangle] +extern "C" pub fn id(x: i32) -> i32 { x } //~ ERROR expected `fn`, found keyword `pub` + +fn main() {} diff --git a/tests/ui/parser/issue-113342.stderr b/tests/ui/parser/issue-113342.stderr new file mode 100644 index 00000000000..a0c5e665ff8 --- /dev/null +++ b/tests/ui/parser/issue-113342.stderr @@ -0,0 +1,11 @@ +error: expected `fn`, found keyword `pub` + --> $DIR/issue-113342.rs:7:12 + | +LL | extern "C" pub fn id(x: i32) -> i32 { x } + | -----------^^^ + | | | + | | expected `fn` + | help: visibility `pub` must come before `extern "C"`: `pub extern "C"` + +error: aborting due to previous error + -- cgit 1.4.1-3-g733a5