From 4e8199b572f2035b7749cba276ece3a26630d23e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:18:21 +0200 Subject: Adding upstream version 1.67.1+dfsg1. Signed-off-by: Daniel Baumann --- vendor/displaydoc/tests/compile_tests.rs | 29 ++++ vendor/displaydoc/tests/happy.rs | 152 +++++++++++++++++++++ vendor/displaydoc/tests/no_std/enum_prefix.rs | 36 +++++ .../displaydoc/tests/no_std/enum_prefix_missing.rs | 35 +++++ .../tests/no_std/enum_prefix_missing.stderr | 19 +++ vendor/displaydoc/tests/no_std/multi_line.rs | 37 +++++ vendor/displaydoc/tests/no_std/multi_line.stderr | 19 +++ vendor/displaydoc/tests/no_std/multi_line_allow.rs | 38 ++++++ vendor/displaydoc/tests/no_std/with.rs | 32 +++++ vendor/displaydoc/tests/no_std/without.rs | 28 ++++ vendor/displaydoc/tests/no_std/without.stderr | 19 +++ vendor/displaydoc/tests/num_in_field.rs | 22 +++ vendor/displaydoc/tests/std/enum_prefix.rs | 36 +++++ vendor/displaydoc/tests/std/enum_prefix_missing.rs | 35 +++++ .../tests/std/enum_prefix_missing.stderr | 19 +++ vendor/displaydoc/tests/std/multi_line.rs | 37 +++++ vendor/displaydoc/tests/std/multi_line.stderr | 19 +++ vendor/displaydoc/tests/std/multi_line_allow.rs | 38 ++++++ vendor/displaydoc/tests/std/multiple.rs | 38 ++++++ vendor/displaydoc/tests/std/without.rs | 28 ++++ vendor/displaydoc/tests/std/without.stderr | 19 +++ 21 files changed, 735 insertions(+) create mode 100644 vendor/displaydoc/tests/compile_tests.rs create mode 100644 vendor/displaydoc/tests/happy.rs create mode 100644 vendor/displaydoc/tests/no_std/enum_prefix.rs create mode 100644 vendor/displaydoc/tests/no_std/enum_prefix_missing.rs create mode 100644 vendor/displaydoc/tests/no_std/enum_prefix_missing.stderr create mode 100644 vendor/displaydoc/tests/no_std/multi_line.rs create mode 100644 vendor/displaydoc/tests/no_std/multi_line.stderr create mode 100644 vendor/displaydoc/tests/no_std/multi_line_allow.rs create mode 100644 vendor/displaydoc/tests/no_std/with.rs create mode 100644 vendor/displaydoc/tests/no_std/without.rs create mode 100644 vendor/displaydoc/tests/no_std/without.stderr create mode 100644 vendor/displaydoc/tests/num_in_field.rs create mode 100644 vendor/displaydoc/tests/std/enum_prefix.rs create mode 100644 vendor/displaydoc/tests/std/enum_prefix_missing.rs create mode 100644 vendor/displaydoc/tests/std/enum_prefix_missing.stderr create mode 100644 vendor/displaydoc/tests/std/multi_line.rs create mode 100644 vendor/displaydoc/tests/std/multi_line.stderr create mode 100644 vendor/displaydoc/tests/std/multi_line_allow.rs create mode 100644 vendor/displaydoc/tests/std/multiple.rs create mode 100644 vendor/displaydoc/tests/std/without.rs create mode 100644 vendor/displaydoc/tests/std/without.stderr (limited to 'vendor/displaydoc/tests') diff --git a/vendor/displaydoc/tests/compile_tests.rs b/vendor/displaydoc/tests/compile_tests.rs new file mode 100644 index 000000000..29c72a862 --- /dev/null +++ b/vendor/displaydoc/tests/compile_tests.rs @@ -0,0 +1,29 @@ +#[allow(unused_attributes)] +#[rustversion::attr(not(nightly), ignore)] +#[test] +fn no_std() { + let t = trybuild::TestCases::new(); + #[cfg(not(feature = "std"))] + t.compile_fail("tests/no_std/without.rs"); + #[cfg(not(feature = "std"))] + t.compile_fail("tests/no_std/multi_line.rs"); + #[cfg(not(feature = "std"))] + t.pass("tests/no_std/multi_line_allow.rs"); + #[cfg(not(feature = "std"))] + t.compile_fail("tests/no_std/enum_prefix_missing.rs"); + #[cfg(not(feature = "std"))] + t.pass("tests/no_std/enum_prefix.rs"); + #[cfg(feature = "std")] + t.compile_fail("tests/std/without.rs"); + #[cfg(feature = "std")] + t.compile_fail("tests/std/multi_line.rs"); + #[cfg(feature = "std")] + t.pass("tests/std/multi_line_allow.rs"); + #[cfg(feature = "std")] + t.compile_fail("tests/std/enum_prefix_missing.rs"); + #[cfg(feature = "std")] + t.pass("tests/std/enum_prefix.rs"); + #[cfg(feature = "std")] + t.pass("tests/std/multiple.rs"); + t.pass("tests/no_std/with.rs"); +} diff --git a/vendor/displaydoc/tests/happy.rs b/vendor/displaydoc/tests/happy.rs new file mode 100644 index 000000000..85aa78f13 --- /dev/null +++ b/vendor/displaydoc/tests/happy.rs @@ -0,0 +1,152 @@ +use displaydoc::Display; + +#[cfg(feature = "std")] +use std::path::PathBuf; + +#[derive(Display)] +/// Just a basic struct {thing} +struct HappyStruct { + thing: &'static str, +} + +#[derive(Display)] +#[ignore_extra_doc_attributes] +/// Just a basic struct {thing} +/// and this line should get ignored +struct HappyStruct2 { + thing: &'static str, +} + +#[derive(Display)] +enum Happy { + /// I really like Variant1 + Variant1, + /// Variant2 is pretty swell 2 + Variant2, + /// Variant3 is okay {sometimes} + Variant3 { sometimes: &'static str }, + /** + * Variant4 wants to have a lot of lines + * + * Lets see how this works out for it + */ + Variant4, + /// Variant5 has a parameter {0} and some regular comments + // A regular comment that won't get picked + Variant5(u32), + + /// The path {0} + #[cfg(feature = "std")] + Variant6(PathBuf), + + /// These docs are ignored + #[displaydoc("Variant7 has a parameter {0} and uses #[displaydoc]")] + /// These docs are also ignored + Variant7(u32), +} + +// Used for testing indented doc comments +mod inner_mod { + use super::Display; + + #[derive(Display)] + pub enum InnerHappy { + /// I really like Variant1 + Variant1, + /// Variant2 is pretty swell 2 + Variant2, + /// Variant3 is okay {sometimes} + Variant3 { sometimes: &'static str }, + /** + * Variant4 wants to have a lot of lines + * + * Lets see how this works out for it + */ + Variant4, + /// Variant5 has a parameter {0} and some regular comments + // A regular comment that won't get picked + Variant5(u32), + + /** what happens if we + * put text on the first line? + */ + Variant6, + + /** + what happens if we don't use *? + */ + Variant7, + + /** + * + * what about extra new lines? + */ + Variant8, + } +} + +fn assert_display(input: T, expected: &'static str) { + let out = format!("{}", input); + assert_eq!(expected, out); +} + +#[test] +fn does_it_print() { + assert_display(Happy::Variant1, "I really like Variant1"); + assert_display(Happy::Variant2, "Variant2 is pretty swell 2"); + assert_display(Happy::Variant3 { sometimes: "hi" }, "Variant3 is okay hi"); + assert_display( + Happy::Variant4, + "Variant4 wants to have a lot of lines\n\nLets see how this works out for it", + ); + assert_display( + Happy::Variant5(2), + "Variant5 has a parameter 2 and some regular comments", + ); + assert_display( + Happy::Variant7(2), + "Variant7 has a parameter 2 and uses #[displaydoc]", + ); + assert_display(HappyStruct { thing: "hi" }, "Just a basic struct hi"); + + assert_display(HappyStruct2 { thing: "hi2" }, "Just a basic struct hi2"); + + assert_display(inner_mod::InnerHappy::Variant1, "I really like Variant1"); + assert_display( + inner_mod::InnerHappy::Variant2, + "Variant2 is pretty swell 2", + ); + assert_display( + inner_mod::InnerHappy::Variant3 { sometimes: "hi" }, + "Variant3 is okay hi", + ); + assert_display( + inner_mod::InnerHappy::Variant4, + "Variant4 wants to have a lot of lines\n\nLets see how this works out for it", + ); + assert_display( + inner_mod::InnerHappy::Variant5(2), + "Variant5 has a parameter 2 and some regular comments", + ); + assert_display( + inner_mod::InnerHappy::Variant6, + "what happens if we\nput text on the first line?", + ); + assert_display( + inner_mod::InnerHappy::Variant7, + "what happens if we don\'t use *?", + ); + assert_display( + inner_mod::InnerHappy::Variant8, + "what about extra new lines?", + ); +} + +#[test] +#[cfg(feature = "std")] +fn does_it_print_path() { + assert_display( + Happy::Variant6(PathBuf::from("/var/log/happy")), + "The path /var/log/happy", + ); +} diff --git a/vendor/displaydoc/tests/no_std/enum_prefix.rs b/vendor/displaydoc/tests/no_std/enum_prefix.rs new file mode 100644 index 000000000..1c5479118 --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/enum_prefix_missing.rs b/vendor/displaydoc/tests/no_std/enum_prefix_missing.rs new file mode 100644 index 000000000..5cd9e6df8 --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/enum_prefix_missing.stderr b/vendor/displaydoc/tests/no_std/enum_prefix_missing.stderr new file mode 100644 index 000000000..a0db21694 --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/multi_line.rs b/vendor/displaydoc/tests/no_std/multi_line.rs new file mode 100644 index 000000000..cadb83e70 --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/multi_line.stderr b/vendor/displaydoc/tests/no_std/multi_line.stderr new file mode 100644 index 000000000..e23d134c8 --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/multi_line_allow.rs b/vendor/displaydoc/tests/no_std/multi_line_allow.rs new file mode 100644 index 000000000..05bdcf9fb --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/with.rs b/vendor/displaydoc/tests/no_std/with.rs new file mode 100644 index 000000000..7de3da67f --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/without.rs b/vendor/displaydoc/tests/no_std/without.rs new file mode 100644 index 000000000..32905aad9 --- /dev/null +++ b/vendor/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/vendor/displaydoc/tests/no_std/without.stderr b/vendor/displaydoc/tests/no_std/without.stderr new file mode 100644 index 000000000..81de13b74 --- /dev/null +++ b/vendor/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 diff --git a/vendor/displaydoc/tests/num_in_field.rs b/vendor/displaydoc/tests/num_in_field.rs new file mode 100644 index 000000000..9510f8206 --- /dev/null +++ b/vendor/displaydoc/tests/num_in_field.rs @@ -0,0 +1,22 @@ +/// {foo1} {foo2} +#[derive(displaydoc::Display)] +pub struct Test { + foo1: String, + foo2: String, +} + +fn assert_display(input: T, expected: &'static str) { + let out = format!("{}", input); + assert_eq!(expected, out); +} + +#[test] +fn does_it_print() { + assert_display( + Test { + foo1: "hi".into(), + foo2: "hello".into(), + }, + "hi hello", + ); +} diff --git a/vendor/displaydoc/tests/std/enum_prefix.rs b/vendor/displaydoc/tests/std/enum_prefix.rs new file mode 100644 index 000000000..1c5479118 --- /dev/null +++ b/vendor/displaydoc/tests/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/vendor/displaydoc/tests/std/enum_prefix_missing.rs b/vendor/displaydoc/tests/std/enum_prefix_missing.rs new file mode 100644 index 000000000..5cd9e6df8 --- /dev/null +++ b/vendor/displaydoc/tests/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/vendor/displaydoc/tests/std/enum_prefix_missing.stderr b/vendor/displaydoc/tests/std/enum_prefix_missing.stderr new file mode 100644 index 000000000..7f60f1bf5 --- /dev/null +++ b/vendor/displaydoc/tests/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 `std::fmt::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 `std::fmt::Display` is not implemented for `TestType` + = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead diff --git a/vendor/displaydoc/tests/std/multi_line.rs b/vendor/displaydoc/tests/std/multi_line.rs new file mode 100644 index 000000000..cadb83e70 --- /dev/null +++ b/vendor/displaydoc/tests/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/vendor/displaydoc/tests/std/multi_line.stderr b/vendor/displaydoc/tests/std/multi_line.stderr new file mode 100644 index 000000000..5e41e5428 --- /dev/null +++ b/vendor/displaydoc/tests/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 `std::fmt::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 `std::fmt::Display` is not implemented for `TestType` + = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead diff --git a/vendor/displaydoc/tests/std/multi_line_allow.rs b/vendor/displaydoc/tests/std/multi_line_allow.rs new file mode 100644 index 000000000..05bdcf9fb --- /dev/null +++ b/vendor/displaydoc/tests/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/vendor/displaydoc/tests/std/multiple.rs b/vendor/displaydoc/tests/std/multiple.rs new file mode 100644 index 000000000..915f9abdd --- /dev/null +++ b/vendor/displaydoc/tests/std/multiple.rs @@ -0,0 +1,38 @@ +#![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); + +/// this type is pretty swell2 +#[derive(Display)] +struct FakeType2; + +static_assertions::assert_impl_all!(label2; FakeType2, core::fmt::Display); diff --git a/vendor/displaydoc/tests/std/without.rs b/vendor/displaydoc/tests/std/without.rs new file mode 100644 index 000000000..32905aad9 --- /dev/null +++ b/vendor/displaydoc/tests/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/vendor/displaydoc/tests/std/without.stderr b/vendor/displaydoc/tests/std/without.stderr new file mode 100644 index 000000000..9780427e8 --- /dev/null +++ b/vendor/displaydoc/tests/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 `std::fmt::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 `std::fmt::Display` is not implemented for `FakeType` + = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead -- cgit v1.2.3