about summary refs log tree commit diff
path: root/tests/rustdoc/inline_cross
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume.gomez@huawei.com>2024-06-21 14:03:08 +0200
committerGuillaume Gomez <guillaume.gomez@huawei.com>2024-06-24 11:08:41 +0200
commit1b67035579fc6157ca2f3fb8b7e6071ff6d888bc (patch)
treee53cb08e1dfa396dd2abd4ffbb91aa6826a463d9 /tests/rustdoc/inline_cross
parentd3ec92e16e7e78c273c0f996cad5122ce5a6cdd6 (diff)
downloadrust-1b67035579fc6157ca2f3fb8b7e6071ff6d888bc.tar.gz
rust-1b67035579fc6157ca2f3fb8b7e6071ff6d888bc.zip
Update `tests/rustdoc` to new test syntax
Diffstat (limited to 'tests/rustdoc/inline_cross')
-rw-r--r--tests/rustdoc/inline_cross/add-docs.rs4
-rw-r--r--tests/rustdoc/inline_cross/assoc-const-equality.rs4
-rw-r--r--tests/rustdoc/inline_cross/assoc-items.rs62
-rw-r--r--tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs48
-rw-r--r--tests/rustdoc/inline_cross/async-fn.rs12
-rw-r--r--tests/rustdoc/inline_cross/attributes.rs4
-rw-r--r--tests/rustdoc/inline_cross/auxiliary/issue-85454.rs4
-rw-r--r--tests/rustdoc/inline_cross/const-effect-param.rs12
-rw-r--r--tests/rustdoc/inline_cross/const-eval-46727.rs4
-rw-r--r--tests/rustdoc/inline_cross/const-fn-27362.rs6
-rw-r--r--tests/rustdoc/inline_cross/cross-glob.rs10
-rw-r--r--tests/rustdoc/inline_cross/deduplicate-inlined-items-23207.rs4
-rw-r--r--tests/rustdoc/inline_cross/default-generic-args.rs100
-rw-r--r--tests/rustdoc/inline_cross/default-trait-method.rs26
-rw-r--r--tests/rustdoc/inline_cross/doc-hidden-extern-trait-impl-29584.rs4
-rw-r--r--tests/rustdoc/inline_cross/dyn_trait.rs160
-rw-r--r--tests/rustdoc/inline_cross/early-late-bound-lifetime-params.rs8
-rw-r--r--tests/rustdoc/inline_cross/fn-type.rs4
-rw-r--r--tests/rustdoc/inline_cross/generic-const-items.rs14
-rw-r--r--tests/rustdoc/inline_cross/hidden-use.rs8
-rw-r--r--tests/rustdoc/inline_cross/impl-inline-without-trait.rs6
-rw-r--r--tests/rustdoc/inline_cross/impl-sized.rs20
-rw-r--r--tests/rustdoc/inline_cross/impl_trait.rs46
-rw-r--r--tests/rustdoc/inline_cross/implementors-js.rs14
-rw-r--r--tests/rustdoc/inline_cross/inline_hidden.rs16
-rw-r--r--tests/rustdoc/inline_cross/issue-24183.rs12
-rw-r--r--tests/rustdoc/inline_cross/issue-28480.rs12
-rw-r--r--tests/rustdoc/inline_cross/issue-31948-1.rs30
-rw-r--r--tests/rustdoc/inline_cross/issue-31948-2.rs22
-rw-r--r--tests/rustdoc/inline_cross/issue-31948.rs34
-rw-r--r--tests/rustdoc/inline_cross/issue-32881.rs6
-rw-r--r--tests/rustdoc/inline_cross/issue-33113.rs6
-rw-r--r--tests/rustdoc/inline_cross/issue-76736-1.rs8
-rw-r--r--tests/rustdoc/inline_cross/issue-76736-2.rs8
-rw-r--r--tests/rustdoc/inline_cross/issue-76736-3.rs8
-rw-r--r--tests/rustdoc/inline_cross/issue-76736-4.rs8
-rw-r--r--tests/rustdoc/inline_cross/macro-vis.rs24
-rw-r--r--tests/rustdoc/inline_cross/macros.rs14
-rw-r--r--tests/rustdoc/inline_cross/non_lifetime_binders.rs8
-rw-r--r--tests/rustdoc/inline_cross/proc_macro.rs40
-rw-r--r--tests/rustdoc/inline_cross/qpath-self-85454.rs8
-rw-r--r--tests/rustdoc/inline_cross/reexport-with-anonymous-lifetime-98697.rs8
-rw-r--r--tests/rustdoc/inline_cross/renamed-via-module.rs28
-rw-r--r--tests/rustdoc/inline_cross/repr.rs32
-rw-r--r--tests/rustdoc/inline_cross/ret-pos-impl-trait-in-trait.rs28
-rw-r--r--tests/rustdoc/inline_cross/sugar-closure-crate-21801.rs4
-rw-r--r--tests/rustdoc/inline_cross/trait-vis.rs4
-rw-r--r--tests/rustdoc/inline_cross/use_crate.rs18
48 files changed, 485 insertions, 485 deletions
diff --git a/tests/rustdoc/inline_cross/add-docs.rs b/tests/rustdoc/inline_cross/add-docs.rs
index a7fbe3c6d0e..d4e0c539070 100644
--- a/tests/rustdoc/inline_cross/add-docs.rs
+++ b/tests/rustdoc/inline_cross/add-docs.rs
@@ -3,7 +3,7 @@
 extern crate inner;
 
 
-// @has add_docs/struct.MyStruct.html
-// @hasraw add_docs/struct.MyStruct.html "Doc comment from ‘pub use’, Doc comment from definition"
+//@ has add_docs/struct.MyStruct.html
+//@ hasraw add_docs/struct.MyStruct.html "Doc comment from ‘pub use’, Doc comment from definition"
 /// Doc comment from 'pub use',
 pub use inner::MyStruct;
diff --git a/tests/rustdoc/inline_cross/assoc-const-equality.rs b/tests/rustdoc/inline_cross/assoc-const-equality.rs
index cdf74389e76..ec5c2f748ef 100644
--- a/tests/rustdoc/inline_cross/assoc-const-equality.rs
+++ b/tests/rustdoc/inline_cross/assoc-const-equality.rs
@@ -4,6 +4,6 @@
 
 #![crate_name = "user"]
 
-// @has user/fn.accept.html
-// @has - '//pre[@class="rust item-decl"]' 'fn accept(_: impl Trait<K = 0>)'
+//@ has user/fn.accept.html
+//@ has - '//pre[@class="rust item-decl"]' 'fn accept(_: impl Trait<K = 0>)'
 pub use assoc_const_equality::accept;
diff --git a/tests/rustdoc/inline_cross/assoc-items.rs b/tests/rustdoc/inline_cross/assoc-items.rs
index 6b126964a78..94bd8950e75 100644
--- a/tests/rustdoc/inline_cross/assoc-items.rs
+++ b/tests/rustdoc/inline_cross/assoc-items.rs
@@ -6,37 +6,37 @@
 
 extern crate assoc_items;
 
-// @has foo/struct.MyStruct.html
-// @!hasraw - 'PrivateConst'
-// @has - '//*[@id="associatedconstant.PublicConst"]' 'pub const PublicConst: u8'
-// @has - '//*[@class="docblock"]' 'docs for PublicConst'
-// @!hasraw - 'private_method'
-// @has - '//*[@id="method.public_method"]' 'pub fn public_method()'
-// @has - '//*[@class="docblock"]' 'docs for public_method'
-// @has - '//*[@id="associatedconstant.ConstNoDefault"]' 'const ConstNoDefault: i16'
-// @has - '//*[@class="docblock"]' 'dox for ConstNoDefault'
-// @has - '//*[@id="associatedconstant.ConstWithDefault"]' 'const ConstWithDefault: u16'
-// @has - '//div[@class="docblock"]' 'docs for ConstWithDefault'
-// @has - '//*[@id="associatedtype.TypeNoDefault"]' 'type TypeNoDefault = i32'
-// @has - '//*[@class="docblock"]' 'dox for TypeNoDefault'
-// @has - '//*[@id="associatedtype.TypeWithDefault"]' 'type TypeWithDefault = u32'
-// @has - '//div[@class="docblock"]' 'docs for TypeWithDefault'
-// @has - '//*[@id="method.method_no_default"]' 'fn method_no_default()'
-// @has - '//*[@class="docblock"]' 'dox for method_no_default'
-// @has - '//*[@id="method.method_with_default"]' 'fn method_with_default()'
-// @has - '//div[@class="docblock"]' 'docs for method_with_default'
+//@ has foo/struct.MyStruct.html
+//@ !hasraw - 'PrivateConst'
+//@ has - '//*[@id="associatedconstant.PublicConst"]' 'pub const PublicConst: u8'
+//@ has - '//*[@class="docblock"]' 'docs for PublicConst'
+//@ !hasraw - 'private_method'
+//@ has - '//*[@id="method.public_method"]' 'pub fn public_method()'
+//@ has - '//*[@class="docblock"]' 'docs for public_method'
+//@ has - '//*[@id="associatedconstant.ConstNoDefault"]' 'const ConstNoDefault: i16'
+//@ has - '//*[@class="docblock"]' 'dox for ConstNoDefault'
+//@ has - '//*[@id="associatedconstant.ConstWithDefault"]' 'const ConstWithDefault: u16'
+//@ has - '//div[@class="docblock"]' 'docs for ConstWithDefault'
+//@ has - '//*[@id="associatedtype.TypeNoDefault"]' 'type TypeNoDefault = i32'
+//@ has - '//*[@class="docblock"]' 'dox for TypeNoDefault'
+//@ has - '//*[@id="associatedtype.TypeWithDefault"]' 'type TypeWithDefault = u32'
+//@ has - '//div[@class="docblock"]' 'docs for TypeWithDefault'
+//@ has - '//*[@id="method.method_no_default"]' 'fn method_no_default()'
+//@ has - '//*[@class="docblock"]' 'dox for method_no_default'
+//@ has - '//*[@id="method.method_with_default"]' 'fn method_with_default()'
+//@ has - '//div[@class="docblock"]' 'docs for method_with_default'
 pub use assoc_items::MyStruct;
 
-// @has foo/trait.MyTrait.html
-// @has - '//*[@id="associatedconstant.ConstNoDefault"]' 'const ConstNoDefault: i16'
-// @has - '//*[@class="docblock"]' 'docs for ConstNoDefault'
-// @has - '//*[@id="associatedconstant.ConstWithDefault"]' 'const ConstWithDefault: u16'
-// @has - '//*[@class="docblock"]' 'docs for ConstWithDefault'
-// @has - '//*[@id="associatedtype.TypeNoDefault"]' 'type TypeNoDefault'
-// @has - '//*[@class="docblock"]' 'docs for TypeNoDefault'
-// @has - '//*[@class="docblock"]' 'docs for TypeWithDefault'
-// @has - '//*[@id="tymethod.method_no_default"]' 'fn method_no_default()'
-// @has - '//*[@class="docblock"]' 'docs for method_no_default'
-// @has - '//*[@id="method.method_with_default"]' 'fn method_with_default()'
-// @has - '//*[@class="docblock"]' 'docs for method_with_default'
+//@ has foo/trait.MyTrait.html
+//@ has - '//*[@id="associatedconstant.ConstNoDefault"]' 'const ConstNoDefault: i16'
+//@ has - '//*[@class="docblock"]' 'docs for ConstNoDefault'
+//@ has - '//*[@id="associatedconstant.ConstWithDefault"]' 'const ConstWithDefault: u16'
+//@ has - '//*[@class="docblock"]' 'docs for ConstWithDefault'
+//@ has - '//*[@id="associatedtype.TypeNoDefault"]' 'type TypeNoDefault'
+//@ has - '//*[@class="docblock"]' 'docs for TypeNoDefault'
+//@ has - '//*[@class="docblock"]' 'docs for TypeWithDefault'
+//@ has - '//*[@id="tymethod.method_no_default"]' 'fn method_no_default()'
+//@ has - '//*[@class="docblock"]' 'docs for method_no_default'
+//@ has - '//*[@id="method.method_with_default"]' 'fn method_with_default()'
+//@ has - '//*[@class="docblock"]' 'docs for method_with_default'
 pub use assoc_items::MyTrait;
diff --git a/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs b/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs
index c030e344997..346f7120b5b 100644
--- a/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs
+++ b/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs
@@ -6,49 +6,49 @@
 //@ ignore-cross-compile
 extern crate assoc_item_trait_bounds as aux;
 
