summaryrefslogtreecommitdiffstats
path: root/tests/ui/proc-macro
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/proc-macro')
-rw-r--r--tests/ui/proc-macro/amputate-span.stderr4
-rw-r--r--tests/ui/proc-macro/attributes-on-modules-fail.stderr4
-rw-r--r--tests/ui/proc-macro/bad-projection.rs15
-rw-r--r--tests/ui/proc-macro/bad-projection.stderr9
-rw-r--r--tests/ui/proc-macro/derive-bad.rs2
-rw-r--r--tests/ui/proc-macro/derive-bad.stderr2
-rw-r--r--tests/ui/proc-macro/issue-91800.rs2
-rw-r--r--tests/ui/proc-macro/issue-91800.stderr2
-rw-r--r--tests/ui/proc-macro/macro-namespace-reserved-2.stderr16
-rw-r--r--tests/ui/proc-macro/proc-macro-abi.rs6
-rw-r--r--tests/ui/proc-macro/proc-macro-abi.stderr21
-rw-r--r--tests/ui/proc-macro/signature-proc-macro-attribute.rs10
-rw-r--r--tests/ui/proc-macro/signature-proc-macro-attribute.stderr46
-rw-r--r--tests/ui/proc-macro/signature-proc-macro-derive.rs9
-rw-r--r--tests/ui/proc-macro/signature-proc-macro-derive.stderr40
-rw-r--r--tests/ui/proc-macro/signature-proc-macro.rs9
-rw-r--r--tests/ui/proc-macro/signature-proc-macro.stderr40
-rw-r--r--tests/ui/proc-macro/signature.rs6
-rw-r--r--tests/ui/proc-macro/signature.stderr35
-rw-r--r--tests/ui/proc-macro/span-api-tests.rs1
20 files changed, 143 insertions, 136 deletions
diff --git a/tests/ui/proc-macro/amputate-span.stderr b/tests/ui/proc-macro/amputate-span.stderr
index ab4670411..aa797339b 100644
--- a/tests/ui/proc-macro/amputate-span.stderr
+++ b/tests/ui/proc-macro/amputate-span.stderr
@@ -6,7 +6,7 @@ LL | Command::new("git");
|
help: consider importing this struct
|
-LL | use std::process::Command;
+LL + use std::process::Command;
|
error[E0433]: failed to resolve: use of undeclared type `Command`
@@ -17,7 +17,7 @@ LL | Command::new("git");
|
help: consider importing this struct
|
-LL | use std::process::Command;
+LL + use std::process::Command;
|
error: aborting due to 2 previous errors
diff --git a/tests/ui/proc-macro/attributes-on-modules-fail.stderr b/tests/ui/proc-macro/attributes-on-modules-fail.stderr
index bb6cbb698..97521f23a 100644
--- a/tests/ui/proc-macro/attributes-on-modules-fail.stderr
+++ b/tests/ui/proc-macro/attributes-on-modules-fail.stderr
@@ -50,7 +50,7 @@ LL | type A = Y;
|
help: consider importing this struct
|
-LL | use Y;
+LL + use Y;
|
error[E0412]: cannot find type `X` in this scope
@@ -61,7 +61,7 @@ LL | type A = X;
|
help: consider importing this struct
|
-LL | use m::X;
+LL + use m::X;
|
error: aborting due to 7 previous errors
diff --git a/tests/ui/proc-macro/bad-projection.rs b/tests/ui/proc-macro/bad-projection.rs
new file mode 100644
index 000000000..d214c7ac8
--- /dev/null
+++ b/tests/ui/proc-macro/bad-projection.rs
@@ -0,0 +1,15 @@
+// force-host
+// no-prefer-dynamic
+
+#![crate_type = "proc-macro"]
+#![allow(warnings)]
+
+extern crate proc_macro;
+
+trait Project {
+ type Assoc;
+}
+
+#[proc_macro]
+pub fn uwu() -> <() as Project>::Assoc {}
+//~^ ERROR the trait bound `(): Project` is not satisfied
diff --git a/tests/ui/proc-macro/bad-projection.stderr b/tests/ui/proc-macro/bad-projection.stderr
new file mode 100644
index 000000000..8a8246376
--- /dev/null
+++ b/tests/ui/proc-macro/bad-projection.stderr
@@ -0,0 +1,9 @@
+error[E0277]: the trait bound `(): Project` is not satisfied
+ --> $DIR/bad-projection.rs:14:17
+ |
+LL | pub fn uwu() -> <() as Project>::Assoc {}
+ | ^^^^^^^^^^^^^^^^^^^^^^ the trait `Project` is not implemented for `()`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/proc-macro/derive-bad.rs b/tests/ui/proc-macro/derive-bad.rs
index cb5188b5f..92d35f537 100644
--- a/tests/ui/proc-macro/derive-bad.rs
+++ b/tests/ui/proc-macro/derive-bad.rs
@@ -4,7 +4,7 @@
extern crate derive_bad;
#[derive(A)]
-//~^ ERROR proc-macro derive produced unparseable tokens
+//~^ ERROR proc-macro derive produced unparsable tokens
//~| ERROR expected `:`, found `}`
struct A; //~ ERROR the name `A` is defined multiple times
diff --git a/tests/ui/proc-macro/derive-bad.stderr b/tests/ui/proc-macro/derive-bad.stderr
index 241f99b28..43e97f40b 100644
--- a/tests/ui/proc-macro/derive-bad.stderr
+++ b/tests/ui/proc-macro/derive-bad.stderr
@@ -9,7 +9,7 @@ LL | #[derive(A)]
|
= note: this error originates in the derive macro `A` (in Nightly builds, run with -Z macro-backtrace for more info)
-error: proc-macro derive produced unparseable tokens
+error: proc-macro derive produced unparsable tokens
--> $DIR/derive-bad.rs:6:10
|
LL | #[derive(A)]
diff --git a/tests/ui/proc-macro/issue-91800.rs b/tests/ui/proc-macro/issue-91800.rs
index 0c1281de4..f48c8bf72 100644
--- a/tests/ui/proc-macro/issue-91800.rs
+++ b/tests/ui/proc-macro/issue-91800.rs
@@ -5,7 +5,7 @@ extern crate issue_91800_macro;
#[derive(MyTrait)]
//~^ ERROR macros that expand to items must be delimited with braces or followed by a semicolon
-//~| ERROR proc-macro derive produced unparseable tokens
+//~| ERROR proc-macro derive produced unparsable tokens
#[attribute_macro]
//~^ ERROR macros that expand to items must be delimited with braces or followed by a semicolon
struct MyStruct;
diff --git a/tests/ui/proc-macro/issue-91800.stderr b/tests/ui/proc-macro/issue-91800.stderr
index 9c356263a..d831d62e9 100644
--- a/tests/ui/proc-macro/issue-91800.stderr
+++ b/tests/ui/proc-macro/issue-91800.stderr
@@ -6,7 +6,7 @@ LL | #[derive(MyTrait)]
|
= note: this error originates in the derive macro `MyTrait` (in Nightly builds, run with -Z macro-backtrace for more info)
-error: proc-macro derive produced unparseable tokens
+error: proc-macro derive produced unparsable tokens
--> $DIR/issue-91800.rs:6:10
|
LL | #[derive(MyTrait)]
diff --git a/tests/ui/proc-macro/macro-namespace-reserved-2.stderr b/tests/ui/proc-macro/macro-namespace-reserved-2.stderr
index 633a6c6a0..b9effe7cf 100644
--- a/tests/ui/proc-macro/macro-namespace-reserved-2.stderr
+++ b/tests/ui/proc-macro/macro-namespace-reserved-2.stderr
@@ -57,6 +57,14 @@ error: expected derive macro, found attribute macro `my_macro_attr`
|
LL | #[derive(my_macro_attr)]
| ^^^^^^^^^^^^^ not a derive macro
+ |
+help: remove from the surrounding `derive()`
+ --> $DIR/macro-namespace-reserved-2.rs:53:10
+ |
+LL | #[derive(my_macro_attr)]
+ | ^^^^^^^^^^^^^
+ = help: add as non-Derive macro
+ `#[my_macro_attr]`
error: can't use a procedural macro from the same crate that defines it
--> $DIR/macro-namespace-reserved-2.rs:56:10
@@ -87,6 +95,14 @@ error: expected derive macro, found macro `crate::my_macro`
|
LL | #[derive(crate::my_macro)]
| ^^^^^^^^^^^^^^^ not a derive macro
+ |
+help: remove from the surrounding `derive()`
+ --> $DIR/macro-namespace-reserved-2.rs:50:10
+ |
+LL | #[derive(crate::my_macro)]
+ | ^^^^^^^^^^^^^^^
+ = help: add as non-Derive macro
+ `#[crate::my_macro]`
error: cannot find macro `my_macro_attr` in this scope
--> $DIR/macro-namespace-reserved-2.rs:28:5
diff --git a/tests/ui/proc-macro/proc-macro-abi.rs b/tests/ui/proc-macro/proc-macro-abi.rs
index 873660a5b..93a613e8b 100644
--- a/tests/ui/proc-macro/proc-macro-abi.rs
+++ b/tests/ui/proc-macro/proc-macro-abi.rs
@@ -9,19 +9,19 @@ use proc_macro::TokenStream;
#[proc_macro]
pub extern "C" fn abi(a: TokenStream) -> TokenStream {
- //~^ ERROR proc macro functions may not be `extern "C"`
+ //~^ ERROR function-like proc macro has incorrect signature
a
}
#[proc_macro]
pub extern "system" fn abi2(a: TokenStream) -> TokenStream {
- //~^ ERROR proc macro functions may not be `extern "system"`
+ //~^ ERROR function-like proc macro has incorrect signature
a
}
#[proc_macro]
pub extern fn abi3(a: TokenStream) -> TokenStream {
- //~^ ERROR proc macro functions may not be `extern "C"`
+ //~^ ERROR function-like proc macro has incorrect signature
a
}
diff --git a/tests/ui/proc-macro/proc-macro-abi.stderr b/tests/ui/proc-macro/proc-macro-abi.stderr
index 9a781be09..ccc72e518 100644
--- a/tests/ui/proc-macro/proc-macro-abi.stderr
+++ b/tests/ui/proc-macro/proc-macro-abi.stderr
@@ -1,20 +1,29 @@
-error: proc macro functions may not be `extern "C"`
+error: function-like proc macro has incorrect signature
--> $DIR/proc-macro-abi.rs:11:1
|
LL | pub extern "C" fn abi(a: TokenStream) -> TokenStream {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected "Rust" fn, found "C" fn
+ |
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `extern "C" fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
-error: proc macro functions may not be `extern "system"`
+error: function-like proc macro has incorrect signature
--> $DIR/proc-macro-abi.rs:17:1
|
LL | pub extern "system" fn abi2(a: TokenStream) -> TokenStream {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected "Rust" fn, found "system" fn
+ |
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `extern "system" fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
-error: proc macro functions may not be `extern "C"`
+error: function-like proc macro has incorrect signature
--> $DIR/proc-macro-abi.rs:23:1
|
LL | pub extern fn abi3(a: TokenStream) -> TokenStream {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected "Rust" fn, found "C" fn
+ |
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `extern "C" fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
error: aborting due to 3 previous errors
diff --git a/tests/ui/proc-macro/signature-proc-macro-attribute.rs b/tests/ui/proc-macro/signature-proc-macro-attribute.rs
index 51abc8e7d..fb48f748c 100644
--- a/tests/ui/proc-macro/signature-proc-macro-attribute.rs
+++ b/tests/ui/proc-macro/signature-proc-macro-attribute.rs
@@ -8,25 +8,23 @@ use proc_macro::TokenStream;
#[proc_macro_attribute]
pub fn bad_input(input: String) -> TokenStream {
- //~^ ERROR mismatched attribute proc macro signature
+ //~^ ERROR attribute proc macro has incorrect signature
::proc_macro::TokenStream::new()
}
#[proc_macro_attribute]
pub fn bad_output(input: TokenStream) -> String {
- //~^ ERROR mismatched attribute proc macro signature
- //~| ERROR mismatched attribute proc macro signature
+ //~^ ERROR attribute proc macro has incorrect signature
String::from("blah")
}
#[proc_macro_attribute]
pub fn bad_everything(input: String) -> String {
- //~^ ERROR mismatched attribute proc macro signature
- //~| ERROR mismatched attribute proc macro signature
+ //~^ ERROR attribute proc macro has incorrect signature
input
}
#[proc_macro_attribute]
pub fn too_many(a: TokenStream, b: TokenStream, c: String) -> TokenStream {
- //~^ ERROR mismatched attribute proc macro signature
+ //~^ ERROR attribute proc macro has incorrect signature
}
diff --git a/tests/ui/proc-macro/signature-proc-macro-attribute.stderr b/tests/ui/proc-macro/signature-proc-macro-attribute.stderr
index abf7a6f3c..ce832eaa5 100644
--- a/tests/ui/proc-macro/signature-proc-macro-attribute.stderr
+++ b/tests/ui/proc-macro/signature-proc-macro-attribute.stderr
@@ -1,42 +1,38 @@
-error: mismatched attribute proc macro signature
+error: attribute proc macro has incorrect signature
--> $DIR/signature-proc-macro-attribute.rs:10:1
|
LL | pub fn bad_input(input: String) -> TokenStream {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attribute proc macro must have two arguments of type `proc_macro::TokenStream`
-
-error: mismatched attribute proc macro signature
- --> $DIR/signature-proc-macro-attribute.rs:16:42
- |
-LL | pub fn bad_output(input: TokenStream) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters
|
- = note: attribute proc macros must have a signature of `fn(TokenStream, TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream, proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(std::string::String) -> proc_macro::TokenStream`
-error: mismatched attribute proc macro signature
+error: attribute proc macro has incorrect signature
--> $DIR/signature-proc-macro-attribute.rs:16:1
|
LL | pub fn bad_output(input: TokenStream) -> String {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attribute proc macro must have two arguments of type `proc_macro::TokenStream`
-
-error: mismatched attribute proc macro signature
- --> $DIR/signature-proc-macro-attribute.rs:23:41
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters
|
-LL | pub fn bad_everything(input: String) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
- |
- = note: attribute proc macros must have a signature of `fn(TokenStream, TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream, proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(proc_macro::TokenStream) -> std::string::String`
-error: mismatched attribute proc macro signature
- --> $DIR/signature-proc-macro-attribute.rs:23:1
+error: attribute proc macro has incorrect signature
+ --> $DIR/signature-proc-macro-attribute.rs:22:1
|
LL | pub fn bad_everything(input: String) -> String {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attribute proc macro must have two arguments of type `proc_macro::TokenStream`
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters
+ |
+ = note: expected signature `fn(proc_macro::TokenStream, proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(std::string::String) -> std::string::String`
-error: mismatched attribute proc macro signature
- --> $DIR/signature-proc-macro-attribute.rs:30:49
+error: attribute proc macro has incorrect signature
+ --> $DIR/signature-proc-macro-attribute.rs:28:52
|
LL | pub fn too_many(a: TokenStream, b: TokenStream, c: String) -> TokenStream {
- | ^^^^^^^^^ found unexpected argument
+ | ^^^^^^ incorrect number of function parameters
+ |
+ = note: expected signature `fn(proc_macro::TokenStream, proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(proc_macro::TokenStream, proc_macro::TokenStream, std::string::String) -> proc_macro::TokenStream`
-error: aborting due to 6 previous errors
+error: aborting due to 4 previous errors
diff --git a/tests/ui/proc-macro/signature-proc-macro-derive.rs b/tests/ui/proc-macro/signature-proc-macro-derive.rs
index f2fd824b6..d294b1591 100644
--- a/tests/ui/proc-macro/signature-proc-macro-derive.rs
+++ b/tests/ui/proc-macro/signature-proc-macro-derive.rs
@@ -8,24 +8,23 @@ use proc_macro::TokenStream;
#[proc_macro_derive(Blah)]
pub fn bad_input(input: String) -> TokenStream {
- //~^ ERROR mismatched derive proc macro signature
+ //~^ ERROR derive proc macro has incorrect signature
TokenStream::new()
}
#[proc_macro_derive(Bleh)]
pub fn bad_output(input: TokenStream) -> String {
- //~^ ERROR mismatched derive proc macro signature
+ //~^ ERROR derive proc macro has incorrect signature
String::from("blah")
}
#[proc_macro_derive(Bluh)]
pub fn bad_everything(input: String) -> String {
- //~^ ERROR mismatched derive proc macro signature
- //~| ERROR mismatched derive proc macro signature
+ //~^ ERROR derive proc macro has incorrect signature
input
}
#[proc_macro_derive(Blih)]
pub fn too_many(a: TokenStream, b: TokenStream, c: String) -> TokenStream {
- //~^ ERROR mismatched derive proc macro signature
+ //~^ ERROR derive proc macro has incorrect signature
}
diff --git a/tests/ui/proc-macro/signature-proc-macro-derive.stderr b/tests/ui/proc-macro/signature-proc-macro-derive.stderr
index a358ae277..03c6abad1 100644
--- a/tests/ui/proc-macro/signature-proc-macro-derive.stderr
+++ b/tests/ui/proc-macro/signature-proc-macro-derive.stderr
@@ -1,40 +1,38 @@
-error: mismatched derive proc macro signature
+error: derive proc macro has incorrect signature
--> $DIR/signature-proc-macro-derive.rs:10:25
|
LL | pub fn bad_input(input: String) -> TokenStream {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
+ | ^^^^^^ expected `proc_macro::TokenStream`, found `std::string::String`
|
- = note: derive proc macros must have a signature of `fn(TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(std::string::String) -> proc_macro::TokenStream`
-error: mismatched derive proc macro signature
+error: derive proc macro has incorrect signature
--> $DIR/signature-proc-macro-derive.rs:16:42
|
LL | pub fn bad_output(input: TokenStream) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
+ | ^^^^^^ expected `proc_macro::TokenStream`, found `std::string::String`
|
- = note: derive proc macros must have a signature of `fn(TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(proc_macro::TokenStream) -> std::string::String`
-error: mismatched derive proc macro signature
- --> $DIR/signature-proc-macro-derive.rs:22:41
- |
-LL | pub fn bad_everything(input: String) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
- |
- = note: derive proc macros must have a signature of `fn(TokenStream) -> TokenStream`
-
-error: mismatched derive proc macro signature
+error: derive proc macro has incorrect signature
--> $DIR/signature-proc-macro-derive.rs:22:30
|
LL | pub fn bad_everything(input: String) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
+ | ^^^^^^ expected `proc_macro::TokenStream`, found `std::string::String`
|
- = note: derive proc macros must have a signature of `fn(TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(std::string::String) -> std::string::String`
-error: mismatched derive proc macro signature
- --> $DIR/signature-proc-macro-derive.rs:29:33
+error: derive proc macro has incorrect signature
+ --> $DIR/signature-proc-macro-derive.rs:28:36
|
LL | pub fn too_many(a: TokenStream, b: TokenStream, c: String) -> TokenStream {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ found unexpected arguments
+ | ^^^^^^^^^^^ incorrect number of function parameters
+ |
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(proc_macro::TokenStream, proc_macro::TokenStream, std::string::String) -> proc_macro::TokenStream`
-error: aborting due to 5 previous errors
+error: aborting due to 4 previous errors
diff --git a/tests/ui/proc-macro/signature-proc-macro.rs b/tests/ui/proc-macro/signature-proc-macro.rs
index 54770aacd..ca2509ed8 100644
--- a/tests/ui/proc-macro/signature-proc-macro.rs
+++ b/tests/ui/proc-macro/signature-proc-macro.rs
@@ -8,24 +8,23 @@ use proc_macro::TokenStream;
#[proc_macro]
pub fn bad_input(input: String) -> TokenStream {
- //~^ ERROR mismatched function-like proc macro signature
+ //~^ ERROR function-like proc macro has incorrect signature
::proc_macro::TokenStream::new()
}
#[proc_macro]
pub fn bad_output(input: TokenStream) -> String {
- //~^ ERROR mismatched function-like proc macro signature
+ //~^ ERROR function-like proc macro has incorrect signature
String::from("blah")
}
#[proc_macro]
pub fn bad_everything(input: String) -> String {
- //~^ ERROR mismatched function-like proc macro signature
- //~| ERROR mismatched function-like proc macro signature
+ //~^ ERROR function-like proc macro has incorrect signature
input
}
#[proc_macro]
pub fn too_many(a: TokenStream, b: TokenStream, c: String) -> TokenStream {
- //~^ ERROR mismatched function-like proc macro signature
+ //~^ ERROR function-like proc macro has incorrect signature
}
diff --git a/tests/ui/proc-macro/signature-proc-macro.stderr b/tests/ui/proc-macro/signature-proc-macro.stderr
index 4b14a54e6..dd2cb0570 100644
--- a/tests/ui/proc-macro/signature-proc-macro.stderr
+++ b/tests/ui/proc-macro/signature-proc-macro.stderr
@@ -1,40 +1,38 @@
-error: mismatched function-like proc macro signature
+error: function-like proc macro has incorrect signature
--> $DIR/signature-proc-macro.rs:10:25
|
LL | pub fn bad_input(input: String) -> TokenStream {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
+ | ^^^^^^ expected `proc_macro::TokenStream`, found `std::string::String`
|
- = note: function-like proc macros must have a signature of `fn(TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(std::string::String) -> proc_macro::TokenStream`
-error: mismatched function-like proc macro signature
+error: function-like proc macro has incorrect signature
--> $DIR/signature-proc-macro.rs:16:42
|
LL | pub fn bad_output(input: TokenStream) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
+ | ^^^^^^ expected `proc_macro::TokenStream`, found `std::string::String`
|
- = note: function-like proc macros must have a signature of `fn(TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(proc_macro::TokenStream) -> std::string::String`
-error: mismatched function-like proc macro signature
- --> $DIR/signature-proc-macro.rs:22:41
- |
-LL | pub fn bad_everything(input: String) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
- |
- = note: function-like proc macros must have a signature of `fn(TokenStream) -> TokenStream`
-
-error: mismatched function-like proc macro signature
+error: function-like proc macro has incorrect signature
--> $DIR/signature-proc-macro.rs:22:30
|
LL | pub fn bad_everything(input: String) -> String {
- | ^^^^^^ found std::string::String, expected type `proc_macro::TokenStream`
+ | ^^^^^^ expected `proc_macro::TokenStream`, found `std::string::String`
|
- = note: function-like proc macros must have a signature of `fn(TokenStream) -> TokenStream`
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(std::string::String) -> std::string::String`
-error: mismatched function-like proc macro signature
- --> $DIR/signature-proc-macro.rs:29:33
+error: function-like proc macro has incorrect signature
+ --> $DIR/signature-proc-macro.rs:28:36
|
LL | pub fn too_many(a: TokenStream, b: TokenStream, c: String) -> TokenStream {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ found unexpected arguments
+ | ^^^^^^^^^^^ incorrect number of function parameters
+ |
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `fn(proc_macro::TokenStream, proc_macro::TokenStream, std::string::String) -> proc_macro::TokenStream`
-error: aborting due to 5 previous errors
+error: aborting due to 4 previous errors
diff --git a/tests/ui/proc-macro/signature.rs b/tests/ui/proc-macro/signature.rs
index 11187aa31..7b4982a61 100644
--- a/tests/ui/proc-macro/signature.rs
+++ b/tests/ui/proc-macro/signature.rs
@@ -8,10 +8,6 @@ extern crate proc_macro;
#[proc_macro_derive(A)]
pub unsafe extern "C" fn foo(a: i32, b: u32) -> u32 {
- //~^ ERROR: mismatched derive proc macro signature
- //~| mismatched derive proc macro signature
- //~| mismatched derive proc macro signature
- //~| proc macro functions may not be `extern
- //~| proc macro functions may not be `unsafe
+ //~^ ERROR: derive proc macro has incorrect signature
loop {}
}
diff --git a/tests/ui/proc-macro/signature.stderr b/tests/ui/proc-macro/signature.stderr
index 3dbe3f22a..ba5c8c157 100644
--- a/tests/ui/proc-macro/signature.stderr
+++ b/tests/ui/proc-macro/signature.stderr
@@ -1,36 +1,11 @@
-error: proc macro functions may not be `extern "C"`
+error: derive proc macro has incorrect signature
--> $DIR/signature.rs:10:1
|
LL | pub unsafe extern "C" fn foo(a: i32, b: u32) -> u32 {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: proc macro functions may not be `unsafe`
- --> $DIR/signature.rs:10:1
- |
-LL | pub unsafe extern "C" fn foo(a: i32, b: u32) -> u32 {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: mismatched derive proc macro signature
- --> $DIR/signature.rs:10:49
- |
-LL | pub unsafe extern "C" fn foo(a: i32, b: u32) -> u32 {
- | ^^^ found u32, expected type `proc_macro::TokenStream`
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected normal fn, found unsafe fn
|
- = note: derive proc macros must have a signature of `fn(TokenStream) -> TokenStream`
-
-error: mismatched derive proc macro signature
- --> $DIR/signature.rs:10:33
- |
-LL | pub unsafe extern "C" fn foo(a: i32, b: u32) -> u32 {
- | ^^^ found i32, expected type `proc_macro::TokenStream`
- |
- = note: derive proc macros must have a signature of `fn(TokenStream) -> TokenStream`
-
-error: mismatched derive proc macro signature
- --> $DIR/signature.rs:10:38
- |
-LL | pub unsafe extern "C" fn foo(a: i32, b: u32) -> u32 {
- | ^^^^^^ found unexpected argument
+ = note: expected signature `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
+ found signature `unsafe extern "C" fn(i32, u32) -> u32`
-error: aborting due to 5 previous errors
+error: aborting due to previous error
diff --git a/tests/ui/proc-macro/span-api-tests.rs b/tests/ui/proc-macro/span-api-tests.rs
index 3f04ba866..7493f9cdb 100644
--- a/tests/ui/proc-macro/span-api-tests.rs
+++ b/tests/ui/proc-macro/span-api-tests.rs
@@ -1,5 +1,4 @@
// run-pass
-// ignore-pretty
// aux-build:span-api-tests.rs
// aux-build:span-test-macros.rs
// compile-flags: -Ztranslate-remapped-path-to-local-path=yes