Add tests for new tyalias intra-doc link disambiguator
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
// Ensure that no warning is emitted if the disambiguator is used for type alias.
|
||||
// Regression test for <https://github.com/rust-lang/rust/issues/146855>.
|
||||
|
||||
#![deny(rustdoc::broken_intra_doc_links)]
|
||||
|
||||
pub struct Foo;
|
||||
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type f32 = Foo;
|
||||
|
||||
/// This function returns [`f32`].
|
||||
//~^ ERROR: `f32` is both a type alias and a primitive type
|
||||
//~| HELP: to link to the type alias, prefix with `tyalias@`
|
||||
//~| HELP: to link to the primitive type, prefix with `prim@`
|
||||
pub fn my_fn() -> f32 {}
|
||||
|
||||
/// This function returns [type@f32].
|
||||
//~^ ERROR: `f32` is both a type alias and a primitive type
|
||||
//~| HELP: to link to the type alias, prefix with `tyalias@`
|
||||
//~| HELP: to link to the primitive type, prefix with `prim@`
|
||||
pub fn my_fn2() -> f32 {}
|
||||
@@ -0,0 +1,39 @@
|
||||
error: `f32` is both a type alias and a primitive type
|
||||
--> $DIR/type-alias-primitive-suggestion.rs:11:29
|
||||
|
|
||||
LL | /// This function returns [`f32`].
|
||||
| ^^^ ambiguous link
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/type-alias-primitive-suggestion.rs:4:9
|
||||
|
|
||||
LL | #![deny(rustdoc::broken_intra_doc_links)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
help: to link to the type alias, prefix with `tyalias@`
|
||||
|
|
||||
LL | /// This function returns [`tyalias@f32`].
|
||||
| ++++++++
|
||||
help: to link to the primitive type, prefix with `prim@`
|
||||
|
|
||||
LL | /// This function returns [`prim@f32`].
|
||||
| +++++
|
||||
|
||||
error: `f32` is both a type alias and a primitive type
|
||||
--> $DIR/type-alias-primitive-suggestion.rs:17:28
|
||||
|
|
||||
LL | /// This function returns [type@f32].
|
||||
| ^^^^^^^^ ambiguous link
|
||||
|
|
||||
help: to link to the type alias, prefix with `tyalias@`
|
||||
|
|
||||
LL - /// This function returns [type@f32].
|
||||
LL + /// This function returns [tyalias@f32].
|
||||
|
|
||||
help: to link to the primitive type, prefix with `prim@`
|
||||
|
|
||||
LL - /// This function returns [type@f32].
|
||||
LL + /// This function returns [prim@f32].
|
||||
|
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
14
tests/rustdoc-ui/intra-doc/type-alias-primitive.rs
Normal file
14
tests/rustdoc-ui/intra-doc/type-alias-primitive.rs
Normal file
@@ -0,0 +1,14 @@
|
||||
// Ensure that no warning is emitted if the disambiguator is used for type alias.
|
||||
// Regression test for <https://github.com/rust-lang/rust/issues/146855>.
|
||||
|
||||
//@ check-pass
|
||||
|
||||
#![deny(rustdoc::broken_intra_doc_links)]
|
||||
|
||||
pub struct Foo;
|
||||
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type f32 = Foo;
|
||||
|
||||
/// This function returns [`tyalias@f32`] and not [`prim@f32`].
|
||||
pub fn my_fn() -> f32 {}
|
||||
21
tests/rustdoc/intra-doc/type-alias-primitive.rs
Normal file
21
tests/rustdoc/intra-doc/type-alias-primitive.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
// Ensure that no warning is emitted if the disambiguator is used for type alias.
|
||||
// Regression test for <https://github.com/rust-lang/rust/issues/146855>.
|
||||
|
||||
#![crate_name = "foo"]
|
||||
#![deny(rustdoc::broken_intra_doc_links)]
|
||||
|
||||
pub struct Foo;
|
||||
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type f32 = Foo;
|
||||
|
||||
/// This function returns [`tyalias@f32`] and not [bla][`prim@f32`].
|
||||
//@ has 'foo/fn.my_fn.html'
|
||||
//@ has - '//a[@href="type.f32.html"]' "f32"
|
||||
//@ has - '//a[@href="{{channel}}/std/primitive.f32.html"]' "bla"
|
||||
pub fn my_fn() -> f32 { 0. }
|
||||
|
||||
/// This function returns [`typealias@f32`].
|
||||
//@ has 'foo/fn.my_other_fn.html'
|
||||
//@ has - '//a[@href="type.f32.html"]' "f32"
|
||||
pub fn my_other_fn() -> f32 { 0. }
|
||||
Reference in New Issue
Block a user