-// @has main/trait.Main.html
-// @has - '//*[@id="associatedtype.Out0"]' 'type Out0: Support<Item = ()>'
-// @has - '//*[@id="associatedtype.Out1"]' 'type Out1: Support<Item = Self::Item>'
-// @has - '//*[@id="associatedtype.Out2"]' 'type Out2<T>: Support<Item = T>'
-// @has - '//*[@id="associatedtype.Out3"]' 'type Out3: Support<Produce<()> = bool>'
-// @has - '//*[@id="associatedtype.Out4"]' 'type Out4<T>: Support<Produce<T> = T>'
-// @has - '//*[@id="associatedtype.Out5"]' "type Out5: Support<Output<'static> = &'static ()>"
-// @has - '//*[@id="associatedtype.Out6"]' "type Out6: for<'a> Support<Output<'a> = &'a ()>"
-// @has - '//*[@id="associatedtype.Out7"]' "type Out7: Support<Item = String, Produce<i32> = u32> + Unrelated"
-// @has - '//*[@id="associatedtype.Out8"]' "type Out8: Unrelated + Protocol<i16, Q1 = u128, Q0 = ()>"
-// @has - '//*[@id="associatedtype.Out9"]' "type Out9: FnMut(i32) -> bool + Clone"
-// @has - '//*[@id="associatedtype.Out10"]' "type Out10<'q>: Support<Output<'q> = ()>"
-// @has - '//*[@id="associatedtype.Out11"]' "type Out11: for<'r, 's> Helper<A<'s> = &'s (), B<'r> = ()>"
-// @has - '//*[@id="associatedtype.Out12"]' "type Out12: for<'w> Helper<B<'w> = Cow<'w, str>, A<'w> = bool>"
-// @has - '//*[@id="associatedtype.Out13"]' "type Out13: for<'fst, 'snd> Aid<'snd, Result<'fst> = &'fst mut str>"
-// @has - '//*[@id="associatedtype.Out14"]' "type Out14<P: Copy + Eq, Q: ?Sized>"
+//@ has main/trait.Main.html
+//@ has - '//*[@id="associatedtype.Out0"]' 'type Out0: Support<Item = ()>'
+//@ has - '//*[@id="associatedtype.Out1"]' 'type Out1: Support<Item = Self::Item>'
+//@ has - '//*[@id="associatedtype.Out2"]' 'type Out2<T>: Support<Item = T>'
+//@ has - '//*[@id="associatedtype.Out3"]' 'type Out3: Support<Produce<()> = bool>'
+//@ has - '//*[@id="associatedtype.Out4"]' 'type Out4<T>: Support<Produce<T> = T>'
+//@ has - '//*[@id="associatedtype.Out5"]' "type Out5: Support<Output<'static> = &'static ()>"
+//@ has - '//*[@id="associatedtype.Out6"]' "type Out6: for<'a> Support<Output<'a> = &'a ()>"
+//@ has - '//*[@id="associatedtype.Out7"]' "type Out7: Support<Item = String, Produce<i32> = u32> + Unrelated"
+//@ has - '//*[@id="associatedtype.Out8"]' "type Out8: Unrelated + Protocol<i16, Q1 = u128, Q0 = ()>"
+//@ has - '//*[@id="associatedtype.Out9"]' "type Out9: FnMut(i32) -> bool + Clone"
+//@ has - '//*[@id="associatedtype.Out10"]' "type Out10<'q>: Support<Output<'q> = ()>"
+//@ has - '//*[@id="associatedtype.Out11"]' "type Out11: for<'r, 's> Helper<A<'s> = &'s (), B<'r> = ()>"
+//@ has - '//*[@id="associatedtype.Out12"]' "type Out12: for<'w> Helper<B<'w> = Cow<'w, str>, A<'w> = bool>"
+//@ has - '//*[@id="associatedtype.Out13"]' "type Out13: for<'fst, 'snd> Aid<'snd, Result<'fst> = &'fst mut str>"
+//@ has - '//*[@id="associatedtype.Out14"]' "type Out14<P: Copy + Eq, Q: ?Sized>"
 //
 // Snapshots:
 // Check that we don't render any where-clauses for the following associated types since
 // all corresponding projection equality predicates should have already been re-sugared
 // to associated type bindings:
 //
-// @snapshot out0 - '//*[@id="associatedtype.Out0"]/*[@class="code-header"]'
-// @snapshot out2 - '//*[@id="associatedtype.Out2"]/*[@class="code-header"]'
-// @snapshot out9 - '//*[@id="associatedtype.Out9"]/*[@class="code-header"]'
+//@ snapshot out0 - '//*[@id="associatedtype.Out0"]/*[@class="code-header"]'
+//@ snapshot out2 - '//*[@id="associatedtype.Out2"]/*[@class="code-header"]'
+//@ snapshot out9 - '//*[@id="associatedtype.Out9"]/*[@class="code-header"]'
 //
-// @has - '//*[@id="tymethod.make"]' \
+//@ has - '//*[@id="tymethod.make"]' \
 // "fn make<F>(_: F, _: impl FnMut(&str) -> bool)\
 // where \
 //     F: FnOnce(u32) -> String, \
 //     Self::Out2<()>: Protocol<u8, Q0 = Self::Item, Q1 = ()>"
 pub use aux::Main;
 
-// @has main/trait.Aid.html
-// @has - '//*[@id="associatedtype.Result"]' "type Result<'inter: 'src>"
+//@ has main/trait.Aid.html
+//@ has - '//*[@id="associatedtype.Result"]' "type Result<'inter: 'src>"
 pub use aux::Aid;
 
 // Below, ensure that we correctly display generic parameters and where-clauses on
 // associated types inside trait *impls*. More particularly, check that we don't render
 // any bounds (here `Self::Alias<T>: ...`) as item bounds unlike all the trait test cases above.
 
-// @has main/struct.Implementor.html
-// @has - '//*[@id="associatedtype.Alias"]' \
+//@ has main/struct.Implementor.html
+//@ has - '//*[@id="associatedtype.Alias"]' \
 // "type Alias<T: Eq> = T \
 // where \
 //     String: From<T>, \
diff --git a/tests/rustdoc/inline_cross/async-fn.rs b/tests/rustdoc/inline_cross/async-fn.rs
index 20fa409a8dd..fb81c61be60 100644
--- a/tests/rustdoc/inline_cross/async-fn.rs
+++ b/tests/rustdoc/inline_cross/async-fn.rs
@@ -6,14 +6,14 @@
 //@ edition: 2021
 #![crate_name = "user"]
 
-// @has user/fn.load.html
-// @has - '//pre[@class="rust item-decl"]' "pub async fn load() -> i32"
+//@ has user/fn.load.html
+//@ has - '//pre[@class="rust item-decl"]' "pub async fn load() -> i32"
 pub use async_fn::load;
 
-// @has user/trait.Load.html
-// @has - '//*[@id="tymethod.run"]' 'async fn run(&self) -> i32'
+//@ has user/trait.Load.html
+//@ has - '//*[@id="tymethod.run"]' 'async fn run(&self) -> i32'
 pub use async_fn::Load;
 
-// @has user/struct.Loader.html
-// @has - '//*[@id="method.run"]' 'async fn run(&self) -> i32'
+//@ has user/struct.Loader.html
+//@ has - '//*[@id="method.run"]' 'async fn run(&self) -> i32'
 pub use async_fn::Loader;
diff --git a/tests/rustdoc/inline_cross/attributes.rs b/tests/rustdoc/inline_cross/attributes.rs
index ac9e6174dc1..4747f8ad67c 100644
--- a/tests/rustdoc/inline_cross/attributes.rs
+++ b/tests/rustdoc/inline_cross/attributes.rs
@@ -2,6 +2,6 @@
 //@ edition:2021
 #![crate_name = "user"]
 
-// @has 'user/struct.NonExhaustive.html'
-// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[non_exhaustive]'
+//@ has 'user/struct.NonExhaustive.html'
+//@ has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[non_exhaustive]'
 pub use attributes::NonExhaustive;
diff --git a/tests/rustdoc/inline_cross/auxiliary/issue-85454.rs b/tests/rustdoc/inline_cross/auxiliary/issue-85454.rs
index 5db4fe053af..be1ec49fdcc 100644
--- a/tests/rustdoc/inline_cross/auxiliary/issue-85454.rs
+++ b/tests/rustdoc/inline_cross/auxiliary/issue-85454.rs
@@ -1,5 +1,5 @@
-// @has issue_85454/trait.FromResidual.html
-// @has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
+//@ has issue_85454/trait.FromResidual.html
+//@ has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
 pub trait FromResidual<R = <Self as Try>::Residual> {
     fn from_residual(residual: R) -> Self;
 }
diff --git a/tests/rustdoc/inline_cross/const-effect-param.rs b/tests/rustdoc/inline_cross/const-effect-param.rs
index 72c90ab6968..a3dcbb3ff0f 100644
--- a/tests/rustdoc/inline_cross/const-effect-param.rs
+++ b/tests/rustdoc/inline_cross/const-effect-param.rs
@@ -6,23 +6,23 @@
 #![crate_name = "user"]
 
 // Don't render the host param on `load` and the host arg `host` passed to `Resource`.
-// @has user/fn.load.html
-// @has - '//pre[@class="rust item-decl"]' "pub const fn load<R>() -> i32\
+//@ has user/fn.load.html
+//@ has - '//pre[@class="rust item-decl"]' "pub const fn load<R>() -> i32\
 //     where \
 //         R: Resource"
 pub use const_effect_param::load;
 
 // Don't render the host arg `true` passed to `Resource`.
-// @has user/fn.lock.html
-// @has - '//pre[@class="rust item-decl"]' "pub const fn lock<R>()\
+//@ has user/fn.lock.html
+//@ has - '//pre[@class="rust item-decl"]' "pub const fn lock<R>()\
 //     where \
 //         R: Resource"
 pub use const_effect_param::lock;
 
 // Regression test for an issue introduced in PR #116670.
 // Don't hide the const param `host` since it actually isn't the host effect param.
-// @has user/fn.clash.html
-// @has - '//pre[@class="rust item-decl"]' \
+//@ has user/fn.clash.html
+//@ has - '//pre[@class="rust item-decl"]' \
 //    "pub const fn clash<T, const host: u64>()\
 //     where \
 //         T: Clash<host>"
diff --git a/tests/rustdoc/inline_cross/const-eval-46727.rs b/tests/rustdoc/inline_cross/const-eval-46727.rs
index 213664a90b9..e68bf6a9d27 100644
--- a/tests/rustdoc/inline_cross/const-eval-46727.rs
+++ b/tests/rustdoc/inline_cross/const-eval-46727.rs
@@ -5,6 +5,6 @@
 
 extern crate issue_46727;
 
-// @has foo/trait.Foo.html
-// @has - '//h3[@class="code-header"]' 'impl<T> Foo for Bar<[T; 3]>'
+//@ has foo/trait.Foo.html
+//@ has - '//h3[@class="code-header"]' 'impl<T> Foo for Bar<[T; 3]>'
 pub use issue_46727::{Foo, Bar};
diff --git a/tests/rustdoc/inline_cross/const-fn-27362.rs b/tests/rustdoc/inline_cross/const-fn-27362.rs
index 22b2fa30fec..bc2587b7f00 100644
--- a/tests/rustdoc/inline_cross/const-fn-27362.rs
+++ b/tests/rustdoc/inline_cross/const-fn-27362.rs
@@ -8,6 +8,6 @@ extern crate issue_27362_aux;
 
 pub use issue_27362_aux::*;
 
-// @matches issue_27362/fn.foo.html '//pre' "pub const fn foo()"
-// @matches issue_27362/fn.bar.html '//pre' "pub const unsafe fn bar()"
-// @matches issue_27362/struct.Foo.html '//h4[@class="code-header"]' "const unsafe fn baz()"
+//@ matches issue_27362/fn.foo.html '//pre' "pub const fn foo()"
+//@ matches issue_27362/fn.bar.html '//pre' "pub const unsafe fn bar()"
+//@ matches issue_27362/struct.Foo.html '//h4[@class="code-header"]' "const unsafe fn baz()"
diff --git a/tests/rustdoc/inline_cross/cross-glob.rs b/tests/rustdoc/inline_cross/cross-glob.rs
index ae36655936c..d22e48a5d76 100644
--- a/tests/rustdoc/inline_cross/cross-glob.rs
+++ b/tests/rustdoc/inline_cross/cross-glob.rs
@@ -4,13 +4,13 @@
 
 extern crate inner;
 
-// @has cross_glob/struct.SomeStruct.html
-// @has cross_glob/fn.some_fn.html
-// @!has cross_glob/enum.Shadowed.html
-// @!has cross_glob/index.html '//code' 'pub use inner::*;'
+//@ has cross_glob/struct.SomeStruct.html
+//@ has cross_glob/fn.some_fn.html
+//@ !has cross_glob/enum.Shadowed.html
+//@ !has cross_glob/index.html '//code' 'pub use inner::*;'
 #[doc(inline)]
 pub use inner::*;
 
 // This type shadows the glob-imported enum `Shadowed`.
-// @has cross_glob/type.Shadowed.html
+//@ has cross_glob/type.Shadowed.html
 pub type Shadowed = u8;
