diff options
| -rw-r--r-- | src/test/compile-fail/proc-macro/auxiliary/derive-clona.rs | 23 | ||||
| -rw-r--r-- | src/test/compile-fail/proc-macro/auxiliary/derive-foo.rs | 23 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attr-invalid-exprs.rs (renamed from src/test/compile-fail/proc-macro/attr-invalid-exprs.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attr-invalid-exprs.stderr | 28 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attr-stmt-expr.rs (renamed from src/test/compile-fail/proc-macro/attr-stmt-expr.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attr-stmt-expr.stderr | 19 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attribute-with-error.rs (renamed from src/test/compile-fail/proc-macro/attribute-with-error.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attribute-with-error.stderr | 39 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attribute.rs (renamed from src/test/compile-fail/proc-macro/attribute.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attribute.stderr | 50 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attributes-included.rs (renamed from src/test/compile-fail/proc-macro/attributes-included.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/attributes-included.stderr | 13 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/attr-stmt-expr.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/attr-stmt-expr.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/attribute-with-error.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/attribute-with-error.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/attributes-included.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/attributes-included.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/bang_proc_macro2.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/bang_proc_macro2.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/derive-a-b.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/derive-a-b.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/derive-a.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/derive-a.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/derive-b.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/derive-b.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/derive-bad.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/derive-bad.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/derive-unstable-2.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/derive-unstable-2.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/derive-unstable.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/derive-unstable.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/issue-41211.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/issue-41211.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/issue_38586.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/issue_38586.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/issue_50493.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/issue_50493.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/more-gates.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/more-gates.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/proc-macro-gates.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/proc-macro-gates.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/auxiliary/test-macros.rs (renamed from src/test/compile-fail/proc-macro/auxiliary/test-macros.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/define-two.rs (renamed from src/test/compile-fail/proc-macro/define-two.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/define-two.stderr | 14 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/derive-bad.rs (renamed from src/test/compile-fail/proc-macro/derive-bad.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/derive-bad.stderr | 14 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/derive-still-gated.rs (renamed from src/test/compile-fail/proc-macro/derive-still-gated.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/derive-still-gated.stderr | 11 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/expand-to-unstable-2.rs (renamed from src/test/compile-fail/proc-macro/expand-to-unstable-2.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/expand-to-unstable-2.stderr | 11 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/expand-to-unstable.rs (renamed from src/test/compile-fail/proc-macro/expand-to-unstable.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/expand-to-unstable.stderr | 11 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/export-macro.rs (renamed from src/test/compile-fail/proc-macro/export-macro.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/export-macro.stderr | 10 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/exports.rs (renamed from src/test/compile-fail/proc-macro/exports.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/exports.stderr | 26 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/illegal-proc-macro-derive-use.rs (renamed from src/test/compile-fail/proc-macro/illegal-proc-macro-derive-use.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/illegal-proc-macro-derive-use.stderr | 14 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/import.rs (renamed from src/test/compile-fail/proc-macro/import.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/import.stderr | 9 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-37788.rs (renamed from src/test/compile-fail/proc-macro/issue-37788.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-37788.stderr | 17 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-38586.rs (renamed from src/test/compile-fail/proc-macro/issue-38586.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-38586.stderr | 9 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-41211.rs (renamed from src/test/compile-fail/proc-macro/issue-41211.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-41211.stderr | 11 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-50493.rs (renamed from src/test/compile-fail/proc-macro/issue-50493.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/issue-50493.stderr | 15 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/item-error.rs (renamed from src/test/compile-fail/proc-macro/item-error.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/item-error.stderr | 9 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/lints_in_proc_macros.rs (renamed from src/test/compile-fail/proc-macro/lints_in_proc_macros.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/lints_in_proc_macros.stderr | 9 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/macros-in-extern.rs (renamed from src/test/compile-fail/proc-macro/macros-in-extern.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/macros-in-extern.stderr | 27 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/more-gates.rs (renamed from src/test/compile-fail/proc-macro/more-gates.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/more-gates.stderr | 43 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/no-macro-use-attr.rs (renamed from src/test/compile-fail/proc-macro/no-macro-use-attr.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/no-macro-use-attr.stderr | 20 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/proc-macro-attributes.rs (renamed from src/test/compile-fail/proc-macro/proc-macro-attributes.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/proc-macro-attributes.stderr | 11 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/proc-macro-gates.rs (renamed from src/test/compile-fail/proc-macro/proc-macro-gates.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/proc-macro-gates.stderr | 137 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/proc-macro-gates2.rs (renamed from src/test/compile-fail/proc-macro/proc-macro-gates2.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/proc-macro-gates2.stderr | 19 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/pub-at-crate-root.rs (renamed from src/test/compile-fail/proc-macro/pub-at-crate-root.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/pub-at-crate-root.stderr | 32 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/shadow-builtin.rs (renamed from src/test/compile-fail/proc-macro/shadow-builtin.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/shadow-builtin.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/shadow.rs (renamed from src/test/compile-fail/proc-macro/shadow.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/shadow.stderr | 18 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/two-crate-types-1.rs (renamed from src/test/compile-fail/proc-macro/two-crate-types-1.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/two-crate-types-1.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/two-crate-types-2.rs (renamed from src/test/compile-fail/proc-macro/two-crate-types-2.rs) | 0 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/two-crate-types-2.stderr | 4 |
80 files changed, 662 insertions, 46 deletions
diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-clona.rs b/src/test/compile-fail/proc-macro/auxiliary/derive-clona.rs deleted file mode 100644 index 719fbdb15ef..00000000000 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-clona.rs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2016 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// force-host -// no-prefer-dynamic - -#![crate_type = "proc-macro"] - -extern crate proc_macro; - -use proc_macro::TokenStream; - -#[proc_macro_derive(Clona)] -pub fn derive_clonea(input: TokenStream) -> TokenStream { - "".parse().unwrap() -} diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-foo.rs b/src/test/compile-fail/proc-macro/auxiliary/derive-foo.rs deleted file mode 100644 index 64dcf72ba20..00000000000 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-foo.rs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2016 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// force-host -// no-prefer-dynamic - -#![crate_type = "proc-macro"] - -extern crate proc_macro; - -use proc_macro::TokenStream; - -#[proc_macro_derive(FooWithLongName)] -pub fn derive_foo(input: TokenStream) -> TokenStream { - "".parse().unwrap() -} diff --git a/src/test/compile-fail/proc-macro/attr-invalid-exprs.rs b/src/test/ui/proc-macro/attr-invalid-exprs.rs index 798cd1406ac..798cd1406ac 100644 --- a/src/test/compile-fail/proc-macro/attr-invalid-exprs.rs +++ b/src/test/ui/proc-macro/attr-invalid-exprs.rs diff --git a/src/test/ui/proc-macro/attr-invalid-exprs.stderr b/src/test/ui/proc-macro/attr-invalid-exprs.stderr new file mode 100644 index 00000000000..c28def63e3e --- /dev/null +++ b/src/test/ui/proc-macro/attr-invalid-exprs.stderr @@ -0,0 +1,28 @@ +error: expected expression, found `<eof>` + --> $DIR/attr-invalid-exprs.rs:21:13 + | +LL | let _ = #[no_output] "Hello, world!"; + | ^^^^^^^^^^^^ + +error: macro expansion ignores token `,` and any following + --> $DIR/attr-invalid-exprs.rs:24:13 + | +LL | let _ = #[duplicate] "Hello, world!"; + | ^^^^^^^^^^^^- help: you might be missing a semicolon here: `;` + | | + | caused by the macro expansion here + | + = note: the usage of `duplicate!` is likely invalid in expression context + +error: macro expansion ignores token `,` and any following + --> $DIR/attr-invalid-exprs.rs:33:9 + | +LL | #[duplicate] + | ^^^^^^^^^^^^- help: you might be missing a semicolon here: `;` + | | + | caused by the macro expansion here + | + = note: the usage of `duplicate!` is likely invalid in expression context + +error: aborting due to 3 previous errors + diff --git a/src/test/compile-fail/proc-macro/attr-stmt-expr.rs b/src/test/ui/proc-macro/attr-stmt-expr.rs index 6d1d5dfe8cc..6d1d5dfe8cc 100644 --- a/src/test/compile-fail/proc-macro/attr-stmt-expr.rs +++ b/src/test/ui/proc-macro/attr-stmt-expr.rs diff --git a/src/test/ui/proc-macro/attr-stmt-expr.stderr b/src/test/ui/proc-macro/attr-stmt-expr.stderr new file mode 100644 index 00000000000..ee9bc771782 --- /dev/null +++ b/src/test/ui/proc-macro/attr-stmt-expr.stderr @@ -0,0 +1,19 @@ +error[E0658]: attributes on expressions are experimental. (see issue #15701) + --> $DIR/attr-stmt-expr.rs:20:5 + | +LL | #[expect_print_expr] + | ^^^^^^^^^^^^^^^^^^^^ + | + = help: add #![feature(stmt_expr_attributes)] to the crate attributes to enable + +error[E0658]: attributes on expressions are experimental. (see issue #15701) + --> $DIR/attr-stmt-expr.rs:33:5 + | +LL | #[expect_expr] + | ^^^^^^^^^^^^^^ + | + = help: add #![feature(stmt_expr_attributes)] to the crate attributes to enable + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/attribute-with-error.rs b/src/test/ui/proc-macro/attribute-with-error.rs index ed2e8ec00a9..ed2e8ec00a9 100644 --- a/src/test/compile-fail/proc-macro/attribute-with-error.rs +++ b/src/test/ui/proc-macro/attribute-with-error.rs diff --git a/src/test/ui/proc-macro/attribute-with-error.stderr b/src/test/ui/proc-macro/attribute-with-error.stderr new file mode 100644 index 00000000000..d2b4ac63992 --- /dev/null +++ b/src/test/ui/proc-macro/attribute-with-error.stderr @@ -0,0 +1,39 @@ +error[E0308]: mismatched types + --> $DIR/attribute-with-error.rs:21:18 + | +LL | let a: i32 = "foo"; + | ^^^^^ expected i32, found reference + | + = note: expected type `i32` + found type `&'static str` + +error[E0308]: mismatched types + --> $DIR/attribute-with-error.rs:23:18 + | +LL | let b: i32 = "f'oo"; + | ^^^^^^ expected i32, found reference + | + = note: expected type `i32` + found type `&'static str` + +error[E0308]: mismatched types + --> $DIR/attribute-with-error.rs:36:22 + | +LL | let a: i32 = "foo"; + | ^^^^^ expected i32, found reference + | + = note: expected type `i32` + found type `&'static str` + +error[E0308]: mismatched types + --> $DIR/attribute-with-error.rs:46:22 + | +LL | let a: i32 = "foo"; + | ^^^^^ expected i32, found reference + | + = note: expected type `i32` + found type `&'static str` + +error: aborting due to 4 previous errors + +For more information about this error, try `rustc --explain E0308`. diff --git a/src/test/compile-fail/proc-macro/attribute.rs b/src/test/ui/proc-macro/attribute.rs index f89d74de50f..f89d74de50f 100644 --- a/src/test/compile-fail/proc-macro/attribute.rs +++ b/src/test/ui/proc-macro/attribute.rs diff --git a/src/test/ui/proc-macro/attribute.stderr b/src/test/ui/proc-macro/attribute.stderr new file mode 100644 index 00000000000..c752c5364f4 --- /dev/null +++ b/src/test/ui/proc-macro/attribute.stderr @@ -0,0 +1,50 @@ +error: attribute must be of form: #[proc_macro_derive(TraitName)] + --> $DIR/attribute.rs:18:1 + | +LL | #[proc_macro_derive] + | ^^^^^^^^^^^^^^^^^^^^ + +error: attribute must be of form: #[proc_macro_derive(TraitName)] + --> $DIR/attribute.rs:24:1 + | +LL | #[proc_macro_derive = "foo"] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: must only be one word + --> $DIR/attribute.rs:31:5 + | +LL | a = "b" + | ^^^^^^^ + +error: attribute must have either one or two arguments + --> $DIR/attribute.rs:38:1 + | +LL | #[proc_macro_derive(b, c, d)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: must only be one word + --> $DIR/attribute.rs:44:21 + | +LL | #[proc_macro_derive(d(e))] + | ^^^^ + +error: must only be one word + --> $DIR/attribute.rs:50:35 + | +LL | #[proc_macro_derive(f, attributes(g = "h"))] + | ^^^^^^^ + +error: must only be one word + --> $DIR/attribute.rs:56:35 + | +LL | #[proc_macro_derive(i, attributes(j(k)))] + | ^^^^ + +error: attribute must have either one or two arguments + --> $DIR/attribute.rs:62:1 + | +LL | #[proc_macro_derive(l, attributes(m), n)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 8 previous errors + diff --git a/src/test/compile-fail/proc-macro/attributes-included.rs b/src/test/ui/proc-macro/attributes-included.rs index e129711129a..e129711129a 100644 --- a/src/test/compile-fail/proc-macro/attributes-included.rs +++ b/src/test/ui/proc-macro/attributes-included.rs diff --git a/src/test/ui/proc-macro/attributes-included.stderr b/src/test/ui/proc-macro/attributes-included.stderr new file mode 100644 index 00000000000..e7eeccc01f2 --- /dev/null +++ b/src/test/ui/proc-macro/attributes-included.stderr @@ -0,0 +1,13 @@ +warning: unused variable: `a` + --> $DIR/attributes-included.rs:27:9 + | +LL | let a: i32 = "foo"; //~ WARN: unused variable + | ^ help: consider using `_a` instead + | +note: lint level defined here + --> $DIR/attributes-included.rs:14:9 + | +LL | #![warn(unused)] + | ^^^^^^ + = note: #[warn(unused_variables)] implied by #[warn(unused)] + diff --git a/src/test/compile-fail/proc-macro/auxiliary/attr-stmt-expr.rs b/src/test/ui/proc-macro/auxiliary/attr-stmt-expr.rs index 4cfeec2f8a6..4cfeec2f8a6 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/attr-stmt-expr.rs +++ b/src/test/ui/proc-macro/auxiliary/attr-stmt-expr.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/attribute-with-error.rs b/src/test/ui/proc-macro/auxiliary/attribute-with-error.rs index 14284092669..14284092669 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/attribute-with-error.rs +++ b/src/test/ui/proc-macro/auxiliary/attribute-with-error.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/attributes-included.rs b/src/test/ui/proc-macro/auxiliary/attributes-included.rs index a1f4209662d..a1f4209662d 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/attributes-included.rs +++ b/src/test/ui/proc-macro/auxiliary/attributes-included.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/bang_proc_macro2.rs b/src/test/ui/proc-macro/auxiliary/bang_proc_macro2.rs index 3f0a4574367..3f0a4574367 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/bang_proc_macro2.rs +++ b/src/test/ui/proc-macro/auxiliary/bang_proc_macro2.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-a-b.rs b/src/test/ui/proc-macro/auxiliary/derive-a-b.rs index cd8750bc89c..cd8750bc89c 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-a-b.rs +++ b/src/test/ui/proc-macro/auxiliary/derive-a-b.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-a.rs b/src/test/ui/proc-macro/auxiliary/derive-a.rs index 53b2c23e5d7..53b2c23e5d7 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-a.rs +++ b/src/test/ui/proc-macro/auxiliary/derive-a.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-b.rs b/src/test/ui/proc-macro/auxiliary/derive-b.rs index 5787546fb1e..5787546fb1e 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-b.rs +++ b/src/test/ui/proc-macro/auxiliary/derive-b.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-bad.rs b/src/test/ui/proc-macro/auxiliary/derive-bad.rs index b2ded05eb51..b2ded05eb51 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-bad.rs +++ b/src/test/ui/proc-macro/auxiliary/derive-bad.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-unstable-2.rs b/src/test/ui/proc-macro/auxiliary/derive-unstable-2.rs index 2d492d341eb..2d492d341eb 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-unstable-2.rs +++ b/src/test/ui/proc-macro/auxiliary/derive-unstable-2.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/derive-unstable.rs b/src/test/ui/proc-macro/auxiliary/derive-unstable.rs index a7b5d1e3e54..a7b5d1e3e54 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/derive-unstable.rs +++ b/src/test/ui/proc-macro/auxiliary/derive-unstable.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/issue-41211.rs b/src/test/ui/proc-macro/auxiliary/issue-41211.rs index 5365e8238e9..5365e8238e9 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/issue-41211.rs +++ b/src/test/ui/proc-macro/auxiliary/issue-41211.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/issue_38586.rs b/src/test/ui/proc-macro/auxiliary/issue_38586.rs index e1a7ffaa26c..e1a7ffaa26c 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/issue_38586.rs +++ b/src/test/ui/proc-macro/auxiliary/issue_38586.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/issue_50493.rs b/src/test/ui/proc-macro/auxiliary/issue_50493.rs index e71b792a48a..e71b792a48a 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/issue_50493.rs +++ b/src/test/ui/proc-macro/auxiliary/issue_50493.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/more-gates.rs b/src/test/ui/proc-macro/auxiliary/more-gates.rs index cc9420e1537..cc9420e1537 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/more-gates.rs +++ b/src/test/ui/proc-macro/auxiliary/more-gates.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/proc-macro-gates.rs b/src/test/ui/proc-macro/auxiliary/proc-macro-gates.rs index 7e4b7fe263d..7e4b7fe263d 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/proc-macro-gates.rs +++ b/src/test/ui/proc-macro/auxiliary/proc-macro-gates.rs diff --git a/src/test/compile-fail/proc-macro/auxiliary/test-macros.rs b/src/test/ui/proc-macro/auxiliary/test-macros.rs index 0e4343a90d6..0e4343a90d6 100644 --- a/src/test/compile-fail/proc-macro/auxiliary/test-macros.rs +++ b/src/test/ui/proc-macro/auxiliary/test-macros.rs diff --git a/src/test/compile-fail/proc-macro/define-two.rs b/src/test/ui/proc-macro/define-two.rs index f8c287b6b72..f8c287b6b72 100644 --- a/src/test/compile-fail/proc-macro/define-two.rs +++ b/src/test/ui/proc-macro/define-two.rs diff --git a/src/test/ui/proc-macro/define-two.stderr b/src/test/ui/proc-macro/define-two.stderr new file mode 100644 index 00000000000..1ca2e0a3e3c --- /dev/null +++ b/src/test/ui/proc-macro/define-two.stderr @@ -0,0 +1,14 @@ +error[E0428]: the name `A` is defined multiple times + --> $DIR/define-two.rs:25:21 + | +LL | #[proc_macro_derive(A)] + | - previous definition of the macro `A` here +... +LL | #[proc_macro_derive(A)] //~ ERROR the name `A` is defined multiple times + | ^ `A` redefined here + | + = note: `A` must be defined only once in the macro namespace of this module + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0428`. diff --git a/src/test/compile-fail/proc-macro/derive-bad.rs b/src/test/ui/proc-macro/derive-bad.rs index ac27e87ace1..ac27e87ace1 100644 --- a/src/test/compile-fail/proc-macro/derive-bad.rs +++ b/src/test/ui/proc-macro/derive-bad.rs diff --git a/src/test/ui/proc-macro/derive-bad.stderr b/src/test/ui/proc-macro/derive-bad.stderr new file mode 100644 index 00000000000..57e72a07ee1 --- /dev/null +++ b/src/test/ui/proc-macro/derive-bad.stderr @@ -0,0 +1,14 @@ +error: expected `:`, found `}` + --> $DIR/derive-bad.rs:17:5 + | +LL | A + | ^ expected `:` + +error: proc-macro derive produced unparseable tokens + --> $DIR/derive-bad.rs:17:5 + | +LL | A + | ^ + +error: aborting due to 2 previous errors + diff --git a/src/test/compile-fail/proc-macro/derive-still-gated.rs b/src/test/ui/proc-macro/derive-still-gated.rs index edf5cc7e9ae..edf5cc7e9ae 100644 --- a/src/test/compile-fail/proc-macro/derive-still-gated.rs +++ b/src/test/ui/proc-macro/derive-still-gated.rs diff --git a/src/test/ui/proc-macro/derive-still-gated.stderr b/src/test/ui/proc-macro/derive-still-gated.stderr new file mode 100644 index 00000000000..f2e92b992ed --- /dev/null +++ b/src/test/ui/proc-macro/derive-still-gated.stderr @@ -0,0 +1,11 @@ +error[E0658]: attributes of the form `#[derive_*]` are reserved for the compiler (see issue #29644) + --> $DIR/derive-still-gated.rs:18:3 + | +LL | #[derive_A] //~ ERROR: attributes of the form `#[derive_*]` are reserved for the compiler + | ^^^^^^^^ + | + = help: add #![feature(custom_derive)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/expand-to-unstable-2.rs b/src/test/ui/proc-macro/expand-to-unstable-2.rs index e4fcbb117a5..e4fcbb117a5 100644 --- a/src/test/compile-fail/proc-macro/expand-to-unstable-2.rs +++ b/src/test/ui/proc-macro/expand-to-unstable-2.rs diff --git a/src/test/ui/proc-macro/expand-to-unstable-2.stderr b/src/test/ui/proc-macro/expand-to-unstable-2.stderr new file mode 100644 index 00000000000..855e9051974 --- /dev/null +++ b/src/test/ui/proc-macro/expand-to-unstable-2.stderr @@ -0,0 +1,11 @@ +error[E0658]: unless otherwise specified, attributes with the prefix `rustc_` are reserved for internal compiler diagnostics (see issue #29642) + --> $DIR/expand-to-unstable-2.rs:18:10 + | +LL | #[derive(Unstable)] + | ^^^^^^^^ + | + = help: add #![feature(rustc_attrs)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/expand-to-unstable.rs b/src/test/ui/proc-macro/expand-to-unstable.rs index 836e336fc22..836e336fc22 100644 --- a/src/test/compile-fail/proc-macro/expand-to-unstable.rs +++ b/src/test/ui/proc-macro/expand-to-unstable.rs diff --git a/src/test/ui/proc-macro/expand-to-unstable.stderr b/src/test/ui/proc-macro/expand-to-unstable.stderr new file mode 100644 index 00000000000..e851b0e2bc3 --- /dev/null +++ b/src/test/ui/proc-macro/expand-to-unstable.stderr @@ -0,0 +1,11 @@ +error[E0658]: use of unstable library feature 'core_intrinsics': intrinsics are unlikely to ever be stabilized, instead they should be used through stabilized interfaces in the rest of the standard library + --> $DIR/expand-to-unstable.rs:18:10 + | +LL | #[derive(Unstable)] + | ^^^^^^^^ + | + = help: add #![feature(core_intrinsics)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/export-macro.rs b/src/test/ui/proc-macro/export-macro.rs index d8bb3571c08..d8bb3571c08 100644 --- a/src/test/compile-fail/proc-macro/export-macro.rs +++ b/src/test/ui/proc-macro/export-macro.rs diff --git a/src/test/ui/proc-macro/export-macro.stderr b/src/test/ui/proc-macro/export-macro.stderr new file mode 100644 index 00000000000..f82d5ab5f1c --- /dev/null +++ b/src/test/ui/proc-macro/export-macro.stderr @@ -0,0 +1,10 @@ +error: cannot export macro_rules! macros from a `proc-macro` crate type currently + --> $DIR/export-macro.rs:19:1 + | +LL | / macro_rules! foo { +LL | | ($e:expr) => ($e) +LL | | } + | |_^ + +error: aborting due to previous error + diff --git a/src/test/compile-fail/proc-macro/exports.rs b/src/test/ui/proc-macro/exports.rs index 07e5723c1c1..07e5723c1c1 100644 --- a/src/test/compile-fail/proc-macro/exports.rs +++ b/src/test/ui/proc-macro/exports.rs diff --git a/src/test/ui/proc-macro/exports.stderr b/src/test/ui/proc-macro/exports.stderr new file mode 100644 index 00000000000..3637d0fbd83 --- /dev/null +++ b/src/test/ui/proc-macro/exports.stderr @@ -0,0 +1,26 @@ +error: `proc-macro` crate types cannot export any items other than functions tagged with `#[proc_macro_derive]` currently + --> $DIR/exports.rs:17:1 + | +LL | pub fn a() {} //~ ERROR: cannot export any items + | ^^^^^^^^^^^^^ + +error: `proc-macro` crate types cannot export any items other than functions tagged with `#[proc_macro_derive]` currently + --> $DIR/exports.rs:18:1 + | +LL | pub struct B; //~ ERROR: cannot export any items + | ^^^^^^^^^^^^^ + +error: `proc-macro` crate types cannot export any items other than functions tagged with `#[proc_macro_derive]` currently + --> $DIR/exports.rs:19:1 + | +LL | pub enum C {} //~ ERROR: cannot export any items + | ^^^^^^^^^^^^^ + +error: `proc-macro` crate types cannot export any items other than functions tagged with `#[proc_macro_derive]` currently + --> $DIR/exports.rs:20:1 + | +LL | pub mod d {} //~ ERROR: cannot export any items + | ^^^^^^^^^^^^ + +error: aborting due to 4 previous errors + diff --git a/src/test/compile-fail/proc-macro/illegal-proc-macro-derive-use.rs b/src/test/ui/proc-macro/illegal-proc-macro-derive-use.rs index f37980c5e0f..f37980c5e0f 100644 --- a/src/test/compile-fail/proc-macro/illegal-proc-macro-derive-use.rs +++ b/src/test/ui/proc-macro/illegal-proc-macro-derive-use.rs diff --git a/src/test/ui/proc-macro/illegal-proc-macro-derive-use.stderr b/src/test/ui/proc-macro/illegal-proc-macro-derive-use.stderr new file mode 100644 index 00000000000..715ff0e20a9 --- /dev/null +++ b/src/test/ui/proc-macro/illegal-proc-macro-derive-use.stderr @@ -0,0 +1,14 @@ +error: the `#[proc_macro_derive]` attribute is only usable with crates of the `proc-macro` crate type + --> $DIR/illegal-proc-macro-derive-use.rs:13:1 + | +LL | #[proc_macro_derive(Foo)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: the `#[proc_macro_derive]` attribute may only be used on bare functions + --> $DIR/illegal-proc-macro-derive-use.rs:20:1 + | +LL | #[proc_macro_derive(Foo)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 2 previous errors + diff --git a/src/test/compile-fail/proc-macro/import.rs b/src/test/ui/proc-macro/import.rs index fae2439344f..fae2439344f 100644 --- a/src/test/compile-fail/proc-macro/import.rs +++ b/src/test/ui/proc-macro/import.rs diff --git a/src/test/ui/proc-macro/import.stderr b/src/test/ui/proc-macro/import.stderr new file mode 100644 index 00000000000..f3633b21583 --- /dev/null +++ b/src/test/ui/proc-macro/import.stderr @@ -0,0 +1,9 @@ +error[E0432]: unresolved import `derive_a::derive_a` + --> $DIR/import.rs:18:5 + | +LL | use derive_a::derive_a; + | ^^^^^^^^^^^^^^^^^^ no `derive_a` in the root + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0432`. diff --git a/src/test/compile-fail/proc-macro/issue-37788.rs b/src/test/ui/proc-macro/issue-37788.rs index 691c2805801..691c2805801 100644 --- a/src/test/compile-fail/proc-macro/issue-37788.rs +++ b/src/test/ui/proc-macro/issue-37788.rs diff --git a/src/test/ui/proc-macro/issue-37788.stderr b/src/test/ui/proc-macro/issue-37788.stderr new file mode 100644 index 00000000000..f5ddf9ba6b8 --- /dev/null +++ b/src/test/ui/proc-macro/issue-37788.stderr @@ -0,0 +1,17 @@ +error[E0308]: mismatched types + --> $DIR/issue-37788.rs:18:5 + | +LL | fn main() { + | - expected `()` because of default return type +LL | // Test that constructing the `visible_parent_map` (in `cstore_impl.rs`) does not ICE. +LL | std::cell::Cell::new(0) //~ ERROR mismatched types + | ^^^^^^^^^^^^^^^^^^^^^^^- help: try adding a semicolon: `;` + | | + | expected (), found struct `std::cell::Cell` + | + = note: expected type `()` + found type `std::cell::Cell<{integer}>` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. diff --git a/src/test/compile-fail/proc-macro/issue-38586.rs b/src/test/ui/proc-macro/issue-38586.rs index 649220ac401..649220ac401 100644 --- a/src/test/compile-fail/proc-macro/issue-38586.rs +++ b/src/test/ui/proc-macro/issue-38586.rs diff --git a/src/test/ui/proc-macro/issue-38586.stderr b/src/test/ui/proc-macro/issue-38586.stderr new file mode 100644 index 00000000000..6ba2c0b269f --- /dev/null +++ b/src/test/ui/proc-macro/issue-38586.stderr @@ -0,0 +1,9 @@ +error[E0425]: cannot find value `foo` in this scope + --> $DIR/issue-38586.rs:16:10 + | +LL | #[derive(A)] //~ ERROR `foo` + | ^ not found in this scope + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0425`. diff --git a/src/test/compile-fail/proc-macro/issue-41211.rs b/src/test/ui/proc-macro/issue-41211.rs index e0922c452b5..e0922c452b5 100644 --- a/src/test/compile-fail/proc-macro/issue-41211.rs +++ b/src/test/ui/proc-macro/issue-41211.rs diff --git a/src/test/ui/proc-macro/issue-41211.stderr b/src/test/ui/proc-macro/issue-41211.stderr new file mode 100644 index 00000000000..ba5fad432b7 --- /dev/null +++ b/src/test/ui/proc-macro/issue-41211.stderr @@ -0,0 +1,11 @@ +error[E0658]: The attribute `emit_unchanged` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642) + --> $DIR/issue-41211.rs:18:4 + | +LL | #![emit_unchanged] + | ^^^^^^^^^^^^^^ + | + = help: add #![feature(custom_attribute)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/issue-50493.rs b/src/test/ui/proc-macro/issue-50493.rs index 635da570497..635da570497 100644 --- a/src/test/compile-fail/proc-macro/issue-50493.rs +++ b/src/test/ui/proc-macro/issue-50493.rs diff --git a/src/test/ui/proc-macro/issue-50493.stderr b/src/test/ui/proc-macro/issue-50493.stderr new file mode 100644 index 00000000000..3dcb5265535 --- /dev/null +++ b/src/test/ui/proc-macro/issue-50493.stderr @@ -0,0 +1,15 @@ +error: visibilities can only be restricted to ancestor modules + --> $DIR/issue-50493.rs:18:12 + | +LL | pub(in restricted) field: usize, //~ visibilities can only be restricted to ancestor modules + | ^^^^^^^^^^ + +error[E0616]: field `field` of struct `Restricted` is private + --> $DIR/issue-50493.rs:16:10 + | +LL | #[derive(Derive)] //~ ERROR field `field` of struct `Restricted` is private + | ^^^^^^ + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0616`. diff --git a/src/test/compile-fail/proc-macro/item-error.rs b/src/test/ui/proc-macro/item-error.rs index 4133e75e3a6..4133e75e3a6 100644 --- a/src/test/compile-fail/proc-macro/item-error.rs +++ b/src/test/ui/proc-macro/item-error.rs diff --git a/src/test/ui/proc-macro/item-error.stderr b/src/test/ui/proc-macro/item-error.stderr new file mode 100644 index 00000000000..d1932868797 --- /dev/null +++ b/src/test/ui/proc-macro/item-error.stderr @@ -0,0 +1,9 @@ +error[E0106]: missing lifetime specifier + --> $DIR/item-error.rs:20:8 + | +LL | a: &u64 + | ^ expected lifetime parameter + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0106`. diff --git a/src/test/compile-fail/proc-macro/lints_in_proc_macros.rs b/src/test/ui/proc-macro/lints_in_proc_macros.rs index d49c6120271..d49c6120271 100644 --- a/src/test/compile-fail/proc-macro/lints_in_proc_macros.rs +++ b/src/test/ui/proc-macro/lints_in_proc_macros.rs diff --git a/src/test/ui/proc-macro/lints_in_proc_macros.stderr b/src/test/ui/proc-macro/lints_in_proc_macros.stderr new file mode 100644 index 00000000000..42d9a307226 --- /dev/null +++ b/src/test/ui/proc-macro/lints_in_proc_macros.stderr @@ -0,0 +1,9 @@ +error[E0425]: cannot find value `foobar2` in this scope + --> $DIR/lints_in_proc_macros.rs:22:5 + | +LL | bang_proc_macro2!(); + | ^^^^^^^^^^^^^^^^^^^^ did you mean `foobar`? + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0425`. diff --git a/src/test/compile-fail/proc-macro/macros-in-extern.rs b/src/test/ui/proc-macro/macros-in-extern.rs index 43d7077d022..43d7077d022 100644 --- a/src/test/compile-fail/proc-macro/macros-in-extern.rs +++ b/src/test/ui/proc-macro/macros-in-extern.rs diff --git a/src/test/ui/proc-macro/macros-in-extern.stderr b/src/test/ui/proc-macro/macros-in-extern.stderr new file mode 100644 index 00000000000..5c51de45801 --- /dev/null +++ b/src/test/ui/proc-macro/macros-in-extern.stderr @@ -0,0 +1,27 @@ +error[E0658]: macro invocations in `extern {}` blocks are experimental (see issue #49476) + --> $DIR/macros-in-extern.rs:25:5 + | +LL | #[no_output] + | ^^^^^^^^^^^^ + | + = help: add #![feature(macros_in_extern)] to the crate attributes to enable + +error[E0658]: macro invocations in `extern {}` blocks are experimental (see issue #49476) + --> $DIR/macros-in-extern.rs:29:5 + | +LL | #[nop_attr] + | ^^^^^^^^^^^ + | + = help: add #![feature(macros_in_extern)] to the crate attributes to enable + +error[E0658]: macro invocations in `extern {}` blocks are experimental (see issue #49476) + --> $DIR/macros-in-extern.rs:33:5 + | +LL | emit_input!(fn rust_dbg_extern_identity_u32(arg: u32) -> u32;); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: add #![feature(macros_in_extern)] to the crate attributes to enable + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/more-gates.rs b/src/test/ui/proc-macro/more-gates.rs index 4c038179544..4c038179544 100644 --- a/src/test/compile-fail/proc-macro/more-gates.rs +++ b/src/test/ui/proc-macro/more-gates.rs diff --git a/src/test/ui/proc-macro/more-gates.stderr b/src/test/ui/proc-macro/more-gates.stderr new file mode 100644 index 00000000000..d5f30d5817c --- /dev/null +++ b/src/test/ui/proc-macro/more-gates.stderr @@ -0,0 +1,43 @@ +error[E0658]: procedural macros cannot expand to macro definitions (see issue #54727) + --> $DIR/more-gates.rs:17:1 + | +LL | #[attr2mac1] + | ^^^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot expand to macro definitions (see issue #54727) + --> $DIR/more-gates.rs:20:1 + | +LL | #[attr2mac2] + | ^^^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot expand to macro definitions (see issue #54727) + --> $DIR/more-gates.rs:24:1 + | +LL | mac2mac1!(); //~ ERROR: cannot expand to macro definitions + | ^^^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot expand to macro definitions (see issue #54727) + --> $DIR/more-gates.rs:25:1 + | +LL | mac2mac2!(); //~ ERROR: cannot expand to macro definitions + | ^^^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot expand to macro definitions (see issue #54727) + --> $DIR/more-gates.rs:27:1 + | +LL | tricky!(); + | ^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error: aborting due to 5 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/no-macro-use-attr.rs b/src/test/ui/proc-macro/no-macro-use-attr.rs index ab05ca28386..ab05ca28386 100644 --- a/src/test/compile-fail/proc-macro/no-macro-use-attr.rs +++ b/src/test/ui/proc-macro/no-macro-use-attr.rs diff --git a/src/test/ui/proc-macro/no-macro-use-attr.stderr b/src/test/ui/proc-macro/no-macro-use-attr.stderr new file mode 100644 index 00000000000..447cb26f056 --- /dev/null +++ b/src/test/ui/proc-macro/no-macro-use-attr.stderr @@ -0,0 +1,20 @@ +warning: unused extern crate + --> $DIR/no-macro-use-attr.rs:16:1 + | +LL | extern crate derive_a; + | ^^^^^^^^^^^^^^^^^^^^^^ help: remove it + | +note: lint level defined here + --> $DIR/no-macro-use-attr.rs:14:9 + | +LL | #![warn(unused_extern_crates)] + | ^^^^^^^^^^^^^^^^^^^^ + +error: compilation successful + --> $DIR/no-macro-use-attr.rs:20:1 + | +LL | fn main() {} //~ ERROR compilation successful + | ^^^^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/compile-fail/proc-macro/proc-macro-attributes.rs b/src/test/ui/proc-macro/proc-macro-attributes.rs index 6e52411500e..6e52411500e 100644 --- a/src/test/compile-fail/proc-macro/proc-macro-attributes.rs +++ b/src/test/ui/proc-macro/proc-macro-attributes.rs diff --git a/src/test/ui/proc-macro/proc-macro-attributes.stderr b/src/test/ui/proc-macro/proc-macro-attributes.stderr new file mode 100644 index 00000000000..a1289c6356a --- /dev/null +++ b/src/test/ui/proc-macro/proc-macro-attributes.stderr @@ -0,0 +1,11 @@ +error[E0658]: The attribute `C` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642) + --> $DIR/proc-macro-attributes.rs:17:3 + | +LL | #[C] //~ ERROR attribute `C` is currently unknown to the compiler + | ^ + | + = help: add #![feature(custom_attribute)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/proc-macro-gates.rs b/src/test/ui/proc-macro/proc-macro-gates.rs index 5049a474dd2..5049a474dd2 100644 --- a/src/test/compile-fail/proc-macro/proc-macro-gates.rs +++ b/src/test/ui/proc-macro/proc-macro-gates.rs diff --git a/src/test/ui/proc-macro/proc-macro-gates.stderr b/src/test/ui/proc-macro/proc-macro-gates.stderr new file mode 100644 index 00000000000..d5c85d97b54 --- /dev/null +++ b/src/test/ui/proc-macro/proc-macro-gates.stderr @@ -0,0 +1,137 @@ +error[E0658]: non-builtin inner attributes are unstable (see issue #54726) + --> $DIR/proc-macro-gates.rs:21:5 + | +LL | #![a] //~ ERROR: non-builtin inner attributes are unstable + | ^^^^^ + | + = help: add #![feature(custom_inner_attributes)] to the crate attributes to enable + +error[E0658]: non-builtin inner attributes are unstable (see issue #54726) + --> $DIR/proc-macro-gates.rs:28:5 + | +LL | #![a] //~ ERROR: custom attributes cannot be applied to modules + | ^^^^^ + | + = help: add #![feature(custom_inner_attributes)] to the crate attributes to enable + +error[E0658]: custom attributes cannot be applied to modules (see issue #54727) + --> $DIR/proc-macro-gates.rs:24:1 + | +LL | #[a] //~ ERROR: custom attributes cannot be applied to modules + | ^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: custom attributes cannot be applied to modules (see issue #54727) + --> $DIR/proc-macro-gates.rs:28:5 + | +LL | #![a] //~ ERROR: custom attributes cannot be applied to modules + | ^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error: custom attribute invocations must be of the form #[foo] or #[foo(..)], the macro name must only be followed by a delimiter token + --> $DIR/proc-macro-gates.rs:32:1 + | +LL | #[a = y] //~ ERROR: must only be followed by a delimiter token + | ^^^^^^^^ + +error[E0658]: custom attributes cannot be applied to statements (see issue #54727) + --> $DIR/proc-macro-gates.rs:41:5 + | +LL | #[a] //~ ERROR: custom attributes cannot be applied to statements + | ^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: custom attributes cannot be applied to statements (see issue #54727) + --> $DIR/proc-macro-gates.rs:45:5 + | +LL | #[a] //~ ERROR: custom attributes cannot be applied to statements + | ^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: custom attributes cannot be applied to statements (see issue #54727) + --> $DIR/proc-macro-gates.rs:49:5 + | +LL | #[a] //~ ERROR: custom attributes cannot be applied to statements + | ^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: custom attributes cannot be applied to expressions (see issue #54727) + --> $DIR/proc-macro-gates.rs:53:14 + | +LL | let _x = #[a] 2; //~ ERROR: custom attributes cannot be applied to expressions + | ^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: custom attributes cannot be applied to expressions (see issue #54727) + --> $DIR/proc-macro-gates.rs:56:15 + | +LL | let _x = [#[a] 2]; //~ ERROR: custom attributes cannot be applied to expressions + | ^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: custom attributes cannot be applied to expressions (see issue #54727) + --> $DIR/proc-macro-gates.rs:59:14 + | +LL | let _x = #[a] println!(); //~ ERROR: custom attributes cannot be applied to expressions + | ^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot be expanded to types (see issue #54727) + --> $DIR/proc-macro-gates.rs:63:13 + | +LL | let _x: m!(u32) = 3; //~ ERROR: procedural macros cannot be expanded to types + | ^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot be expanded to patterns (see issue #54727) + --> $DIR/proc-macro-gates.rs:64:12 + | +LL | if let m!(Some(_x)) = Some(3) {} //~ ERROR: procedural macros cannot be expanded to patterns + | ^^^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot be expanded to statements (see issue #54727) + --> $DIR/proc-macro-gates.rs:66:5 + | +LL | m!(struct S;); //~ ERROR: procedural macros cannot be expanded to statements + | ^^^^^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot be expanded to statements (see issue #54727) + --> $DIR/proc-macro-gates.rs:67:5 + | +LL | m!(let _x = 3;); //~ ERROR: procedural macros cannot be expanded to statements + | ^^^^^^^^^^^^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot be expanded to expressions (see issue #54727) + --> $DIR/proc-macro-gates.rs:69:14 + | +LL | let _x = m!(3); //~ ERROR: procedural macros cannot be expanded to expressions + | ^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error[E0658]: procedural macros cannot be expanded to expressions (see issue #54727) + --> $DIR/proc-macro-gates.rs:70:15 + | +LL | let _x = [m!(3)]; //~ ERROR: procedural macros cannot be expanded to expressions + | ^^^^^ + | + = help: add #![feature(proc_macro_hygiene)] to the crate attributes to enable + +error: aborting due to 17 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/proc-macro-gates2.rs b/src/test/ui/proc-macro/proc-macro-gates2.rs index dc182414a1d..dc182414a1d 100644 --- a/src/test/compile-fail/proc-macro/proc-macro-gates2.rs +++ b/src/test/ui/proc-macro/proc-macro-gates2.rs diff --git a/src/test/ui/proc-macro/proc-macro-gates2.stderr b/src/test/ui/proc-macro/proc-macro-gates2.stderr new file mode 100644 index 00000000000..2c0f2b09f06 --- /dev/null +++ b/src/test/ui/proc-macro/proc-macro-gates2.stderr @@ -0,0 +1,19 @@ +error[E0658]: The attribute `a` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642) + --> $DIR/proc-macro-gates2.rs:23:11 + | +LL | fn _test6<#[a] T>() {} + | ^^^^ + | + = help: add #![feature(custom_attribute)] to the crate attributes to enable + +error[E0658]: The attribute `a` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642) + --> $DIR/proc-macro-gates2.rs:28:9 + | +LL | #[a] //~ ERROR: unknown to the compiler + | ^^^^ + | + = help: add #![feature(custom_attribute)] to the crate attributes to enable + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/compile-fail/proc-macro/pub-at-crate-root.rs b/src/test/ui/proc-macro/pub-at-crate-root.rs index e995eb549fa..e995eb549fa 100644 --- a/src/test/compile-fail/proc-macro/pub-at-crate-root.rs +++ b/src/test/ui/proc-macro/pub-at-crate-root.rs diff --git a/src/test/ui/proc-macro/pub-at-crate-root.stderr b/src/test/ui/proc-macro/pub-at-crate-root.stderr new file mode 100644 index 00000000000..ba9a8605f1f --- /dev/null +++ b/src/test/ui/proc-macro/pub-at-crate-root.stderr @@ -0,0 +1,32 @@ +error: `proc-macro` crate types cannot export any items other than functions tagged with `#[proc_macro_derive]` currently + --> $DIR/pub-at-crate-root.rs:18:1 + | +LL | / pub mod a { //~ `proc-macro` crate types cannot export any items +LL | | use proc_macro::TokenStream; +LL | | +LL | | #[proc_macro_derive(B)] +... | +LL | | } +LL | | } + | |_^ + +error: functions tagged with `#[proc_macro_derive]` must currently reside in the root of the crate + --> $DIR/pub-at-crate-root.rs:22:5 + | +LL | / pub fn bar(a: TokenStream) -> TokenStream { +LL | | //~^ ERROR: must currently reside in the root of the crate +LL | | a +LL | | } + | |_____^ + +error: functions tagged with `#[proc_macro_derive]` must be `pub` + --> $DIR/pub-at-crate-root.rs:29:1 + | +LL | / fn bar(a: proc_macro::TokenStream) -> proc_macro::TokenStream { +LL | | //~^ ERROR: functions tagged with `#[proc_macro_derive]` must be `pub` +LL | | a +LL | | } + | |_^ + +error: aborting due to 3 previous errors + diff --git a/src/test/compile-fail/proc-macro/shadow-builtin.rs b/src/test/ui/proc-macro/shadow-builtin.rs index a5fcfde1dda..a5fcfde1dda 100644 --- a/src/test/compile-fail/proc-macro/shadow-builtin.rs +++ b/src/test/ui/proc-macro/shadow-builtin.rs diff --git a/src/test/ui/proc-macro/shadow-builtin.stderr b/src/test/ui/proc-macro/shadow-builtin.stderr new file mode 100644 index 00000000000..6d04c907386 --- /dev/null +++ b/src/test/ui/proc-macro/shadow-builtin.stderr @@ -0,0 +1,8 @@ +error: cannot override a built-in #[derive] mode + --> $DIR/shadow-builtin.rs:20:21 + | +LL | #[proc_macro_derive(PartialEq)] + | ^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/compile-fail/proc-macro/shadow.rs b/src/test/ui/proc-macro/shadow.rs index 9bff1c57ae4..9bff1c57ae4 100644 --- a/src/test/compile-fail/proc-macro/shadow.rs +++ b/src/test/ui/proc-macro/shadow.rs diff --git a/src/test/ui/proc-macro/shadow.stderr b/src/test/ui/proc-macro/shadow.stderr new file mode 100644 index 00000000000..847fc73f9e0 --- /dev/null +++ b/src/test/ui/proc-macro/shadow.stderr @@ -0,0 +1,18 @@ +error[E0259]: the name `derive_a` is defined multiple times + --> $DIR/shadow.rs:16:1 + | +LL | extern crate derive_a; + | ---------------------- previous import of the extern crate `derive_a` here +LL | #[macro_use] +LL | extern crate derive_a; //~ ERROR the name `derive_a` is defined multiple times + | ^^^^^^^^^^^^^^^^^^^^^^ `derive_a` reimported here + | + = note: `derive_a` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | extern crate derive_a as other_derive_a; //~ ERROR the name `derive_a` is defined multiple times + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0259`. diff --git a/src/test/compile-fail/proc-macro/two-crate-types-1.rs b/src/test/ui/proc-macro/two-crate-types-1.rs index 06bd3f9dd6a..06bd3f9dd6a 100644 --- a/src/test/compile-fail/proc-macro/two-crate-types-1.rs +++ b/src/test/ui/proc-macro/two-crate-types-1.rs diff --git a/src/test/ui/proc-macro/two-crate-types-1.stderr b/src/test/ui/proc-macro/two-crate-types-1.stderr new file mode 100644 index 00000000000..deaba1cf272 --- /dev/null +++ b/src/test/ui/proc-macro/two-crate-types-1.stderr @@ -0,0 +1,4 @@ +error: cannot mix `proc-macro` crate type with others + +error: aborting due to previous error + diff --git a/src/test/compile-fail/proc-macro/two-crate-types-2.rs b/src/test/ui/proc-macro/two-crate-types-2.rs index dd5e5acbec8..dd5e5acbec8 100644 --- a/src/test/compile-fail/proc-macro/two-crate-types-2.rs +++ b/src/test/ui/proc-macro/two-crate-types-2.rs diff --git a/src/test/ui/proc-macro/two-crate-types-2.stderr b/src/test/ui/proc-macro/two-crate-types-2.stderr new file mode 100644 index 00000000000..deaba1cf272 --- /dev/null +++ b/src/test/ui/proc-macro/two-crate-types-2.stderr @@ -0,0 +1,4 @@ +error: cannot mix `proc-macro` crate type with others + +error: aborting due to previous error + |
