diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/macros/macros-nonfatal-errors.rs | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/macros/macros-nonfatal-errors.rs')
-rw-r--r-- | src/test/ui/macros/macros-nonfatal-errors.rs | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/src/test/ui/macros/macros-nonfatal-errors.rs b/src/test/ui/macros/macros-nonfatal-errors.rs deleted file mode 100644 index ab14c3589..000000000 --- a/src/test/ui/macros/macros-nonfatal-errors.rs +++ /dev/null @@ -1,139 +0,0 @@ -// normalize-stderr-test: "existed:.*\(" -> "existed: $$FILE_NOT_FOUND_MSG (" - -// test that errors in a (selection) of macros don't kill compilation -// immediately, so that we get more errors listed at a time. - -#![feature(trace_macros, concat_idents)] -#![feature(stmt_expr_attributes)] - -use std::arch::asm; - -#[derive(Default)] -struct DefaultInnerAttrStruct { - #[default] //~ ERROR the `#[default]` attribute may only be used on unit enum variants - foo: (), -} - -#[derive(Default)] -struct DefaultInnerAttrTupleStruct(#[default] ()); -//~^ ERROR the `#[default]` attribute may only be used on unit enum variants - -#[derive(Default)] -#[default] //~ ERROR the `#[default]` attribute may only be used on unit enum variants -struct DefaultOuterAttrStruct {} - -#[derive(Default)] -#[default] //~ ERROR the `#[default]` attribute may only be used on unit enum variants -enum DefaultOuterAttrEnum { - #[default] - Foo, -} - -#[rustfmt::skip] // needs some work to handle this case -#[repr(u8)] -#[derive(Default)] -enum AttrOnInnerExpression { - Foo = #[default] 0, //~ ERROR the `#[default]` attribute may only be used on unit enum variants - Bar([u8; #[default] 1]), //~ ERROR the `#[default]` attribute may only be used on unit enum variants - #[default] - Baz, -} - -#[derive(Default)] //~ ERROR no default declared -enum NoDeclaredDefault { - Foo, - Bar, -} - -#[derive(Default)] //~ ERROR multiple declared defaults -enum MultipleDefaults { - #[default] - Foo, - #[default] - Bar, - #[default] - Baz, -} - -#[derive(Default)] -enum ExtraDeriveTokens { - #[default = 1] //~ ERROR `#[default]` attribute does not accept a value - Foo, -} - -#[derive(Default)] -enum TwoDefaultAttrs { - #[default] - #[default] - Foo, //~ERROR multiple `#[default]` attributes - Bar, -} - -#[derive(Default)] -enum ManyDefaultAttrs { - #[default] - #[default] - #[default] - #[default] - Foo, //~ERROR multiple `#[default]` attributes - Bar, -} - -#[derive(Default)] -enum DefaultHasFields { - #[default] - Foo {}, //~ ERROR the `#[default]` attribute may only be used on unit enum variants - Bar, -} - -#[derive(Default)] -enum NonExhaustiveDefault { - #[default] - #[non_exhaustive] - Foo, //~ ERROR default variant must be exhaustive - Bar, -} - -fn main() { - asm!(invalid); //~ ERROR - llvm_asm!(invalid); //~ ERROR - - concat_idents!("not", "idents"); //~ ERROR - - option_env!(invalid); //~ ERROR - env!(invalid); //~ ERROR - env!(foo, abr, baz); //~ ERROR - env!("RUST_HOPEFULLY_THIS_DOESNT_EXIST"); //~ ERROR - - format!(invalid); //~ ERROR - - include!(invalid); //~ ERROR - - include_str!(invalid); //~ ERROR - include_str!("i'd be quite surprised if a file with this name existed"); //~ ERROR - include_bytes!(invalid); //~ ERROR - include_bytes!("i'd be quite surprised if a file with this name existed"); //~ ERROR - - trace_macros!(invalid); //~ ERROR -} - -/// Check that `#[derive(Default)]` does use a `T : Default` bound when the -/// `#[default]` variant is `#[non_exhaustive]` (should this end up allowed). -const _: () = { - #[derive(Default)] - enum NonExhaustiveDefaultGeneric<T> { - #[default] - #[non_exhaustive] - Foo, //~ ERROR default variant must be exhaustive - Bar(T), - } - - fn assert_impls_default<T: Default>() {} - - enum NotDefault {} - - // Note: the `derive(Default)` currently bails early enough for trait-checking - // not to happen. Should it bail late enough, or even pass, make sure to - // assert that the following line fails. - let _ = assert_impls_default::<NonExhaustiveDefaultGeneric<NotDefault>>; -}; |