diff --git a/tests/rustdoc/inline_cross/deduplicate-inlined-items-23207.rs b/tests/rustdoc/inline_cross/deduplicate-inlined-items-23207.rs
index 374b4d28545..60c2e0f06d3 100644
--- a/tests/rustdoc/inline_cross/deduplicate-inlined-items-23207.rs
+++ b/tests/rustdoc/inline_cross/deduplicate-inlined-items-23207.rs
@@ -7,6 +7,6 @@
 
 extern crate issue_23207_2;
 
-// @has issue_23207/fmt/index.html
-// @count - '//*[@class="struct"]' 1
+//@ has issue_23207/fmt/index.html
+//@ count - '//*[@class="struct"]' 1
 pub use issue_23207_2::fmt;
diff --git a/tests/rustdoc/inline_cross/default-generic-args.rs b/tests/rustdoc/inline_cross/default-generic-args.rs
index f006915f153..0469221b3d8 100644
--- a/tests/rustdoc/inline_cross/default-generic-args.rs
+++ b/tests/rustdoc/inline_cross/default-generic-args.rs
@@ -2,113 +2,113 @@
 //@ aux-crate:default_generic_args=default-generic-args.rs
 //@ edition:2021
 
-// @has user/type.BoxedStr.html
-// @has - '//*[@class="rust item-decl"]//code' "Box<str>"
+//@ has user/type.BoxedStr.html
+//@ has - '//*[@class="rust item-decl"]//code' "Box<str>"
 pub use default_generic_args::BoxedStr;
 
-// @has user/type.IntMap.html
-// @has - '//*[@class="rust item-decl"]//code' "HashMap<i64, u64>"
+//@ has user/type.IntMap.html
+//@ has - '//*[@class="rust item-decl"]//code' "HashMap<i64, u64>"
 pub use default_generic_args::IntMap;
 
-// @has user/type.T0.html
-// @has - '//*[@class="rust item-decl"]//code' "TyPair<i32>"
+//@ has user/type.T0.html
+//@ has - '//*[@class="rust item-decl"]//code' "TyPair<i32>"
 pub use default_generic_args::T0;
 
-// @has user/type.T1.html
-// @has - '//*[@class="rust item-decl"]//code' "TyPair<i32, u32>"
+//@ has user/type.T1.html
+//@ has - '//*[@class="rust item-decl"]//code' "TyPair<i32, u32>"
 pub use default_generic_args::T1;
 
-// @has user/type.T2.html
-// @has - '//*[@class="rust item-decl"]//code' "TyPair<i32, K>"
+//@ has user/type.T2.html
+//@ has - '//*[@class="rust item-decl"]//code' "TyPair<i32, K>"
 pub use default_generic_args::T2;
 
-// @has user/type.T3.html
-// @has - '//*[@class="rust item-decl"]//code' "TyPair<Q>"
+//@ has user/type.T3.html
+//@ has - '//*[@class="rust item-decl"]//code' "TyPair<Q>"
 pub use default_generic_args::T3;
 
-// @has user/type.C0.html
-// @has - '//*[@class="rust item-decl"]//code' "CtPair<43>"
+//@ has user/type.C0.html
+//@ has - '//*[@class="rust item-decl"]//code' "CtPair<43>"
 pub use default_generic_args::C0;
 
-// @has user/type.C1.html
-// @has - '//*[@class="rust item-decl"]//code' "CtPair<0, 1>"
+//@ has user/type.C1.html
+//@ has - '//*[@class="rust item-decl"]//code' "CtPair<0, 1>"
 pub use default_generic_args::C1;
 
-// @has user/type.C2.html
-// @has - '//*[@class="rust item-decl"]//code' "CtPair<default_generic_args::::C2::{constant#0}, 3>"
+//@ has user/type.C2.html
+//@ has - '//*[@class="rust item-decl"]//code' "CtPair<default_generic_args::::C2::{constant#0}, 3>"
 pub use default_generic_args::C2;
 
-// @has user/type.R0.html
-// @has - '//*[@class="rust item-decl"]//code' "Re<'q>"
+//@ has user/type.R0.html
+//@ has - '//*[@class="rust item-decl"]//code' "Re<'q>"
 pub use default_generic_args::R0;
 
-// @has user/type.R1.html
-// @has - '//*[@class="rust item-decl"]//code' "Re<'q>"
+//@ has user/type.R1.html
+//@ has - '//*[@class="rust item-decl"]//code' "Re<'q>"
 pub use default_generic_args::R1;
 
-// @has user/type.R2.html
+//@ has user/type.R2.html
 // Check that we consider regions:
-// @has - '//*[@class="rust item-decl"]//code' "Re<'q, &'static ()>"
+//@ has - '//*[@class="rust item-decl"]//code' "Re<'q, &'static ()>"
 pub use default_generic_args::R2;
 
-// @has user/type.H0.html
+//@ has user/type.H0.html
 // Check that we handle higher-ranked regions correctly:
-// @has - '//*[@class="rust item-decl"]//code' "fn(_: for<'a> fn(_: Re<'a>))"
+//@ has - '//*[@class="rust item-decl"]//code' "fn(_: for<'a> fn(_: Re<'a>))"
 pub use default_generic_args::H0;
 
-// @has user/type.H1.html
+//@ has user/type.H1.html
 // Check that we don't conflate distinct universially quantified regions (#1):
-// @has - '//*[@class="rust item-decl"]//code' "for<'b> fn(_: for<'a> fn(_: Re<'a, &'b ()>))"
+//@ has - '//*[@class="rust item-decl"]//code' "for<'b> fn(_: for<'a> fn(_: Re<'a, &'b ()>))"
 pub use default_generic_args::H1;
 
-// @has user/type.H2.html
+//@ has user/type.H2.html
 // Check that we don't conflate distinct universially quantified regions (#2):
-// @has - '//*[@class="rust item-decl"]//code' "for<'a> fn(_: for<'b> fn(_: Re<'a, &'b ()>))"
+//@ has - '//*[@class="rust item-decl"]//code' "for<'a> fn(_: for<'b> fn(_: Re<'a, &'b ()>))"
 pub use default_generic_args::H2;
 
-// @has user/type.P0.html
-// @has - '//*[@class="rust item-decl"]//code' "Proj<()>"
+//@ has user/type.P0.html
+//@ has - '//*[@class="rust item-decl"]//code' "Proj<()>"
 pub use default_generic_args::P0;
 
-// @has user/type.P1.html
-// @has - '//*[@class="rust item-decl"]//code' "Proj<(), bool>"
+//@ has user/type.P1.html
+//@ has - '//*[@class="rust item-decl"]//code' "Proj<(), bool>"
 pub use default_generic_args::P1;
 
-// @has user/type.P2.html
-// @has - '//*[@class="rust item-decl"]//code' "Proj<(), ()>"
+//@ has user/type.P2.html
+//@ has - '//*[@class="rust item-decl"]//code' "Proj<(), ()>"
 pub use default_generic_args::P2;
 
-// @has user/type.A0.html
-// @has - '//*[@class="rust item-decl"]//code' "Alpha;"
+//@ has user/type.A0.html
+//@ has - '//*[@class="rust item-decl"]//code' "Alpha;"
 pub use default_generic_args::A0;
 
-// @has user/type.A1.html
+//@ has user/type.A1.html
 // Demonstrates that we currently don't elide generic arguments that are alpha-equivalent to their
 // respective generic parameter (after instantiation) for perf reasons (it would require us to
 // create an inference context).
-// @has - '//*[@class="rust item-decl"]//code' "Alpha<for<'arbitrary> fn(_: &'arbitrary ())>"
+//@ has - '//*[@class="rust item-decl"]//code' "Alpha<for<'arbitrary> fn(_: &'arbitrary ())>"
 pub use default_generic_args::A1;
 
-// @has user/type.M0.html
+//@ has user/type.M0.html
 // Test that we don't elide `u64` even if it coincides with `A`'s default precisely because
 // `()` is not the default of `B`. Mindlessly eliding `u64` would lead to `M<()>` which is a
 // different type (`M<(), u64>` versus `M<u64, ()>`).
-// @has - '//*[@class="rust item-decl"]//code' "Multi<u64, ()>"
+//@ has - '//*[@class="rust item-decl"]//code' "Multi<u64, ()>"
 pub use default_generic_args::M0;
 
-// @has user/type.D0.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn for<'a> Trait0<'a>"
+//@ has user/type.D0.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn for<'a> Trait0<'a>"
 pub use default_generic_args::D0;
 
 // Regression test for issue #119529.
 // Check that we correctly elide def ty&const args inside trait object types.
 
-// @has user/type.D1.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn Trait1<T>"
+//@ has user/type.D1.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn Trait1<T>"
 pub use default_generic_args::D1;
-// @has user/type.D2.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn Trait1<(), K>"
+//@ has user/type.D2.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn Trait1<(), K>"
 pub use default_generic_args::D2;
-// @has user/type.D3.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn Trait1;"
+//@ has user/type.D3.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn Trait1;"
 pub use default_generic_args::D3;
diff --git a/tests/rustdoc/inline_cross/default-trait-method.rs b/tests/rustdoc/inline_cross/default-trait-method.rs
index 3d943735031..e589fc6cb85 100644
--- a/tests/rustdoc/inline_cross/default-trait-method.rs
+++ b/tests/rustdoc/inline_cross/default-trait-method.rs
@@ -2,19 +2,19 @@
 
 extern crate foo;
 
-// @has default_trait_method/trait.Item.html
-// @has - '//*[@id="tymethod.foo"]' 'fn foo()'
-// @!has - '//*[@id="tymethod.foo"]' 'default fn foo()'
-// @has - '//*[@id="tymethod.bar"]' 'fn bar()'
-// @!has - '//*[@id="tymethod.bar"]' 'default fn bar()'
-// @has - '//*[@id="method.baz"]' 'fn baz()'
-// @!has - '//*[@id="method.baz"]' 'default fn baz()'
+//@ has default_trait_method/trait.Item.html
+//@ has - '//*[@id="tymethod.foo"]' 'fn foo()'
+//@ !has - '//*[@id="tymethod.foo"]' 'default fn foo()'
+//@ has - '//*[@id="tymethod.bar"]' 'fn bar()'
+//@ !has - '//*[@id="tymethod.bar"]' 'default fn bar()'
+//@ has - '//*[@id="method.baz"]' 'fn baz()'
+//@ !has - '//*[@id="method.baz"]' 'default fn baz()'
 pub use foo::Item;
 
-// @has default_trait_method/struct.Foo.html
-// @has - '//*[@id="method.foo"]' 'default fn foo()'
-// @has - '//*[@id="method.bar"]' 'fn bar()'
-// @!has - '//*[@id="method.bar"]' 'default fn bar()'
-// @has - '//*[@id="method.baz"]' 'fn baz()'
-// @!has - '//*[@id="method.baz"]' 'default fn baz()'
+//@ has default_trait_method/struct.Foo.html
+//@ has - '//*[@id="method.foo"]' 'default fn foo()'
+//@ has - '//*[@id="method.bar"]' 'fn bar()'
+//@ !has - '//*[@id="method.bar"]' 'default fn bar()'
+//@ has - '//*[@id="method.baz"]' 'fn baz()'
+//@ !has - '//*[@id="method.baz"]' 'default fn baz()'
 pub use foo::Foo;
diff --git a/tests/rustdoc/inline_cross/doc-hidden-extern-trait-impl-29584.rs b/tests/rustdoc/inline_cross/doc-hidden-extern-trait-impl-29584.rs
index 4643e8f4750..2459dbdaeed 100644
--- a/tests/rustdoc/inline_cross/doc-hidden-extern-trait-impl-29584.rs
+++ b/tests/rustdoc/inline_cross/doc-hidden-extern-trait-impl-29584.rs
@@ -6,6 +6,6 @@
 
 extern crate issue_29584;
 
-// @has issue_29584/struct.Foo.html
-// @!hasraw - 'impl Bar for'
+//@ has issue_29584/struct.Foo.html
+//@ !hasraw - 'impl Bar for'
 pub use issue_29584::Foo;
diff --git a/tests/rustdoc/inline_cross/dyn_trait.rs b/tests/rustdoc/inline_cross/dyn_trait.rs
index 18404556984..b93dc921212 100644
--- a/tests/rustdoc/inline_cross/dyn_trait.rs
+++ b/tests/rustdoc/inline_cross/dyn_trait.rs
@@ -6,140 +6,140 @@
 //@ aux-crate:dyn_trait=dyn_trait.rs
 //@ edition:2021
 
-// @has user/type.Ty0.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn for<'any> FnOnce(&'any str) -> bool;"
+//@ has user/type.Ty0.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn for<'any> FnOnce(&'any str) -> bool;"
 pub use dyn_trait::Ty0;
 
-// @has user/type.Ty1.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn Display + 'obj;"
+//@ has user/type.Ty1.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn Display + 'obj;"
 pub use dyn_trait::Ty1;
 
-// @has user/type.Ty2.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn for<'a, 'r> Container<'r, Item<'a, 'static> = ()>;"
+//@ has user/type.Ty2.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn for<'a, 'r> Container<'r, Item<'a, 'static> = ()>;"
 pub use dyn_trait::Ty2;
 
-// @has user/type.Ty3.html
-// @has - '//*[@class="rust item-decl"]//code' "&'s dyn ToString;"
+//@ has user/type.Ty3.html
+//@ has - '//*[@class="rust item-decl"]//code' "&'s dyn ToString;"
 pub use dyn_trait::Ty3;
 
 // Below we check if we correctly elide trait-object lifetime bounds if they coincide with their
 // default (known as "object lifetime default" or "default trait object lifetime").
 
-// @has user/fn.lbwel.html
-// @has - '//pre[@class="rust item-decl"]' "lbwel(_: &dyn Fn())"
+//@ has user/fn.lbwel.html
+//@ has - '//pre[@class="rust item-decl"]' "lbwel(_: &dyn Fn())"
 pub use dyn_trait::late_bound_wrapped_elided as lbwel;
-// @has user/fn.lbwl0.html
-// has - '//pre[@class="rust item-decl"]' "lbwl0<'f>(_: &mut (dyn Fn() + 'f))"
+//@ has user/fn.lbwl0.html
+//@ has - '//pre[@class="rust item-decl"]' "lbwl0<'f>(_: &mut (dyn Fn() + 'f))"
 pub use dyn_trait::late_bound_wrapped_late0 as lbwl0;
-// @has user/fn.lbwd0.html
-// has - '//pre[@class="rust item-decl"]' "lbwd0<'f>(_: &'f mut dyn Fn())"
+//@ has user/fn.lbwd0.html
+//@ has - '//pre[@class="rust item-decl"]' "lbwd0<'f>(_: &'f mut dyn Fn())"
 pub use dyn_trait::late_bound_wrapped_defaulted0 as lbwd0;
-// @has user/type.EarlyBoundWrappedDefaulted0.html
-// @has - '//*[@class="rust item-decl"]//code' "Ref<'x, dyn Trait>;"
+//@ has user/type.EarlyBoundWrappedDefaulted0.html
+//@ has - '//*[@class="rust item-decl"]//code' "Ref<'x, dyn Trait>;"
 pub use dyn_trait::EarlyBoundWrappedDefaulted0;
-// @has user/type.EarlyBoundWrappedDefaulted1.html
-// @has - '//*[@class="rust item-decl"]//code' "&'x dyn Trait;"
+//@ has user/type.EarlyBoundWrappedDefaulted1.html
+//@ has - '//*[@class="rust item-decl"]//code' "&'x dyn Trait;"
 pub use dyn_trait::EarlyBoundWrappedDefaulted1;
-// @has user/type.EarlyBoundWrappedEarly.html
-// @has - '//*[@class="rust item-decl"]//code' "Ref<'x, dyn Trait + 'y>"
+//@ has user/type.EarlyBoundWrappedEarly.html
+//@ has - '//*[@class="rust item-decl"]//code' "Ref<'x, dyn Trait + 'y>"
 pub use dyn_trait::EarlyBoundWrappedEarly;
-// @has user/type.EarlyBoundWrappedStatic.html
-// @has - '//*[@class="rust item-decl"]//code' "Ref<'x, dyn Trait + 'static>"
+//@ has user/type.EarlyBoundWrappedStatic.html
+//@ has - '//*[@class="rust item-decl"]//code' "Ref<'x, dyn Trait + 'static>"
 pub use dyn_trait::EarlyBoundWrappedStatic;
-// @has user/fn.lbwd1.html
-// @has - '//pre[@class="rust item-decl"]' "lbwd1<'l>(_: Ref<'l, dyn Trait>)"
+//@ has user/fn.lbwd1.html
+//@ has - '//pre[@class="rust item-decl"]' "lbwd1<'l>(_: Ref<'l, dyn Trait>)"
 pub use dyn_trait::late_bound_wrapped_defaulted1 as lbwd1;
-// @has user/fn.lbwl1.html
-// @has - '//pre[@class="rust item-decl"]' "lbwl1<'l, 'm>(_: Ref<'l, dyn Trait + 'm>)"
+//@ has user/fn.lbwl1.html
+//@ has - '//pre[@class="rust item-decl"]' "lbwl1<'l, 'm>(_: Ref<'l, dyn Trait + 'm>)"
 pub use dyn_trait::late_bound_wrapped_late1 as lbwl1;
-// @has user/fn.lbwe.html
-// @has - '//pre[@class="rust item-decl"]' "lbwe<'e, 'l>(_: Ref<'l, dyn Trait + 'e>)"
+//@ has user/fn.lbwe.html
+//@ has - '//pre[@class="rust item-decl"]' "lbwe<'e, 'l>(_: Ref<'l, dyn Trait + 'e>)"
 pub use dyn_trait::late_bound_wrapped_early as lbwe;
-// @has user/fn.ebwd.html
-// @has - '//pre[@class="rust item-decl"]' "ebwd(_: Ref<'_, dyn Trait>)"
+//@ has user/fn.ebwd.html
+//@ has - '//pre[@class="rust item-decl"]' "ebwd(_: Ref<'_, dyn Trait>)"
 pub use dyn_trait::elided_bound_wrapped_defaulted as ebwd;
-// @has user/type.StaticBoundWrappedDefaulted0.html
-// @has - '//*[@class="rust item-decl"]//code' "Ref<'static, dyn Trait>;"
+//@ has user/type.StaticBoundWrappedDefaulted0.html
+//@ has - '//*[@class="rust item-decl"]//code' "Ref<'static, dyn Trait>;"
 pub use dyn_trait::StaticBoundWrappedDefaulted0;
-// @has user/type.StaticBoundWrappedDefaulted1.html
-// @has - '//*[@class="rust item-decl"]//code' "&'static dyn Trait;"
+//@ has user/type.StaticBoundWrappedDefaulted1.html
+//@ has - '//*[@class="rust item-decl"]//code' "&'static dyn Trait;"
 pub use dyn_trait::StaticBoundWrappedDefaulted1;
-// @has user/type.AmbiguousBoundWrappedEarly0.html
-// @has - '//*[@class="rust item-decl"]//code' "AmbiguousBoundWrapper<'s, 'r, dyn Trait + 's>;"
+//@ has user/type.AmbiguousBoundWrappedEarly0.html
+//@ has - '//*[@class="rust item-decl"]//code' "AmbiguousBoundWrapper<'s, 'r, dyn Trait + 's>;"
 pub use dyn_trait::AmbiguousBoundWrappedEarly0;
-// @has user/type.AmbiguousBoundWrappedEarly1.html
-// @has - '//*[@class="rust item-decl"]//code' "AmbiguousBoundWrapper<'s, 'r, dyn Trait + 'r>;"
+//@ has user/type.AmbiguousBoundWrappedEarly1.html
+//@ has - '//*[@class="rust item-decl"]//code' "AmbiguousBoundWrapper<'s, 'r, dyn Trait + 'r>;"
 pub use dyn_trait::AmbiguousBoundWrappedEarly1;
-// @has user/type.AmbiguousBoundWrappedStatic.html
-// @has - '//*[@class="rust item-decl"]//code' "AmbiguousBoundWrapper<'q, 'q, dyn Trait + 'static>;"
+//@ has user/type.AmbiguousBoundWrappedStatic.html
+//@ has - '//*[@class="rust item-decl"]//code' "AmbiguousBoundWrapper<'q, 'q, dyn Trait + 'static>;"
 pub use dyn_trait::AmbiguousBoundWrappedStatic;
 
-// @has user/type.NoBoundsWrappedDefaulted.html
-// @has - '//*[@class="rust item-decl"]//code' "Box<dyn Trait>;"
+//@ has user/type.NoBoundsWrappedDefaulted.html
+//@ has - '//*[@class="rust item-decl"]//code' "Box<dyn Trait>;"
 pub use dyn_trait::NoBoundsWrappedDefaulted;
-// @has user/type.NoBoundsWrappedEarly.html
-// @has - '//*[@class="rust item-decl"]//code' "Box<dyn Trait + 'e>;"
+//@ has user/type.NoBoundsWrappedEarly.html
+//@ has - '//*[@class="rust item-decl"]//code' "Box<dyn Trait + 'e>;"
 pub use dyn_trait::NoBoundsWrappedEarly;
-// @has user/fn.nbwl.html
-// @has - '//pre[@class="rust item-decl"]' "nbwl<'l>(_: Box<dyn Trait + 'l>)"
+//@ has user/fn.nbwl.html
+//@ has - '//pre[@class="rust item-decl"]' "nbwl<'l>(_: Box<dyn Trait + 'l>)"
 pub use dyn_trait::no_bounds_wrapped_late as nbwl;
-// @has user/fn.nbwel.html
-// @has - '//pre[@class="rust item-decl"]' "nbwel(_: Box<dyn Trait + '_>)"
+//@ has user/fn.nbwel.html
+//@ has - '//pre[@class="rust item-decl"]' "nbwel(_: Box<dyn Trait + '_>)"
 // NB: It might seem counterintuitive to display the explicitly elided lifetime `'_` here instead of
 // eliding it but this behavior is correct: The default is `'static` here which != `'_`.
 pub use dyn_trait::no_bounds_wrapped_elided as nbwel;
 
-// @has user/type.BareNoBoundsDefaulted.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn Trait;"
+//@ has user/type.BareNoBoundsDefaulted.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn Trait;"
 pub use dyn_trait::BareNoBoundsDefaulted;
-// @has user/type.BareNoBoundsEarly.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn Trait + 'p;"
+//@ has user/type.BareNoBoundsEarly.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn Trait + 'p;"
 pub use dyn_trait::BareNoBoundsEarly;
-// @has user/type.BareEarlyBoundDefaulted0.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait0<'u>;"
+//@ has user/type.BareEarlyBoundDefaulted0.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait0<'u>;"
 pub use dyn_trait::BareEarlyBoundDefaulted0;
-// @has user/type.BareEarlyBoundDefaulted1.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn for<'any> EarlyBoundTrait0<'any>;"
+//@ has user/type.BareEarlyBoundDefaulted1.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn for<'any> EarlyBoundTrait0<'any>;"
 pub use dyn_trait::BareEarlyBoundDefaulted1;
-// @has user/type.BareEarlyBoundDefaulted2.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait1<'static, 'w>;"
+//@ has user/type.BareEarlyBoundDefaulted2.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait1<'static, 'w>;"
 pub use dyn_trait::BareEarlyBoundDefaulted2;
-// @has user/type.BareEarlyBoundEarly.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait0<'i> + 'j;"
+//@ has user/type.BareEarlyBoundEarly.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait0<'i> + 'j;"
 pub use dyn_trait::BareEarlyBoundEarly;
-// @has user/type.BareEarlyBoundStatic.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait0<'i> + 'static;"
+//@ has user/type.BareEarlyBoundStatic.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn EarlyBoundTrait0<'i> + 'static;"
 pub use dyn_trait::BareEarlyBoundStatic;
-// @has user/type.BareStaticBoundDefaulted.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn StaticBoundTrait;"
+//@ has user/type.BareStaticBoundDefaulted.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn StaticBoundTrait;"
 pub use dyn_trait::BareStaticBoundDefaulted;
-// @has user/type.BareHigherRankedBoundDefaulted0.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn HigherRankedBoundTrait0;"
+//@ has user/type.BareHigherRankedBoundDefaulted0.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn HigherRankedBoundTrait0;"
 pub use dyn_trait::BareHigherRankedBoundDefaulted0;
-// @has user/type.BareHigherRankedBoundDefaulted1.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn HigherRankedBoundTrait1<'r>;"
+//@ has user/type.BareHigherRankedBoundDefaulted1.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn HigherRankedBoundTrait1<'r>;"
 pub use dyn_trait::BareHigherRankedBoundDefaulted1;
-// @has user/type.BareAmbiguousBoundEarly0.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn AmbiguousBoundTrait<'m, 'n> + 'm;"
+//@ has user/type.BareAmbiguousBoundEarly0.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn AmbiguousBoundTrait<'m, 'n> + 'm;"
 pub use dyn_trait::BareAmbiguousBoundEarly0;
-// @has user/type.BareAmbiguousBoundEarly1.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn AmbiguousBoundTrait<'m, 'n> + 'n;"
+//@ has user/type.BareAmbiguousBoundEarly1.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn AmbiguousBoundTrait<'m, 'n> + 'n;"
 pub use dyn_trait::BareAmbiguousBoundEarly1;
-// @has user/type.BareAmbiguousBoundStatic.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn AmbiguousBoundTrait<'o, 'o> + 'static;"
+//@ has user/type.BareAmbiguousBoundStatic.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn AmbiguousBoundTrait<'o, 'o> + 'static;"
 pub use dyn_trait::BareAmbiguousBoundStatic;
 
 // Regression test for issue #115179:
 
-// @has user/type.NestedTraitObjects.html
-// @has - '//*[@class="rust item-decl"]//code' "dyn Outer<dyn Inner>;"
+//@ has user/type.NestedTraitObjects.html
+//@ has - '//*[@class="rust item-decl"]//code' "dyn Outer<dyn Inner>;"
 pub use dyn_trait::NestedTraitObjects;
 
