diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/rust/displaydoc/tests/no_std | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/displaydoc/tests/no_std')
9 files changed, 263 insertions, 0 deletions
diff --git a/third_party/rust/displaydoc/tests/no_std/enum_prefix.rs b/third_party/rust/displaydoc/tests/no_std/enum_prefix.rs new file mode 100644 index 0000000000..1c5479118b --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/enum_prefix.rs @@ -0,0 +1,36 @@ +#![cfg_attr(not(feature = "std"), feature(lang_items, start))] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg_attr(not(feature = "std"), start)] +fn start(_argc: isize, _argv: *const *const u8) -> isize { + 0 +} +#[lang = "eh_personality"] +#[no_mangle] +#[cfg(not(feature = "std"))] +pub extern "C" fn rust_eh_personality() {} +#[panic_handler] +#[cfg(not(feature = "std"))] +fn panic(_info: &core::panic::PanicInfo) -> ! { + unsafe { + libc::abort(); + } +} + +use displaydoc::Display; + +/// this type is pretty swell +#[derive(Display)] +#[prefix_enum_doc_attributes] +enum TestType { + /// this variant is too + Variant1, + + /// this variant is two + Variant2, +} + +static_assertions::assert_impl_all!(label; TestType, core::fmt::Display); + +#[cfg(feature = "std")] +fn main() {} diff --git a/third_party/rust/displaydoc/tests/no_std/enum_prefix_missing.rs b/third_party/rust/displaydoc/tests/no_std/enum_prefix_missing.rs new file mode 100644 index 0000000000..5cd9e6df82 --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/enum_prefix_missing.rs @@ -0,0 +1,35 @@ +#![cfg_attr(not(feature = "std"), feature(lang_items, start))] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg_attr(not(feature = "std"), start)] +fn start(_argc: isize, _argv: *const *const u8) -> isize { + 0 +} +#[lang = "eh_personality"] +#[no_mangle] +#[cfg(not(feature = "std"))] +pub extern "C" fn rust_eh_personality() {} +#[panic_handler] +#[cfg(not(feature = "std"))] +fn panic(_info: &core::panic::PanicInfo) -> ! { + unsafe { + libc::abort(); + } +} + +use displaydoc::Display; + +#[derive(Display)] +#[prefix_enum_doc_attributes] +enum TestType { + /// this variant is too + Variant1, + + /// this variant is two + Variant2, +} + +static_assertions::assert_impl_all!(label; TestType, core::fmt::Display); + +#[cfg(feature = "std")] +fn main() {} diff --git a/third_party/rust/displaydoc/tests/no_std/enum_prefix_missing.stderr b/third_party/rust/displaydoc/tests/no_std/enum_prefix_missing.stderr new file mode 100644 index 0000000000..a0db216945 --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/enum_prefix_missing.stderr @@ -0,0 +1,19 @@ +error: proc-macro derive panicked + --> $DIR/enum_prefix_missing.rs:22:10 + | +22 | #[derive(Display)] + | ^^^^^^^ + | + = help: message: Missing doc comment on enum with #[prefix_enum_doc_attributes]. Please remove the attribute or add a doc comment to the enum itself. + +error[E0277]: `TestType` doesn't implement `Display` + --> $DIR/enum_prefix_missing.rs:32:44 + | +32 | static_assertions::assert_impl_all!(label; TestType, core::fmt::Display); + | -------------------------------------------^^^^^^^^---------------------- + | | | + | | `TestType` cannot be formatted with the default formatter + | required by this bound in `assert_impl_all` + | + = help: the trait `Display` is not implemented for `TestType` + = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead diff --git a/third_party/rust/displaydoc/tests/no_std/multi_line.rs b/third_party/rust/displaydoc/tests/no_std/multi_line.rs new file mode 100644 index 0000000000..cadb83e705 --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/multi_line.rs @@ -0,0 +1,37 @@ +#![cfg_attr(not(feature = "std"), feature(lang_items, start))] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg_attr(not(feature = "std"), start)] +fn start(_argc: isize, _argv: *const *const u8) -> isize { + 0 +} +#[lang = "eh_personality"] +#[no_mangle] +#[cfg(not(feature = "std"))] +pub extern "C" fn rust_eh_personality() {} +#[panic_handler] +#[cfg(not(feature = "std"))] +fn panic(_info: &core::panic::PanicInfo) -> ! { + unsafe { + libc::abort(); + } +} + +use displaydoc::Display; + +/// this type is pretty swell +#[derive(Display)] +enum TestType { + /// This one is okay + Variant1, + + /// Multi + /// line + /// doc. + Variant2, +} + +static_assertions::assert_impl_all!(label; TestType, core::fmt::Display); + +#[cfg(feature = "std")] +fn main() {} diff --git a/third_party/rust/displaydoc/tests/no_std/multi_line.stderr b/third_party/rust/displaydoc/tests/no_std/multi_line.stderr new file mode 100644 index 0000000000..e23d134c86 --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/multi_line.stderr @@ -0,0 +1,19 @@ +error: proc-macro derive panicked + --> $DIR/multi_line.rs:23:10 + | +23 | #[derive(Display)] + | ^^^^^^^ + | + = help: message: Multi-line comments are disabled by default by displaydoc. Please consider using block doc comments (/** */) or adding the #[ignore_extra_doc_attributes] attribute to your type next to the derive. + +error[E0277]: `TestType` doesn't implement `Display` + --> $DIR/multi_line.rs:34:44 + | +34 | static_assertions::assert_impl_all!(label; TestType, core::fmt::Display); + | -------------------------------------------^^^^^^^^---------------------- + | | | + | | `TestType` cannot be formatted with the default formatter + | required by this bound in `assert_impl_all` + | + = help: the trait `Display` is not implemented for `TestType` + = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead diff --git a/third_party/rust/displaydoc/tests/no_std/multi_line_allow.rs b/third_party/rust/displaydoc/tests/no_std/multi_line_allow.rs new file mode 100644 index 0000000000..05bdcf9fb8 --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/multi_line_allow.rs @@ -0,0 +1,38 @@ +#![cfg_attr(not(feature = "std"), feature(lang_items, start))] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg_attr(not(feature = "std"), start)] +fn start(_argc: isize, _argv: *const *const u8) -> isize { + 0 +} +#[lang = "eh_personality"] +#[no_mangle] +#[cfg(not(feature = "std"))] +pub extern "C" fn rust_eh_personality() {} +#[panic_handler] +#[cfg(not(feature = "std"))] +fn panic(_info: &core::panic::PanicInfo) -> ! { + unsafe { + libc::abort(); + } +} + +use displaydoc::Display; + +/// this type is pretty swell +#[derive(Display)] +#[ignore_extra_doc_attributes] +enum TestType { + /// This one is okay + Variant1, + + /// Multi + /// line + /// doc. + Variant2, +} + +static_assertions::assert_impl_all!(label; TestType, core::fmt::Display); + +#[cfg(feature = "std")] +fn main() {} diff --git a/third_party/rust/displaydoc/tests/no_std/with.rs b/third_party/rust/displaydoc/tests/no_std/with.rs new file mode 100644 index 0000000000..7de3da67f1 --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/with.rs @@ -0,0 +1,32 @@ +#![feature(lang_items, start)] +#![no_std] + +#[start] +#[cfg(not(feature = "std"))] +fn start(_argc: isize, _argv: *const *const u8) -> isize { + 0 +} + +#[lang = "eh_personality"] +#[no_mangle] +#[cfg(not(feature = "std"))] +pub extern "C" fn rust_eh_personality() {} + +#[panic_handler] +#[cfg(not(feature = "std"))] +fn panic(_info: &core::panic::PanicInfo) -> ! { + unsafe { + libc::abort(); + } +} + +#[cfg(feature = "std")] +fn main() {} + +use displaydoc::Display; + +/// this type is pretty swell +#[derive(Display)] +struct FakeType; + +static_assertions::assert_impl_all!(label; FakeType, core::fmt::Display); diff --git a/third_party/rust/displaydoc/tests/no_std/without.rs b/third_party/rust/displaydoc/tests/no_std/without.rs new file mode 100644 index 0000000000..32905aad96 --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/without.rs @@ -0,0 +1,28 @@ +#![cfg_attr(not(feature = "std"), feature(lang_items, start))] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg_attr(not(feature = "std"), start)] +fn start(_argc: isize, _argv: *const *const u8) -> isize { + 0 +} +#[lang = "eh_personality"] +#[no_mangle] +#[cfg(not(feature = "std"))] +pub extern "C" fn rust_eh_personality() {} +#[panic_handler] +#[cfg(not(feature = "std"))] +fn panic(_info: &core::panic::PanicInfo) -> ! { + unsafe { + libc::abort(); + } +} + +use displaydoc::Display; + +/// this type is pretty swell +struct FakeType; + +static_assertions::assert_impl_all!(label; FakeType, core::fmt::Display); + +#[cfg(feature = "std")] +fn main() {} diff --git a/third_party/rust/displaydoc/tests/no_std/without.stderr b/third_party/rust/displaydoc/tests/no_std/without.stderr new file mode 100644 index 0000000000..81de13b74d --- /dev/null +++ b/third_party/rust/displaydoc/tests/no_std/without.stderr @@ -0,0 +1,19 @@ +warning: unused import: `displaydoc::Display` + --> $DIR/without.rs:20:5 + | +20 | use displaydoc::Display; + | ^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +error[E0277]: `FakeType` doesn't implement `Display` + --> $DIR/without.rs:25:44 + | +25 | static_assertions::assert_impl_all!(label; FakeType, core::fmt::Display); + | -------------------------------------------^^^^^^^^---------------------- + | | | + | | `FakeType` cannot be formatted with the default formatter + | required by this bound in `assert_impl_all` + | + = help: the trait `Display` is not implemented for `FakeType` + = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |