diff options
| author | Alexis (Poliorcetics) Bourget <ab_github@poliorcetiq.eu> | 2023-07-01 19:13:26 +0200 |
|---|---|---|
| committer | Alexis (Poliorcetics) Bourget <ab_github@poliorcetiq.eu> | 2023-10-29 22:57:45 +0100 |
| commit | a119158eb39a5e251d0d309a261c11743b996ce0 (patch) | |
| tree | 7dcc51295487af595c7c3850e7c7fa9c78d09bf1 | |
| parent | 40556b968ca044108d5f28d7a8810821c8be7d9d (diff) | |
| download | rust-a119158eb39a5e251d0d309a261c11743b996ce0.tar.gz rust-a119158eb39a5e251d0d309a261c11743b996ce0.zip | |
tests: object-safety section in traits
| -rw-r--r-- | tests/rustdoc/sidebar-items.rs | 7 | ||||
| -rw-r--r-- | tests/rustdoc/trait-object-safe.rs | 27 |
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/rustdoc/sidebar-items.rs b/tests/rustdoc/sidebar-items.rs index 6f7afa59bdd..b746f698264 100644 --- a/tests/rustdoc/sidebar-items.rs +++ b/tests/rustdoc/sidebar-items.rs @@ -14,6 +14,7 @@ // @has - '//*[@class="sidebar-elems"]//section//a' 'Output' // @has - '//div[@class="sidebar-elems"]//h3/a[@href="#provided-associated-types"]' 'Provided Associated Types' // @has - '//*[@class="sidebar-elems"]//section//a' 'Extra' +// @has - '//div[@class="sidebar-elems"]//h3/a[@href="#object-safety"]' 'Object Safety' pub trait Foo { const FOO: usize; const BAR: u32 = 0; @@ -24,6 +25,12 @@ pub trait Foo { fn bar() -> Self::Output; } +// @has foo/trait.Safe.html +// @!has - '//div[@class="sidebar-elems"]//h3/a[@href="#object-safety"]' '' +pub trait Safe { + fn access(&self); +} + // @has foo/struct.Bar.html // @has - '//div[@class="sidebar-elems"]//h3/a[@href="#fields"]' 'Fields' // @has - '//*[@class="sidebar-elems"]//section//a[@href="#structfield.f"]' 'f' diff --git a/tests/rustdoc/trait-object-safe.rs b/tests/rustdoc/trait-object-safe.rs new file mode 100644 index 00000000000..818843f7558 --- /dev/null +++ b/tests/rustdoc/trait-object-safe.rs @@ -0,0 +1,27 @@ +#![crate_name = "foo"] + +// @has 'foo/trait.Unsafe.html' +// @has - '//*[@class="object-safety-info"]' 'This trait is not object safe.' +// @has - '//*[@id="object-safety"]' 'Object Safety' +pub trait Unsafe { + fn foo() -> Self; +} + +// @has 'foo/trait.Unsafe2.html' +// @has - '//*[@class="object-safety-info"]' 'This trait is not object safe.' +// @has - '//*[@id="object-safety"]' 'Object Safety' +pub trait Unsafe2<T> { + fn foo(i: T); +} + +// @has 'foo/trait.Safe.html' +// @!has - '//*[@class="object-safety-info"]' '' +// @!has - '//*[@id="object-safety"]' '' +pub trait Safe { + fn foo(&self); +} + +// @has 'foo/struct.Foo.html' +// @!has - '//*[@class="object-safety-info"]' '' +// @!has - '//*[@id="object-safety"]' '' +pub struct Foo; |