-// @has user/fn.apit_rpit.html
-// @has - '//pre[@class="rust item-decl"]' \
+//@ has user/fn.apit_rpit.html
+//@ has - '//pre[@class="rust item-decl"]' \
 //     "apit_rpit(o: impl Outer<dyn Inner>) -> impl Outer<dyn Inner>"
 pub use dyn_trait::apit_rpit;
 
-// @has user/type.AssocTy.html
-// @has - '//*[@class="rust item-decl"]//code' "<() as Base>::Type<dyn Inner>"
+//@ has user/type.AssocTy.html
+//@ has - '//*[@class="rust item-decl"]//code' "<() as Base>::Type<dyn Inner>"
 pub use dyn_trait::AssocTy;
diff --git a/tests/rustdoc/inline_cross/early-late-bound-lifetime-params.rs b/tests/rustdoc/inline_cross/early-late-bound-lifetime-params.rs
index 97dd623bb07..36542a2d6fc 100644
--- a/tests/rustdoc/inline_cross/early-late-bound-lifetime-params.rs
+++ b/tests/rustdoc/inline_cross/early-late-bound-lifetime-params.rs
@@ -8,10 +8,10 @@
 //@ aux-crate:dep=early-late-bound-lifetime-params.rs
 //@ edition:2021
 
-// @has usr/fn.f.html
-// @has - '//pre[@class="rust item-decl"]' "fn f<'a, 'b, 'c, 'd, T, const N: usize>(_: impl Copy)"
+//@ has usr/fn.f.html
+//@ has - '//pre[@class="rust item-decl"]' "fn f<'a, 'b, 'c, 'd, T, const N: usize>(_: impl Copy)"
 pub use dep::f;
 
-// @has usr/struct.Ty.html
-// @has - '//*[@id="method.f"]' "fn f<'a, 'b, 'c, 'd, T, const N: usize>(_: impl Copy)"
+//@ has usr/struct.Ty.html
+//@ has - '//*[@id="method.f"]' "fn f<'a, 'b, 'c, 'd, T, const N: usize>(_: impl Copy)"
 pub use dep::Ty;
diff --git a/tests/rustdoc/inline_cross/fn-type.rs b/tests/rustdoc/inline_cross/fn-type.rs
index 222557a4663..8db6f65f421 100644
--- a/tests/rustdoc/inline_cross/fn-type.rs
+++ b/tests/rustdoc/inline_cross/fn-type.rs
@@ -6,7 +6,7 @@
 //@ edition: 2021
 #![crate_name = "user"]
 
-// @has user/type.F.html
-// @has - '//*[@class="rust item-decl"]//code' \
+//@ has user/type.F.html
+//@ has - '//*[@class="rust item-decl"]//code' \
 //     "for<'z, 'a, '_unused> fn(_: &'z for<'b> fn(_: &'b str), _: &'a ()) -> &'a ();"
 pub use fn_type::F;
diff --git a/tests/rustdoc/inline_cross/generic-const-items.rs b/tests/rustdoc/inline_cross/generic-const-items.rs
index 77011a05d2f..70018b6ddb5 100644
--- a/tests/rustdoc/inline_cross/generic-const-items.rs
+++ b/tests/rustdoc/inline_cross/generic-const-items.rs
@@ -3,23 +3,23 @@
 //@ aux-crate:generic_const_items=generic-const-items.rs
 //@ edition:2021
 
-// @has 'user/constant.K.html'
-// @has - '//*[@class="rust item-decl"]//code' \
+//@ has 'user/constant.K.html'
+//@ has - '//*[@class="rust item-decl"]//code' \
 // "pub const K<'a, T: 'a + Copy, const N: usize>: Option<[T; N]> \
 // where \
 //     String: From<T>;"
 pub use generic_const_items::K;
 
-// @has user/trait.Trait.html
-// @has - '//*[@id="associatedconstant.C"]' \
+//@ has user/trait.Trait.html
+//@ has - '//*[@id="associatedconstant.C"]' \
 // "const C<'a>: &'a T \
 // where \
 //     T: 'a + Eq"
 pub use generic_const_items::Trait;
 
-// @has user/struct.Implementor.html
-// @has - '//h3[@class="code-header"]' 'impl Trait<str> for Implementor'
-// @has - '//*[@id="associatedconstant.C"]' \
+//@ has user/struct.Implementor.html
+//@ has - '//h3[@class="code-header"]' 'impl Trait<str> for Implementor'
+//@ has - '//*[@id="associatedconstant.C"]' \
 // "const C<'a>: &'a str = \"C\" \
 // where \
 //     str: 'a"
diff --git a/tests/rustdoc/inline_cross/hidden-use.rs b/tests/rustdoc/inline_cross/hidden-use.rs
index f747c94915c..3f15881345c 100644
--- a/tests/rustdoc/inline_cross/hidden-use.rs
+++ b/tests/rustdoc/inline_cross/hidden-use.rs
@@ -4,9 +4,9 @@
 
 extern crate rustdoc_hidden;
 
-// @has hidden_use/index.html
-// @!hasraw - 'rustdoc_hidden'
-// @!hasraw - 'Bar'
-// @!has hidden_use/struct.Bar.html
+//@ has hidden_use/index.html
+//@ !hasraw - 'rustdoc_hidden'
+//@ !hasraw - 'Bar'
+//@ !has hidden_use/struct.Bar.html
 #[doc(hidden)]
 pub use rustdoc_hidden::Bar;
diff --git a/tests/rustdoc/inline_cross/impl-inline-without-trait.rs b/tests/rustdoc/inline_cross/impl-inline-without-trait.rs
index 60265b5df8f..d2f19400271 100644
--- a/tests/rustdoc/inline_cross/impl-inline-without-trait.rs
+++ b/tests/rustdoc/inline_cross/impl-inline-without-trait.rs
@@ -6,7 +6,7 @@
 
 extern crate impl_inline_without_trait;
 
-// @has 'foo/struct.MyStruct.html'
-// @has - '//*[@id="method.my_trait_method"]' 'fn my_trait_method()'
-// @has - '//div[@class="docblock"]' 'docs for my_trait_method'
+//@ has 'foo/struct.MyStruct.html'
+//@ has - '//*[@id="method.my_trait_method"]' 'fn my_trait_method()'
+//@ has - '//div[@class="docblock"]' 'docs for my_trait_method'
 pub use impl_inline_without_trait::MyStruct;
diff --git a/tests/rustdoc/inline_cross/impl-sized.rs b/tests/rustdoc/inline_cross/impl-sized.rs
index b62a1e61e2b..edef114422c 100644
--- a/tests/rustdoc/inline_cross/impl-sized.rs
+++ b/tests/rustdoc/inline_cross/impl-sized.rs
@@ -3,25 +3,25 @@
 //@ aux-crate:impl_sized=impl-sized.rs
 //@ edition:2021
 
-// @has user/fn.sized.html
-// @has - '//pre[@class="rust item-decl"]' "sized(x: impl Sized) -> impl Sized"
+//@ has user/fn.sized.html
+//@ has - '//pre[@class="rust item-decl"]' "sized(x: impl Sized) -> impl Sized"
 pub use impl_sized::sized;
 
-// @has user/fn.sized_outlives.html
-// @has - '//pre[@class="rust item-decl"]' \
+//@ has user/fn.sized_outlives.html
+//@ has - '//pre[@class="rust item-decl"]' \
 //     "sized_outlives<'a>(x: impl Sized + 'a) -> impl Sized + 'a"
 pub use impl_sized::sized_outlives;
 
-// @has user/fn.maybe_sized.html
-// @has - '//pre[@class="rust item-decl"]' "maybe_sized(x: &impl ?Sized) -> &impl ?Sized"
+//@ has user/fn.maybe_sized.html
+//@ has - '//pre[@class="rust item-decl"]' "maybe_sized(x: &impl ?Sized) -> &impl ?Sized"
 pub use impl_sized::maybe_sized;
 
-// @has user/fn.debug_maybe_sized.html
-// @has - '//pre[@class="rust item-decl"]' \
+//@ has user/fn.debug_maybe_sized.html
+//@ has - '//pre[@class="rust item-decl"]' \
 //     "debug_maybe_sized(x: &(impl Debug + ?Sized)) -> &(impl Debug + ?Sized)"
 pub use impl_sized::debug_maybe_sized;
 
-// @has user/fn.maybe_sized_outlives.html
-// @has - '//pre[@class="rust item-decl"]' \
+//@ has user/fn.maybe_sized_outlives.html
+//@ has - '//pre[@class="rust item-decl"]' \
 //     "maybe_sized_outlives<'t>(x: &(impl ?Sized + 't)) -> &(impl ?Sized + 't)"
 pub use impl_sized::maybe_sized_outlives;
diff --git a/tests/rustdoc/inline_cross/impl_trait.rs b/tests/rustdoc/inline_cross/impl_trait.rs
index 19d1673f2eb..e6baf33660a 100644
--- a/tests/rustdoc/inline_cross/impl_trait.rs
+++ b/tests/rustdoc/inline_cross/impl_trait.rs
@@ -3,37 +3,37 @@
 
 extern crate impl_trait_aux;
 
-// @has impl_trait/fn.func.html
-// @has - '//pre[@class="rust item-decl"]' "pub fn func<'a>(_x: impl Clone + Into<Vec<u8>> + 'a)"
-// @!has - '//pre[@class="rust item-decl"]' 'where'
+//@ has impl_trait/fn.func.html
+//@ has - '//pre[@class="rust item-decl"]' "pub fn func<'a>(_x: impl Clone + Into<Vec<u8>> + 'a)"
+//@ !has - '//pre[@class="rust item-decl"]' 'where'
 pub use impl_trait_aux::func;
 
-// @has impl_trait/fn.func2.html
-// @has - '//pre[@class="rust item-decl"]' "func2<T>("
-// @has - '//pre[@class="rust item-decl"]' "_x: impl Deref<Target = Option<T>> + Iterator<Item = T>,"
-// @has - '//pre[@class="rust item-decl"]' "_y: impl Iterator<Item = u8>, )"
-// @!has - '//pre[@class="rust item-decl"]' 'where'
+//@ has impl_trait/fn.func2.html
+//@ has - '//pre[@class="rust item-decl"]' "func2<T>("
+//@ has - '//pre[@class="rust item-decl"]' "_x: impl Deref<Target = Option<T>> + Iterator<Item = T>,"
+//@ has - '//pre[@class="rust item-decl"]' "_y: impl Iterator<Item = u8>, )"
+//@ !has - '//pre[@class="rust item-decl"]' 'where'
 pub use impl_trait_aux::func2;
 
-// @has impl_trait/fn.func3.html
-// @has - '//pre[@class="rust item-decl"]' "func3("
-// @has - '//pre[@class="rust item-decl"]' "_x: impl Iterator<Item = impl Iterator<Item = u8>> + Clone)"
-// @!has - '//pre[@class="rust item-decl"]' 'where'
+//@ has impl_trait/fn.func3.html
+//@ has - '//pre[@class="rust item-decl"]' "func3("
+//@ has - '//pre[@class="rust item-decl"]' "_x: impl Iterator<Item = impl Iterator<Item = u8>> + Clone)"
+//@ !has - '//pre[@class="rust item-decl"]' 'where'
 pub use impl_trait_aux::func3;
 
-// @has impl_trait/fn.func4.html
-// @has - '//pre[@class="rust item-decl"]' "func4<T>("
-// @has - '//pre[@class="rust item-decl"]' "T: Iterator<Item = impl Clone>,"
+//@ has impl_trait/fn.func4.html
+//@ has - '//pre[@class="rust item-decl"]' "func4<T>("
+//@ has - '//pre[@class="rust item-decl"]' "T: Iterator<Item = impl Clone>,"
 pub use impl_trait_aux::func4;
 
-// @has impl_trait/fn.func5.html
-// @has - '//pre[@class="rust item-decl"]' "func5("
-// @has - '//pre[@class="rust item-decl"]' "_f: impl for<'any> Fn(&'any str, &'any str) -> bool + for<'r> Other<T<'r> = ()>,"
-// @has - '//pre[@class="rust item-decl"]' "_a: impl for<'beta, 'alpha, '_gamma> Auxiliary<'alpha, Item<'beta> = fn(_: &'beta ())>"
-// @!has - '//pre[@class="rust item-decl"]' 'where'
+//@ has impl_trait/fn.func5.html
+//@ has - '//pre[@class="rust item-decl"]' "func5("
+//@ has - '//pre[@class="rust item-decl"]' "_f: impl for<'any> Fn(&'any str, &'any str) -> bool + for<'r> Other<T<'r> = ()>,"
+//@ has - '//pre[@class="rust item-decl"]' "_a: impl for<'beta, 'alpha, '_gamma> Auxiliary<'alpha, Item<'beta> = fn(_: &'beta ())>"
+//@ !has - '//pre[@class="rust item-decl"]' 'where'
 pub use impl_trait_aux::func5;
 
