Add tests for new tyalias intra-doc link disambiguator

This commit is contained in:
Guillaume Gomez
2025-09-25 15:25:51 +02:00
parent 7a2c173033
commit dba45cde68
4 changed files with 95 additions and 0 deletions

View 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>.
#![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 {}

View File

@@ -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

View 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 {}

View 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. }