error: the `#[default]` attribute may only be used on unit enum variants
  --> $DIR/macros-nonfatal-errors.rs:13:5
   |
LL |     #[default]
   |     ^^^^^^^^^^
   |
   = help: consider a manual implementation of `Default`

error: the `#[default]` attribute may only be used on unit enum variants
  --> $DIR/macros-nonfatal-errors.rs:18:36
   |
LL | struct DefaultInnerAttrTupleStruct(#[default] ());
   |                                    ^^^^^^^^^^
   |
   = help: consider a manual implementation of `Default`

error: the `#[default]` attribute may only be used on unit enum variants
  --> $DIR/macros-nonfatal-errors.rs:22:1
   |
LL | #[default]
   | ^^^^^^^^^^
   |
   = help: consider a manual implementation of `Default`

error: the `#[default]` attribute may only be used on unit enum variants
  --> $DIR/macros-nonfatal-errors.rs:26:1
   |
LL | #[default]
   | ^^^^^^^^^^
   |
   = help: consider a manual implementation of `Default`

error: the `#[default]` attribute may only be used on unit enum variants
  --> $DIR/macros-nonfatal-errors.rs:36:11
   |
LL |     Foo = #[default] 0,
   |           ^^^^^^^^^^
   |
   = help: consider a manual implementation of `Default`

error: the `#[default]` attribute may only be used on unit enum variants
  --> $DIR/macros-nonfatal-errors.rs:37:14
   |
LL |     Bar([u8; #[default] 1]),
   |              ^^^^^^^^^^
   |
   = help: consider a manual implementation of `Default`

error: no default declared
  --> $DIR/macros-nonfatal-errors.rs:42:10
   |
LL | #[derive(Default)]
   |          ^^^^^^^
   |
   = help: make a unit variant default by placing `#[default]` above it
   = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: multiple declared defaults
  --> $DIR/macros-nonfatal-errors.rs:48:10
   |
LL | #[derive(Default)]
   |          ^^^^^^^
...
LL |     Foo,
   |     --- first default
LL |     #[default]
LL |     Bar,
   |     --- additional default
LL |     #[default]
LL |     Baz,
   |     --- additional default
   |
   = note: only one variant can be default
   = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `#[default]` attribute does not accept a value
  --> $DIR/macros-nonfatal-errors.rs:60:5
   |
LL |     #[default = 1]
   |     ^^^^^^^^^^^^^^
   |
   = help: try using `#[default]`

error: multiple `#[default]` attributes
  --> $DIR/macros-nonfatal-errors.rs:68:5
   |
LL |     #[default]
   |     ---------- `#[default]` used here
LL |     #[default]
   |     ---------- `#[default]` used again here
LL |     Foo,
   |     ^^^
   |
   = note: only one `#[default]` attribute is needed
help: try removing this
  --> $DIR/macros-nonfatal-errors.rs:67:5
   |
LL |     #[default]
   |     ^^^^^^^^^^

error: multiple `#[default]` attributes
  --> $DIR/macros-nonfatal-errors.rs:78:5
   |
LL |     #[default]
   |     ---------- `#[default]` used here
LL |     #[default]
   |     ---------- `#[default]` used again here
...
LL |     Foo,
   |     ^^^
   |
   = note: only one `#[default]` attribute is needed
help: try removing these
  --> $DIR/macros-nonfatal-errors.rs:75:5
   |
LL |     #[default]
   |     ^^^^^^^^^^
LL |     #[default]
   |     ^^^^^^^^^^
LL |     #[default]
   |     ^^^^^^^^^^

error: the `#[default]` attribute may only be used on unit enum variants
  --> $DIR/macros-nonfatal-errors.rs:85:5
   |
LL |     Foo {},
   |     ^^^
   |
   = help: consider a manual implementation of `Default`

error: default variant must be exhaustive
  --> $DIR/macros-nonfatal-errors.rs:93:5
   |
LL |     #[non_exhaustive]
   |     ----------------- declared `#[non_exhaustive]` here
LL |     Foo,
   |     ^^^
   |
   = help: consider a manual implementation of `Default`

error: asm template must be a string literal
  --> $DIR/macros-nonfatal-errors.rs:98:10
   |
LL |     asm!(invalid);
   |          ^^^^^^^

error: `concat_idents!()` requires ident args
  --> $DIR/macros-nonfatal-errors.rs:101:5
   |
LL |     concat_idents!("not", "idents");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: argument must be a string literal
  --> $DIR/macros-nonfatal-errors.rs:103:17
   |
LL |     option_env!(invalid);
   |                 ^^^^^^^

error: expected string literal
  --> $DIR/macros-nonfatal-errors.rs:104:10
   |
LL |     env!(invalid);
   |          ^^^^^^^

error: `env!()` takes 1 or 2 arguments
  --> $DIR/macros-nonfatal-errors.rs:105:5
   |
LL |     env!(foo, abr, baz);
   |     ^^^^^^^^^^^^^^^^^^^

error: environment variable `RUST_HOPEFULLY_THIS_DOESNT_EXIST` not defined at compile time
  --> $DIR/macros-nonfatal-errors.rs:106:5
   |
LL |     env!("RUST_HOPEFULLY_THIS_DOESNT_EXIST");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use `std::env::var("RUST_HOPEFULLY_THIS_DOESNT_EXIST")` to read the variable at run time
   = note: this error originates in the macro `env` (in Nightly builds, run with -Z macro-backtrace for more info)

error: format argument must be a string literal
  --> $DIR/macros-nonfatal-errors.rs:108:13
   |
LL |     format!(invalid);
   |             ^^^^^^^
   |
help: you might be missing a string literal to format with
   |
LL |     format!("{}", invalid);
   |             +++++

error: argument must be a string literal
  --> $DIR/macros-nonfatal-errors.rs:110:14
   |
LL |     include!(invalid);
   |              ^^^^^^^

error: argument must be a string literal
  --> $DIR/macros-nonfatal-errors.rs:112:18
   |
LL |     include_str!(invalid);
   |                  ^^^^^^^

error: couldn't read `$DIR/i'd be quite surprised if a file with this name existed`: $FILE_NOT_FOUND_MSG
  --> $DIR/macros-nonfatal-errors.rs:113:5
   |
LL |     include_str!("i'd be quite surprised if a file with this name existed");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `include_str` (in Nightly builds, run with -Z macro-backtrace for more info)

error: argument must be a string literal
  --> $DIR/macros-nonfatal-errors.rs:114:20
   |
LL |     include_bytes!(invalid);
   |                    ^^^^^^^

error: couldn't read `$DIR/i'd be quite surprised if a file with this name existed`: $FILE_NOT_FOUND_MSG
  --> $DIR/macros-nonfatal-errors.rs:115:5
   |
LL |     include_bytes!("i'd be quite surprised if a file with this name existed");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `include_bytes` (in Nightly builds, run with -Z macro-backtrace for more info)

error: trace_macros! accepts only `true` or `false`
  --> $DIR/macros-nonfatal-errors.rs:117:5
   |
LL |     trace_macros!(invalid);
   |     ^^^^^^^^^^^^^^^^^^^^^^

error: default variant must be exhaustive
  --> $DIR/macros-nonfatal-errors.rs:127:9
   |
LL |         #[non_exhaustive]
   |         ----------------- declared `#[non_exhaustive]` here
LL |         Foo,
   |         ^^^
   |
   = help: consider a manual implementation of `Default`

error: cannot find macro `llvm_asm` in this scope
  --> $DIR/macros-nonfatal-errors.rs:99:5
   |
LL |     llvm_asm!(invalid);
   |     ^^^^^^^^

error: aborting due to 28 previous errors