-// @has impl_trait/struct.Foo.html
-// @has - '//*[@id="method.method"]//h4[@class="code-header"]' "pub fn method<'a>(_x: impl Clone + Into<Vec<u8>> + 'a)"
-// @!has - '//*[@id="method.method"]//h4[@class="code-header"]' 'where'
+//@ has impl_trait/struct.Foo.html
+//@ has - '//*[@id="method.method"]//h4[@class="code-header"]' "pub fn method<'a>(_x: impl Clone + Into<Vec<u8>> + 'a)"
+//@ !has - '//*[@id="method.method"]//h4[@class="code-header"]' 'where'
 pub use impl_trait_aux::Foo;
diff --git a/tests/rustdoc/inline_cross/implementors-js.rs b/tests/rustdoc/inline_cross/implementors-js.rs
index 099da54093c..e5b1049ff56 100644
--- a/tests/rustdoc/inline_cross/implementors-js.rs
+++ b/tests/rustdoc/inline_cross/implementors-js.rs
@@ -4,13 +4,13 @@
 
 extern crate implementors_inline;
 
-// @!has trait.impl/implementors_js/trait.MyTrait.js
-// @has trait.impl/implementors_inline/my_trait/trait.MyTrait.js
-// @!has trait.impl/implementors_inline/prelude/trait.MyTrait.js
-// @has implementors_inline/my_trait/trait.MyTrait.html
-// @has - '//script/@src' '../../trait.impl/implementors_inline/my_trait/trait.MyTrait.js'
-// @has implementors_js/trait.MyTrait.html
-// @has - '//script/@src' '../trait.impl/implementors_inline/my_trait/trait.MyTrait.js'
+//@ !has trait.impl/implementors_js/trait.MyTrait.js
+//@ has trait.impl/implementors_inline/my_trait/trait.MyTrait.js
+//@ !has trait.impl/implementors_inline/prelude/trait.MyTrait.js
+//@ has implementors_inline/my_trait/trait.MyTrait.html
+//@ has - '//script/@src' '../../trait.impl/implementors_inline/my_trait/trait.MyTrait.js'
+//@ has implementors_js/trait.MyTrait.html
+//@ has - '//script/@src' '../trait.impl/implementors_inline/my_trait/trait.MyTrait.js'
 /// When re-exporting this trait, the HTML will be inlined,
 /// but, vitally, the JavaScript will be located only at the
 /// one canonical path.
diff --git a/tests/rustdoc/inline_cross/inline_hidden.rs b/tests/rustdoc/inline_cross/inline_hidden.rs
index 2a3dd72749c..095cd2d3c55 100644
--- a/tests/rustdoc/inline_cross/inline_hidden.rs
+++ b/tests/rustdoc/inline_cross/inline_hidden.rs
@@ -4,23 +4,23 @@
 
 extern crate rustdoc_hidden;
 
-// @has inline_hidden/index.html
+//@ has inline_hidden/index.html
 // Ensures this item is not inlined.
-// @has - '//*[@id="reexport.Foo"]/code' 'pub use rustdoc_hidden::Foo;'
+//@ has - '//*[@id="reexport.Foo"]/code' 'pub use rustdoc_hidden::Foo;'
 #[doc(no_inline)]
 pub use rustdoc_hidden::Foo;
 
 // Even if the foreign item has `doc(hidden)`, we should be able to inline it.
-// @has - '//*[@class="item-name"]/a[@class="struct"]' 'Inlined'
+//@ has - '//*[@class="item-name"]/a[@class="struct"]' 'Inlined'
 #[doc(inline)]
 pub use rustdoc_hidden::Foo as Inlined;
 
 // Even with this import, we should not see `Foo`.
-// @count - '//*[@class="item-name"]' 4
-// @has - '//*[@class="item-name"]/a[@class="struct"]' 'Bar'
-// @has - '//*[@class="item-name"]/a[@class="fn"]' 'foo'
+//@ count - '//*[@class="item-name"]' 4
+//@ has - '//*[@class="item-name"]/a[@class="struct"]' 'Bar'
+//@ has - '//*[@class="item-name"]/a[@class="fn"]' 'foo'
 pub use rustdoc_hidden::*;
 
-// @has inline_hidden/fn.foo.html
-// @!has - '//a/@title' 'Foo'
+//@ has inline_hidden/fn.foo.html
+//@ !has - '//a/@title' 'Foo'
 pub fn foo(_: Foo) {}
diff --git a/tests/rustdoc/inline_cross/issue-24183.rs b/tests/rustdoc/inline_cross/issue-24183.rs
index cd39cda718b..8299eecc575 100644
--- a/tests/rustdoc/inline_cross/issue-24183.rs
+++ b/tests/rustdoc/inline_cross/issue-24183.rs
@@ -4,15 +4,15 @@
 //@ aux-crate:issue_24183=issue-24183.rs
 //@ edition: 2021
 
-// @has usr/trait.U.html
-// @has - '//*[@class="rust item-decl"]' "pub trait U {"
-// @has - '//*[@id="method.modified"]' \
+//@ has usr/trait.U.html
+//@ has - '//*[@class="rust item-decl"]' "pub trait U {"
+//@ has - '//*[@id="method.modified"]' \
 // "fn modified(self) -> Self\
 // where \
 //     Self: Sized"
-// @snapshot method_no_where_self_sized - '//*[@id="method.touch"]/*[@class="code-header"]'
+//@ snapshot method_no_where_self_sized - '//*[@id="method.touch"]/*[@class="code-header"]'
 pub use issue_24183::U;
 
-// @has usr/trait.S.html
-// @has - '//*[@class="rust item-decl"]' 'pub trait S: Sized {'
+//@ has usr/trait.S.html
+//@ has - '//*[@class="rust item-decl"]' 'pub trait S: Sized {'
 pub use issue_24183::S;
diff --git a/tests/rustdoc/inline_cross/issue-28480.rs b/tests/rustdoc/inline_cross/issue-28480.rs
index 9d221a46d92..004510fd922 100644
--- a/tests/rustdoc/inline_cross/issue-28480.rs
+++ b/tests/rustdoc/inline_cross/issue-28480.rs
@@ -2,12 +2,12 @@
 //@ build-aux-docs
 //@ ignore-cross-compile
 
-// @has rustdoc_hidden_sig/struct.Bar.html
-// @!has -  '//a/@title' 'Hidden'
-// @has -  '//a' 'u8'
+//@ has rustdoc_hidden_sig/struct.Bar.html
+//@ !has -  '//a/@title' 'Hidden'
+//@ has -  '//a' 'u8'
 extern crate rustdoc_hidden_sig;
 
-// @has issue_28480/struct.Bar.html
-// @!has -  '//a/@title' 'Hidden'
-// @has -  '//a' 'u8'
+//@ has issue_28480/struct.Bar.html
+//@ !has -  '//a/@title' 'Hidden'
+//@ has -  '//a' 'u8'
 pub use rustdoc_hidden_sig::Bar;
diff --git a/tests/rustdoc/inline_cross/issue-31948-1.rs b/tests/rustdoc/inline_cross/issue-31948-1.rs
index ee053f40638..e59da87c29d 100644
--- a/tests/rustdoc/inline_cross/issue-31948-1.rs
+++ b/tests/rustdoc/inline_cross/issue-31948-1.rs
@@ -4,24 +4,24 @@
 
 extern crate rustdoc_nonreachable_impls;
 
-// @has issue_31948_1/struct.Wobble.html
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bark for'
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'Woof for'
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bar for'
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'Qux for'
+//@ has issue_31948_1/struct.Wobble.html
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bark for'
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'Woof for'
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bar for'
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'Qux for'
 pub use rustdoc_nonreachable_impls::hidden::Wobble;
 
-// @has issue_31948_1/trait.Bark.html
-// @has - '//h3[@class="code-header"]' 'for Foo'
-// @has - '//h3[@class="code-header"]' 'for Wobble'
-// @!has - '//h3[@class="code-header"]' 'for Wibble'
+//@ has issue_31948_1/trait.Bark.html
+//@ has - '//h3[@class="code-header"]' 'for Foo'
+//@ has - '//h3[@class="code-header"]' 'for Wobble'
+//@ !has - '//h3[@class="code-header"]' 'for Wibble'
 pub use rustdoc_nonreachable_impls::Bark;
 
-// @has issue_31948_1/trait.Woof.html
-// @has - '//h3[@class="code-header"]' 'for Foo'
-// @has - '//h3[@class="code-header"]' 'for Wobble'
-// @!has - '//h3[@class="code-header"]' 'for Wibble'
+//@ has issue_31948_1/trait.Woof.html
+//@ has - '//h3[@class="code-header"]' 'for Foo'
+//@ has - '//h3[@class="code-header"]' 'for Wobble'
+//@ !has - '//h3[@class="code-header"]' 'for Wibble'
 pub use rustdoc_nonreachable_impls::Woof;
 
-// @!has issue_31948_1/trait.Bar.html
-// @!has issue_31948_1/trait.Qux.html
+//@ !has issue_31948_1/trait.Bar.html
+//@ !has issue_31948_1/trait.Qux.html
diff --git a/tests/rustdoc/inline_cross/issue-31948-2.rs b/tests/rustdoc/inline_cross/issue-31948-2.rs
index 5019f0369b7..34b57052883 100644
--- a/tests/rustdoc/inline_cross/issue-31948-2.rs
+++ b/tests/rustdoc/inline_cross/issue-31948-2.rs
@@ -4,18 +4,18 @@
 
 extern crate rustdoc_nonreachable_impls;
 
-// @has issue_31948_2/struct.Wobble.html
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'Qux for'
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bark for'
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'Woof for'
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bar for'
+//@ has issue_31948_2/struct.Wobble.html
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'Qux for'
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bark for'
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'Woof for'
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bar for'
 pub use rustdoc_nonreachable_impls::hidden::Wobble;
 
-// @has issue_31948_2/trait.Qux.html
-// @has - '//h3[@class="code-header"]' 'for Foo'
-// @has - '//h3[@class="code-header"]' 'for Wobble'
+//@ has issue_31948_2/trait.Qux.html
+//@ has - '//h3[@class="code-header"]' 'for Foo'
+//@ has - '//h3[@class="code-header"]' 'for Wobble'
 pub use rustdoc_nonreachable_impls::hidden::Qux;
 
-// @!has issue_31948_2/trait.Bar.html
-// @!has issue_31948_2/trait.Woof.html
-// @!has issue_31948_2/trait.Bark.html
+//@ !has issue_31948_2/trait.Bar.html
+//@ !has issue_31948_2/trait.Woof.html
+//@ !has issue_31948_2/trait.Bark.html
diff --git a/tests/rustdoc/inline_cross/issue-31948.rs b/tests/rustdoc/inline_cross/issue-31948.rs
index eaed8509520..7a43fc7b279 100644
--- a/tests/rustdoc/inline_cross/issue-31948.rs
+++ b/tests/rustdoc/inline_cross/issue-31948.rs
@@ -4,26 +4,26 @@
 
 extern crate rustdoc_nonreachable_impls;
 
-// @has issue_31948/struct.Foo.html
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bark for'
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'Woof for'
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bar for'
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'Qux for'
+//@ has issue_31948/struct.Foo.html
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bark for'
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'Woof for'
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'Bar for'
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'Qux for'
 pub use rustdoc_nonreachable_impls::Foo;
 
-// @has issue_31948/trait.Bark.html
-// @has - '//h3[@class="code-header"]' 'for Foo'
-// @!has - '//h3[@class="code-header"]' 'for Wibble'
-// @!has - '//h3[@class="code-header"]' 'for Wobble'
+//@ has issue_31948/trait.Bark.html
+//@ has - '//h3[@class="code-header"]' 'for Foo'
+//@ !has - '//h3[@class="code-header"]' 'for Wibble'
+//@ !has - '//h3[@class="code-header"]' 'for Wobble'
 pub use rustdoc_nonreachable_impls::Bark;
 
-// @has issue_31948/trait.Woof.html
-// @has - '//h3[@class="code-header"]' 'for Foo'
-// @!has - '//h3[@class="code-header"]' 'for Wibble'
-// @!has - '//h3[@class="code-header"]' 'for Wobble'
+//@ has issue_31948/trait.Woof.html
+//@ has - '//h3[@class="code-header"]' 'for Foo'
+//@ !has - '//h3[@class="code-header"]' 'for Wibble'
+//@ !has - '//h3[@class="code-header"]' 'for Wobble'
 pub use rustdoc_nonreachable_impls::Woof;
 
-// @!has issue_31948/trait.Bar.html
-// @!has issue_31948/trait.Qux.html
-// @!has issue_31948/struct.Wibble.html
-// @!has issue_31948/struct.Wobble.html
+//@ !has issue_31948/trait.Bar.html
+//@ !has issue_31948/trait.Qux.html
+//@ !has issue_31948/struct.Wibble.html
+//@ !has issue_31948/struct.Wobble.html
diff --git a/tests/rustdoc/inline_cross/issue-32881.rs b/tests/rustdoc/inline_cross/issue-32881.rs
index 93e868b466a..d4ebf10a1ca 100644
--- a/tests/rustdoc/inline_cross/issue-32881.rs
+++ b/tests/rustdoc/inline_cross/issue-32881.rs
@@ -4,8 +4,8 @@
 
 extern crate rustdoc_trait_object_impl;
 
