Give precedence to primitives over modules
This has less surprising behavior when there is a module with the same name as a primitive in scope.
This commit is contained in:
parent
3f091baba4
commit
b11e2f2341
@ -217,9 +217,11 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> {
|
||||
return Ok((res, Some(path_str.to_owned())));
|
||||
}
|
||||
Res::Def(DefKind::Mod, _) => {
|
||||
// This resolved to a module, but if we were passed `type@`,
|
||||
// we want primitive types to take precedence instead.
|
||||
if disambiguator == Some(Disambiguator::Namespace(Namespace::TypeNS)) {
|
||||
// This resolved to a module, but we want primitive types to take precedence instead.
|
||||
if matches!(
|
||||
disambiguator,
|
||||
None | Some(Disambiguator::Namespace(Namespace::TypeNS))
|
||||
) {
|
||||
if let Some(prim) = is_primitive(path_str, ns) {
|
||||
if extra_fragment.is_some() {
|
||||
return Err(ErrorKind::AnchorFailure(AnchorFailure::Primitive));
|
||||
|
@ -8,5 +8,10 @@ pub mod char {}
|
||||
pub struct MyString;
|
||||
|
||||
/// See also [char]
|
||||
// @has intra_link_prim_precedence/struct.MyString2.html '//a/@href' 'intra_link_prim_precedence/char/index.html'
|
||||
// @has intra_link_prim_precedence/struct.MyString2.html '//a/@href' 'https://doc.rust-lang.org/nightly/std/primitive.char.html'
|
||||
pub struct MyString2;
|
||||
|
||||
/// See also [crate::char] and [mod@char]
|
||||
// @has intra_link_prim_precedence/struct.MyString3.html '//*[@href="../intra_link_prim_precedence/char/index.html"]' 'crate::char'
|
||||
// @has - '//*[@href="../intra_link_prim_precedence/char/index.html"]' 'mod@char'
|
||||
pub struct MyString3;
|
||||
|
Loading…
Reference in New Issue
Block a user