summaryrefslogtreecommitdiffstats
path: root/src/test/ui/macros/macros-nonfatal-errors.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/macros/macros-nonfatal-errors.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.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.rs139
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>>;
-};