-// @has issue_32881/trait.Bar.html
-// @has - '//h3[@class="code-header"]' "impl<'a> dyn Bar"
-// @has - '//h3[@class="code-header"]' "impl<'a> Debug for dyn Bar"
+//@ has issue_32881/trait.Bar.html
+//@ has - '//h3[@class="code-header"]' "impl<'a> dyn Bar"
+//@ has - '//h3[@class="code-header"]' "impl<'a> Debug for dyn Bar"
 
 pub use rustdoc_trait_object_impl::Bar;
diff --git a/tests/rustdoc/inline_cross/issue-33113.rs b/tests/rustdoc/inline_cross/issue-33113.rs
index 807bbcbe9b8..05e87d962cb 100644
--- a/tests/rustdoc/inline_cross/issue-33113.rs
+++ b/tests/rustdoc/inline_cross/issue-33113.rs
@@ -4,7 +4,7 @@
 
 extern crate bar;
 
-// @has issue_33113/trait.Bar.html
-// @has - '//h3[@class="code-header"]' "for &'a char"
-// @has - '//h3[@class="code-header"]' "for Foo"
+//@ has issue_33113/trait.Bar.html
+//@ has - '//h3[@class="code-header"]' "for &'a char"
+//@ has - '//h3[@class="code-header"]' "for Foo"
 pub use bar::Bar;
diff --git a/tests/rustdoc/inline_cross/issue-76736-1.rs b/tests/rustdoc/inline_cross/issue-76736-1.rs
index 692677a3eee..fe52702fd6f 100644
--- a/tests/rustdoc/inline_cross/issue-76736-1.rs
+++ b/tests/rustdoc/inline_cross/issue-76736-1.rs
@@ -6,10 +6,10 @@
 extern crate issue_76736_1;
 extern crate issue_76736_2;
 
-// @has foo/struct.Foo.html
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Foo.html
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub struct Foo;
 
-// @has foo/struct.Bar.html
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Bar.html
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub use issue_76736_2::Bar;
diff --git a/tests/rustdoc/inline_cross/issue-76736-2.rs b/tests/rustdoc/inline_cross/issue-76736-2.rs
index d4e6a697fc8..df376ebe9a1 100644
--- a/tests/rustdoc/inline_cross/issue-76736-2.rs
+++ b/tests/rustdoc/inline_cross/issue-76736-2.rs
@@ -9,10 +9,10 @@
 extern crate issue_76736_1;
 extern crate issue_76736_2;
 
-// @has foo/struct.Foo.html
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Foo.html
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub struct Foo;
 
-// @has foo/struct.Bar.html
-// @!has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Bar.html
+//@ !has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub use issue_76736_2::Bar;
diff --git a/tests/rustdoc/inline_cross/issue-76736-3.rs b/tests/rustdoc/inline_cross/issue-76736-3.rs
index cf75c8d0321..1bed4621c04 100644
--- a/tests/rustdoc/inline_cross/issue-76736-3.rs
+++ b/tests/rustdoc/inline_cross/issue-76736-3.rs
@@ -7,10 +7,10 @@
 extern crate issue_76736_1;
 extern crate issue_76736_2;
 
-// @has foo/struct.Foo.html
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Foo.html
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub struct Foo;
 
-// @has foo/struct.Bar.html
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Bar.html
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub use issue_76736_2::Bar;
diff --git a/tests/rustdoc/inline_cross/issue-76736-4.rs b/tests/rustdoc/inline_cross/issue-76736-4.rs
index 297657ef9de..487e9030108 100644
--- a/tests/rustdoc/inline_cross/issue-76736-4.rs
+++ b/tests/rustdoc/inline_cross/issue-76736-4.rs
@@ -10,10 +10,10 @@
 extern crate issue_76736_1;
 extern crate issue_76736_2;
 
-// @has foo/struct.Foo.html
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Foo.html
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub struct Foo;
 
-// @has foo/struct.Bar.html
-// @has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
+//@ has foo/struct.Bar.html
+//@ has - '//*[@class="impl"]//h3[@class="code-header"]' 'MaybeResult'
 pub use issue_76736_2::Bar;
diff --git a/tests/rustdoc/inline_cross/macro-vis.rs b/tests/rustdoc/inline_cross/macro-vis.rs
index 6b811f1452a..b38748407b3 100644
--- a/tests/rustdoc/inline_cross/macro-vis.rs
+++ b/tests/rustdoc/inline_cross/macro-vis.rs
@@ -4,29 +4,29 @@
 
 #[macro_use] extern crate qwop;
 
-// @has macro_vis/macro.some_macro.html
-// @has macro_vis/index.html '//a/@href' 'macro.some_macro.html'
+//@ has macro_vis/macro.some_macro.html
+//@ has macro_vis/index.html '//a/@href' 'macro.some_macro.html'
 pub use qwop::some_macro;
 
-// @has macro_vis/macro.renamed_macro.html
-// @!has - '//pre' 'some_macro'
-// @has macro_vis/index.html '//a/@href' 'macro.renamed_macro.html'
+//@ has macro_vis/macro.renamed_macro.html
+//@ !has - '//pre' 'some_macro'
+//@ has macro_vis/index.html '//a/@href' 'macro.renamed_macro.html'
 #[doc(inline)]
 pub use qwop::some_macro as renamed_macro;
 
-// @!has macro_vis/macro.other_macro.html
-// @!has macro_vis/index.html '//a/@href' 'macro.other_macro.html'
-// @!has - '//code' 'pub use qwop::other_macro;'
+//@ !has macro_vis/macro.other_macro.html
+//@ !has macro_vis/index.html '//a/@href' 'macro.other_macro.html'
+//@ !has - '//code' 'pub use qwop::other_macro;'
 #[doc(hidden)]
 pub use qwop::other_macro;
 
-// @has macro_vis/index.html '//code' 'pub use qwop::super_macro;'
-// @!has macro_vis/macro.super_macro.html
+//@ has macro_vis/index.html '//code' 'pub use qwop::super_macro;'
+//@ !has macro_vis/macro.super_macro.html
 #[doc(no_inline)]
 pub use qwop::super_macro;
 
-// @has macro_vis/macro.this_is_dope.html
-// @has macro_vis/index.html '//a/@href' 'macro.this_is_dope.html'
+//@ has macro_vis/macro.this_is_dope.html
+//@ has macro_vis/index.html '//a/@href' 'macro.this_is_dope.html'
 /// What it says on the tin.
 #[macro_export]
 macro_rules! this_is_dope {
diff --git a/tests/rustdoc/inline_cross/macros.rs b/tests/rustdoc/inline_cross/macros.rs
index c711216d2b5..aab7a3650b1 100644
--- a/tests/rustdoc/inline_cross/macros.rs
+++ b/tests/rustdoc/inline_cross/macros.rs
@@ -6,14 +6,14 @@
 
 extern crate macros;
 
-// @has foo/index.html '//*[@class="item-name"]/span[@class="stab deprecated"]' \
+//@ has foo/index.html '//*[@class="item-name"]/span[@class="stab deprecated"]' \
 //         Deprecated
-// @has - '//*[@class="item-name"]/span[@class="stab unstable"]' \
+//@ has - '//*[@class="item-name"]/span[@class="stab unstable"]' \
 //         Experimental
 
-// @has foo/macro.my_macro.html
-// @has - '//*[@class="docblock"]' 'docs for my_macro'
-// @has - '//*[@class="stab deprecated"]' 'Deprecated since 1.2.3: text'
-// @has - '//*[@class="stab unstable"]' 'macro_test'
-// @has - '//a/@href' '../src/macros/macros.rs.html#8'
+//@ has foo/macro.my_macro.html
+//@ has - '//*[@class="docblock"]' 'docs for my_macro'
+//@ has - '//*[@class="stab deprecated"]' 'Deprecated since 1.2.3: text'
+//@ has - '//*[@class="stab unstable"]' 'macro_test'
+//@ has - '//a/@href' '../src/macros/macros.rs.html#8'
 pub use macros::my_macro;
diff --git a/tests/rustdoc/inline_cross/non_lifetime_binders.rs b/tests/rustdoc/inline_cross/non_lifetime_binders.rs
index edc48c88d9c..95723a61ce7 100644
--- a/tests/rustdoc/inline_cross/non_lifetime_binders.rs
+++ b/tests/rustdoc/inline_cross/non_lifetime_binders.rs
@@ -2,12 +2,12 @@
 //@ edition: 2021
 #![crate_name = "user"]
 
-// @has user/fn.f.html
-// @has - '//pre[@class="rust item-decl"]' "f(_: impl for<T> Trait<T>)"
+//@ has user/fn.f.html
+//@ has - '//pre[@class="rust item-decl"]' "f(_: impl for<T> Trait<T>)"
 pub use non_lifetime_binders::f;
 
-// @has user/fn.g.html
-// @has - '//pre[@class="rust item-decl"]' "g<T>(_: T)\
+//@ has user/fn.g.html
+//@ has - '//pre[@class="rust item-decl"]' "g<T>(_: T)\
 // where \
 //     T: for<U> Trait<U>"
 pub use non_lifetime_binders::g;
diff --git a/tests/rustdoc/inline_cross/proc_macro.rs b/tests/rustdoc/inline_cross/proc_macro.rs
index 4d3b0d554ab..de1a4b82cc4 100644
--- a/tests/rustdoc/inline_cross/proc_macro.rs
+++ b/tests/rustdoc/inline_cross/proc_macro.rs
@@ -3,34 +3,34 @@
 
 extern crate some_macros;
 
-// @has proc_macro/index.html
-// @has - '//a/@href' 'macro.some_proc_macro.html'
-// @has - '//a/@href' 'attr.some_proc_attr.html'
-// @has - '//a/@href' 'derive.SomeDerive.html'
-// @has proc_macro/macro.some_proc_macro.html
-// @has proc_macro/attr.some_proc_attr.html
-// @has proc_macro/derive.SomeDerive.html
-
-// @has proc_macro/macro.some_proc_macro.html
-// @hasraw - 'a proc-macro that swallows its input and does nothing.'
+//@ has proc_macro/index.html
+//@ has - '//a/@href' 'macro.some_proc_macro.html'
+//@ has - '//a/@href' 'attr.some_proc_attr.html'
+//@ has - '//a/@href' 'derive.SomeDerive.html'
+//@ has proc_macro/macro.some_proc_macro.html
+//@ has proc_macro/attr.some_proc_attr.html
+//@ has proc_macro/derive.SomeDerive.html
+
+//@ has proc_macro/macro.some_proc_macro.html
+//@ hasraw - 'a proc-macro that swallows its input and does nothing.'
 pub use some_macros::some_proc_macro;
 
-// @has proc_macro/macro.reexported_macro.html
-// @hasraw - 'Doc comment from the original crate'
+//@ has proc_macro/macro.reexported_macro.html
+//@ hasraw - 'Doc comment from the original crate'
 pub use some_macros::reexported_macro;
 
-// @has proc_macro/attr.some_proc_attr.html
-// @hasraw - 'a proc-macro attribute that passes its item through verbatim.'
+//@ has proc_macro/attr.some_proc_attr.html
+//@ hasraw - 'a proc-macro attribute that passes its item through verbatim.'
 pub use some_macros::some_proc_attr;
 
-// @has proc_macro/derive.SomeDerive.html
-// @hasraw - 'a derive attribute that adds nothing to its input.'
+//@ has proc_macro/derive.SomeDerive.html
+//@ hasraw - 'a derive attribute that adds nothing to its input.'
 pub use some_macros::SomeDerive;
 
-// @has proc_macro/attr.first_attr.html
-// @hasraw - 'Generated doc comment'
+//@ has proc_macro/attr.first_attr.html
+//@ hasraw - 'Generated doc comment'
 pub use some_macros::first_attr;
 
-// @has proc_macro/attr.second_attr.html
-// @hasraw - 'Generated doc comment'
+//@ has proc_macro/attr.second_attr.html
+//@ hasraw - 'Generated doc comment'
 pub use some_macros::second_attr;
diff --git a/tests/rustdoc/inline_cross/qpath-self-85454.rs b/tests/rustdoc/inline_cross/qpath-self-85454.rs
index de806db7709..4751b7b1db4 100644
--- a/tests/rustdoc/inline_cross/qpath-self-85454.rs
+++ b/tests/rustdoc/inline_cross/qpath-self-85454.rs
@@ -5,8 +5,8 @@
 
 extern crate issue_85454;
 
-// @has foo/trait.FromResidual.html
-// @has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { // Required method fn from_residual(residual: R) -> Self; }'
+//@ has foo/trait.FromResidual.html
+//@ has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { // Required method fn from_residual(residual: R) -> Self; }'
 pub trait FromResidual<R = <Self as Try>::Residual> {
     fn from_residual(residual: R) -> Self;
 }
@@ -24,7 +24,7 @@ pub enum ControlFlow<B, C = ()> {
 }
 
 pub mod reexport {
-    // @has foo/reexport/trait.FromResidual.html
-    // @has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { // Required method fn from_residual(residual: R) -> Self; }'
+    //@ has foo/reexport/trait.FromResidual.html
+    //@ has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { // Required method fn from_residual(residual: R) -> Self; }'
     pub use issue_85454::*;
 }
diff --git a/tests/rustdoc/inline_cross/reexport-with-anonymous-lifetime-98697.rs b/tests/rustdoc/inline_cross/reexport-with-anonymous-lifetime-98697.rs
index fe6e5a39c81..bb4ced085c3 100644
--- a/tests/rustdoc/inline_cross/reexport-with-anonymous-lifetime-98697.rs
+++ b/tests/rustdoc/inline_cross/reexport-with-anonymous-lifetime-98697.rs
@@ -9,10 +9,10 @@
 
 extern crate reexport_with_anonymous_lifetime_98697;
 
-// @has foo/fn.repro.html '//pre[@class="rust item-decl"]/code' 'fn repro<F>()where F: Fn(&str)'
-// @!has foo/fn.repro.html '//pre[@class="rust item-decl"]/code' 'for<'
+//@ has foo/fn.repro.html '//pre[@class="rust item-decl"]/code' 'fn repro<F>()where F: Fn(&str)'
+//@ !has foo/fn.repro.html '//pre[@class="rust item-decl"]/code' 'for<'
 pub use reexport_with_anonymous_lifetime_98697::repro;
 
-// @has foo/struct.Extra.html '//div[@id="trait-implementations-list"]//h3[@class="code-header"]' 'impl MyTrait<&Extra> for Extra'
-// @!has foo/struct.Extra.html '//div[@id="trait-implementations-list"]//h3[@class="code-header"]' 'impl<'
+//@ has foo/struct.Extra.html '//div[@id="trait-implementations-list"]//h3[@class="code-header"]' 'impl MyTrait<&Extra> for Extra'
+//@ !has foo/struct.Extra.html '//div[@id="trait-implementations-list"]//h3[@class="code-header"]' 'impl<'
 pub use reexport_with_anonymous_lifetime_98697::Extra;
diff --git a/tests/rustdoc/inline_cross/renamed-via-module.rs b/tests/rustdoc/inline_cross/renamed-via-module.rs
index 1f6a9cff8ce..bdaf2cf1f62 100644
--- a/tests/rustdoc/inline_cross/renamed-via-module.rs
+++ b/tests/rustdoc/inline_cross/renamed-via-module.rs
@@ -6,19 +6,19 @@
 
 extern crate foo;
 
-// @has foo/iter/index.html
-// @has - '//a/[@href="struct.DeprecatedStepBy.html"]' "DeprecatedStepBy"
-// @has - '//a/[@href="struct.StepBy.html"]' "StepBy"
-// @has foo/iter/struct.DeprecatedStepBy.html
-// @has - '//h1' "Struct foo::iter::DeprecatedStepBy"
-// @has foo/iter/struct.StepBy.html
-// @has - '//h1' "Struct foo::iter::StepBy"
+//@ has foo/iter/index.html
+//@ has - '//a/[@href="struct.DeprecatedStepBy.html"]' "DeprecatedStepBy"
+//@ has - '//a/[@href="struct.StepBy.html"]' "StepBy"
+//@ has foo/iter/struct.DeprecatedStepBy.html
+//@ has - '//h1' "Struct foo::iter::DeprecatedStepBy"
+//@ has foo/iter/struct.StepBy.html
+//@ has - '//h1' "Struct foo::iter::StepBy"
 
-// @has bar/iter/index.html
-// @has - '//a/[@href="struct.DeprecatedStepBy.html"]' "DeprecatedStepBy"
-// @has - '//a/[@href="struct.StepBy.html"]' "StepBy"
-// @has bar/iter/struct.DeprecatedStepBy.html
-// @has - '//h1' "Struct bar::iter::DeprecatedStepBy"
-// @has bar/iter/struct.StepBy.html
-// @has - '//h1' "Struct bar::iter::StepBy"
+//@ has bar/iter/index.html
+//@ has - '//a/[@href="struct.DeprecatedStepBy.html"]' "DeprecatedStepBy"
+//@ has - '//a/[@href="struct.StepBy.html"]' "StepBy"
+//@ has bar/iter/struct.DeprecatedStepBy.html
+//@ has - '//h1' "Struct bar::iter::DeprecatedStepBy"
+//@ has bar/iter/struct.StepBy.html
+//@ has - '//h1' "Struct bar::iter::StepBy"
 pub use foo::iter;
diff --git a/tests/rustdoc/inline_cross/repr.rs b/tests/rustdoc/inline_cross/repr.rs
index 1d63bd1d7cb..d13e560b8d7 100644
--- a/tests/rustdoc/inline_cross/repr.rs
+++ b/tests/rustdoc/inline_cross/repr.rs
@@ -7,34 +7,34 @@
 
 extern crate repr;
 
-// @has 'foo/struct.ReprC.html'
-// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(C, align(8))]'
+//@ has 'foo/struct.ReprC.html'
+//@ has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(C, align(8))]'
 pub use repr::ReprC;
-// @has 'foo/struct.ReprSimd.html'
-// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(simd, packed(2))]'
+//@ has 'foo/struct.ReprSimd.html'
+//@ has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(simd, packed(2))]'
 pub use repr::ReprSimd;
-// @has 'foo/struct.ReprTransparent.html'
-// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
+//@ has 'foo/struct.ReprTransparent.html'
+//@ has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
 pub use repr::ReprTransparent;
-// @has 'foo/enum.ReprIsize.html'
-// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(isize)]'
+//@ has 'foo/enum.ReprIsize.html'
+//@ has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(isize)]'
 pub use repr::ReprIsize;
-// @has 'foo/enum.ReprU8.html'
-// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(u8)]'
+//@ has 'foo/enum.ReprU8.html'
+//@ has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(u8)]'
 pub use repr::ReprU8;
 
 // Regression test for <https://github.com/rust-lang/rust/issues/90435>.
 // Check that we show `#[repr(transparent)]` iff the non-1-ZST field is public or at least one
 // field is public in case all fields are 1-ZST fields.
 
-// @has 'foo/struct.ReprTransparentPrivField.html'
-// @!has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
+//@ has 'foo/struct.ReprTransparentPrivField.html'
+//@ !has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
 pub use repr::ReprTransparentPrivField;
 
-// @has 'foo/struct.ReprTransparentPriv1ZstFields.html'
-// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
+//@ has 'foo/struct.ReprTransparentPriv1ZstFields.html'
+//@ has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
 pub use repr::ReprTransparentPriv1ZstFields;
 
-// @has 'foo/struct.ReprTransparentPrivFieldPub1ZstFields.html'
-// @!has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
+//@ has 'foo/struct.ReprTransparentPrivFieldPub1ZstFields.html'
+//@ !has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(transparent)]'
 pub use repr::ReprTransparentPrivFieldPub1ZstFields;
diff --git a/tests/rustdoc/inline_cross/ret-pos-impl-trait-in-trait.rs b/tests/rustdoc/inline_cross/ret-pos-impl-trait-in-trait.rs
index 1292e7c74ed..fba39ca8358 100644
--- a/tests/rustdoc/inline_cross/ret-pos-impl-trait-in-trait.rs
+++ b/tests/rustdoc/inline_cross/ret-pos-impl-trait-in-trait.rs
@@ -7,29 +7,29 @@
 // their desugaring. We count the number of associated items and ensure that it is exactly one.
 // This is more robust than checking for the absence of the associated type.
 
-// @has user/trait.Trait.html
-// @has - '//*[@id="method.create"]' 'fn create() -> impl Iterator<Item = u64>'
+//@ has user/trait.Trait.html
+//@ has - '//*[@id="method.create"]' 'fn create() -> impl Iterator<Item = u64>'
 // The class "method" is used for all three kinds of associated items at the time of writing.
-// @count - '//*[@id="main-content"]//section[@class="method"]' 1
+//@ count - '//*[@id="main-content"]//section[@class="method"]' 1
 pub use rpitit::Trait;
 
-// @has user/struct.Basic.html
-// @has - '//*[@id="method.create"]' 'fn create() -> impl Iterator<Item = u64>'
-// @count - '//*[@id="trait-implementations-list"]//*[@class="impl-items"]' 1
+//@ has user/struct.Basic.html
+//@ has - '//*[@id="method.create"]' 'fn create() -> impl Iterator<Item = u64>'
+//@ count - '//*[@id="trait-implementations-list"]//*[@class="impl-items"]' 1
 pub use rpitit::Basic;
 
-// @has user/struct.Intermediate.html
-// @has - '//*[@id="method.create"]' 'fn create() -> Range<u64>'
-// @count - '//*[@id="trait-implementations-list"]//*[@class="impl-items"]' 1
+//@ has user/struct.Intermediate.html
+//@ has - '//*[@id="method.create"]' 'fn create() -> Range<u64>'
+//@ count - '//*[@id="trait-implementations-list"]//*[@class="impl-items"]' 1
 pub use rpitit::Intermediate;
 
-// @has user/struct.Advanced.html
-// @has - '//*[@id="method.create"]' 'fn create() -> impl Iterator<Item = u64>'
-// @count - '//*[@id="trait-implementations-list"]//*[@class="impl-items"]' 1
+//@ has user/struct.Advanced.html
+//@ has - '//*[@id="method.create"]' 'fn create() -> impl Iterator<Item = u64>'
+//@ count - '//*[@id="trait-implementations-list"]//*[@class="impl-items"]' 1
 pub use rpitit::Advanced;
 
 // Regression test for issue #113929:
 
-// @has user/trait.Def.html
-// @has - '//*[@id="method.def"]' 'fn def<T>() -> impl Default'
+//@ has user/trait.Def.html
+//@ has - '//*[@id="method.def"]' 'fn def<T>() -> impl Default'
 pub use rpitit::Def;
diff --git a/tests/rustdoc/inline_cross/sugar-closure-crate-21801.rs b/tests/rustdoc/inline_cross/sugar-closure-crate-21801.rs
index a00dcaf409b..0cd400c03ec 100644
--- a/tests/rustdoc/inline_cross/sugar-closure-crate-21801.rs
+++ b/tests/rustdoc/inline_cross/sugar-closure-crate-21801.rs
@@ -6,7 +6,7 @@
 
 extern crate issue_21801;
 
-// @has issue_21801/struct.Foo.html
-// @has - '//*[@id="method.new"]' \
+//@ has issue_21801/struct.Foo.html
+//@ has - '//*[@id="method.new"]' \
 //        'fn new<F>(f: F) -> Foowhere F: FnMut() -> i32'
 pub use issue_21801::Foo;
diff --git a/tests/rustdoc/inline_cross/trait-vis.rs b/tests/rustdoc/inline_cross/trait-vis.rs
index fc992ab3110..1fae6305b04 100644
--- a/tests/rustdoc/inline_cross/trait-vis.rs
+++ b/tests/rustdoc/inline_cross/trait-vis.rs
@@ -2,6 +2,6 @@
 
 extern crate inner;
 
-// @has trait_vis/struct.SomeStruct.html
-// @has - '//h3[@class="code-header"]' 'impl Clone for SomeStruct'
+//@ has trait_vis/struct.SomeStruct.html
+//@ has - '//h3[@class="code-header"]' 'impl Clone for SomeStruct'
 pub use inner::SomeStruct;
diff --git a/tests/rustdoc/inline_cross/use_crate.rs b/tests/rustdoc/inline_cross/use_crate.rs
index 38cbcfa6b84..fdbc41c0bb0 100644
--- a/tests/rustdoc/inline_cross/use_crate.rs
+++ b/tests/rustdoc/inline_cross/use_crate.rs
@@ -10,18 +10,18 @@
 
 #![crate_name = "local"]
 
-// @!has-dir local/use_crate
-// @has local/index.html
-// @has - '//code' 'pub use use_crate'
+//@ !has-dir local/use_crate
+//@ has local/index.html
+//@ has - '//code' 'pub use use_crate'
 pub use use_crate;
 
-// @has-dir local/asdf
-// @has local/asdf/index.html
-// @has local/index.html '//a/@href' 'asdf/index.html'
+//@ has-dir local/asdf
+//@ has local/asdf/index.html
+//@ has local/index.html '//a/@href' 'asdf/index.html'
 pub use use_crate::asdf;
 
-// @has-dir local/use_crate_2
-// @has local/use_crate_2/index.html
-// @has local/index.html '//a/@href' 'use_crate_2/index.html'
+//@ has-dir local/use_crate_2
+//@ has local/use_crate_2/index.html
+//@ has local/index.html '//a/@href' 'use_crate_2/index.html'
 #[doc(inline)]
 pub use use_crate_2;