about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorBoxy <rust@boxyuwu.dev>2025-06-25 12:29:04 +0100
committerBoxy <rust@boxyuwu.dev>2025-06-25 12:29:04 +0100
commitfa5895ea8c39cb2d8f7078ccd4e78a41aeb2eb84 (patch)
tree3958013278832a9beceb7f7d9402ea838df592d0 /compiler
parent2411fbaa49f8c10d0fc8bc1a41d39d0df2f73f0f (diff)
downloadrust-fa5895ea8c39cb2d8f7078ccd4e78a41aeb2eb84.tar.gz
rust-fa5895ea8c39cb2d8f7078ccd4e78a41aeb2eb84.zip
Reviews
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_hir/src/hir.rs27
-rw-r--r--compiler/rustc_hir/src/intravisit.rs20
2 files changed, 6 insertions, 41 deletions
diff --git a/compiler/rustc_hir/src/hir.rs b/compiler/rustc_hir/src/hir.rs
index bd59ad613d6..380120ecfe2 100644
--- a/compiler/rustc_hir/src/hir.rs
+++ b/compiler/rustc_hir/src/hir.rs
@@ -408,7 +408,7 @@ impl<'hir> PathSegment<'hir> {
 /// versus const args that are literals or have arbitrary computations (e.g., `{ 1 + 3 }`).
 ///
 /// For an explanation of the `Unambig` generic parameter see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
+/// <https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html>
 #[derive(Clone, Copy, Debug, HashStable_Generic)]
 #[repr(C)]
 pub struct ConstArg<'hir, Unambig = ()> {
@@ -420,16 +420,13 @@ pub struct ConstArg<'hir, Unambig = ()> {
 impl<'hir> ConstArg<'hir, AmbigArg> {
     /// Converts a `ConstArg` in an ambiguous position to one in an unambiguous position.
     ///
-    /// Functions accepting an unambiguous consts may expect the [`ConstArgKind::Infer`] variant
+    /// Functions accepting unambiguous consts may expect the [`ConstArgKind::Infer`] variant
     /// to be used. Care should be taken to separately handle infer consts when calling this
     /// function as it cannot be handled by downstream code making use of the returned const.
     ///
     /// In practice this may mean overriding the [`Visitor::visit_infer`][visit_infer] method on hir visitors, or
     /// specifically matching on [`GenericArg::Infer`] when handling generic arguments.
     ///
-    /// For an explanation of what it means for a const arg to be ambig or unambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
-    ///
     /// [visit_infer]: [rustc_hir::intravisit::Visitor::visit_infer]
     pub fn as_unambig_ct(&self) -> &ConstArg<'hir> {
         // SAFETY: `ConstArg` is `repr(C)` and `ConstArgKind` is marked `repr(u8)` so that the
@@ -445,9 +442,6 @@ impl<'hir> ConstArg<'hir> {
     ///
     /// Functions accepting ambiguous consts will not handle the [`ConstArgKind::Infer`] variant, if
     /// infer consts are relevant to you then care should be taken to handle them separately.
-    ///
-    /// For an explanation of what it means for a const arg to be ambig or unambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
     pub fn try_as_ambig_ct(&self) -> Option<&ConstArg<'hir, AmbigArg>> {
         if let ConstArgKind::Infer(_, ()) = self.kind {
             return None;
@@ -479,9 +473,6 @@ impl<'hir, Unambig> ConstArg<'hir, Unambig> {
 }
 
 /// See [`ConstArg`].
-///
-/// For an explanation of the `Unambig` generic parameter see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
 #[derive(Clone, Copy, Debug, HashStable_Generic)]
 #[repr(u8, C)]
 pub enum ConstArgKind<'hir, Unambig = ()> {
@@ -3305,12 +3296,12 @@ impl<'hir> AssocItemConstraintKind<'hir> {
 #[derive(Debug, Clone, Copy, HashStable_Generic)]
 pub enum AmbigArg {}
 
-#[derive(Debug, Clone, Copy, HashStable_Generic)]
-#[repr(C)]
 /// Represents a type in the `HIR`.
 ///
 /// For an explanation of the `Unambig` generic parameter see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
+/// <https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html>
+#[derive(Debug, Clone, Copy, HashStable_Generic)]
+#[repr(C)]
 pub struct Ty<'hir, Unambig = ()> {
     #[stable_hasher(ignore)]
     pub hir_id: HirId,
@@ -3328,9 +3319,6 @@ impl<'hir> Ty<'hir, AmbigArg> {
     /// In practice this may mean overriding the [`Visitor::visit_infer`][visit_infer] method on hir visitors, or
     /// specifically matching on [`GenericArg::Infer`] when handling generic arguments.
     ///
-    /// For an explanation of what it means for a type to be ambig or unambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
-    ///
     /// [visit_infer]: [rustc_hir::intravisit::Visitor::visit_infer]
     pub fn as_unambig_ty(&self) -> &Ty<'hir> {
         // SAFETY: `Ty` is `repr(C)` and `TyKind` is marked `repr(u8)` so that the layout is
@@ -3346,9 +3334,6 @@ impl<'hir> Ty<'hir> {
     ///
     /// Functions accepting ambiguous types will not handle the [`TyKind::Infer`] variant, if
     /// infer types are relevant to you then care should be taken to handle them separately.
-    ///
-    /// For an explanation of what it means for a type to be ambig or unambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
     pub fn try_as_ambig_ty(&self) -> Option<&Ty<'hir, AmbigArg>> {
         if let TyKind::Infer(()) = self.kind {
             return None;
@@ -3653,7 +3638,7 @@ pub enum InferDelegationKind {
 /// The various kinds of types recognized by the compiler.
 ///
 /// For an explanation of the `Unambig` generic parameter see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
+/// <https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html>
 // SAFETY: `repr(u8)` is required so that `TyKind<()>` and `TyKind<!>` are layout compatible
 #[repr(u8, C)]
 #[derive(Debug, Clone, Copy, HashStable_Generic)]
diff --git a/compiler/rustc_hir/src/intravisit.rs b/compiler/rustc_hir/src/intravisit.rs
index 95fee05a71b..aa96ff1eb1a 100644
--- a/compiler/rustc_hir/src/intravisit.rs
+++ b/compiler/rustc_hir/src/intravisit.rs
@@ -364,9 +364,6 @@ pub trait Visitor<'v>: Sized {
     /// All types are treated as ambiguous types for the purposes of hir visiting in
     /// order to ensure that visitors can handle infer vars without it being too error-prone.
     ///
-    /// For an explanation of what it means for a type to be ambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
-    ///
     /// The [`Visitor::visit_infer`] method should be overridden in order to handle infer vars.
     fn visit_ty(&mut self, t: &'v Ty<'v, AmbigArg>) -> Self::Result {
         walk_ty(self, t)
@@ -375,9 +372,6 @@ pub trait Visitor<'v>: Sized {
     /// All consts are treated as ambiguous consts for the purposes of hir visiting in
     /// order to ensure that visitors can handle infer vars without it being too error-prone.
     ///
-    /// For an explanation of what it means for a const arg to be ambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
-    ///
     /// The [`Visitor::visit_infer`] method should be overridden in order to handle infer vars.
     fn visit_const_arg(&mut self, c: &'v ConstArg<'v, AmbigArg>) -> Self::Result {
         walk_const_arg(self, c)
@@ -516,9 +510,6 @@ pub trait VisitorExt<'v>: Visitor<'v> {
     ///
     /// Named `visit_ty_unambig` instead of `visit_unambig_ty` to aid in discovery
     /// by IDes when `v.visit_ty` is written.
-    ///
-    /// For an explanation of what it means for a type to be unambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
     fn visit_ty_unambig(&mut self, t: &'v Ty<'v>) -> Self::Result {
         walk_unambig_ty(self, t)
     }
@@ -527,9 +518,6 @@ pub trait VisitorExt<'v>: Visitor<'v> {
     ///
     /// Named `visit_const_arg_unambig` instead of `visit_unambig_const_arg` to aid in
     /// discovery by IDes when `v.visit_const_arg` is written.
-    ///
-    /// For an explanation of what it means for a const arg to be unambig, see the dev-guide:
-    /// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
     fn visit_const_arg_unambig(&mut self, c: &'v ConstArg<'v>) -> Self::Result {
         walk_unambig_const_arg(self, c)
     }
@@ -981,8 +969,6 @@ pub fn walk_generic_arg<'v, V: Visitor<'v>>(
     }
 }
 
-/// For an explanation of what it means for a type to be unambig, see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
 pub fn walk_unambig_ty<'v, V: Visitor<'v>>(visitor: &mut V, typ: &'v Ty<'v>) -> V::Result {
     match typ.try_as_ambig_ty() {
         Some(ambig_ty) => visitor.visit_ty(ambig_ty),
@@ -993,8 +979,6 @@ pub fn walk_unambig_ty<'v, V: Visitor<'v>>(visitor: &mut V, typ: &'v Ty<'v>) ->
     }
 }
 
-/// For an explanation of what it means for a type to be ambig, see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
 pub fn walk_ty<'v, V: Visitor<'v>>(visitor: &mut V, typ: &'v Ty<'v, AmbigArg>) -> V::Result {
     let Ty { hir_id, span: _, kind } = typ;
     try_visit!(visitor.visit_id(*hir_id));
@@ -1047,8 +1031,6 @@ pub fn walk_ty<'v, V: Visitor<'v>>(visitor: &mut V, typ: &'v Ty<'v, AmbigArg>) -
     V::Result::output()
 }
 
-/// For an explanation of what it means for a const arg to be unambig, see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
 pub fn walk_unambig_const_arg<'v, V: Visitor<'v>>(
     visitor: &mut V,
     const_arg: &'v ConstArg<'v>,
@@ -1062,8 +1044,6 @@ pub fn walk_unambig_const_arg<'v, V: Visitor<'v>>(
     }
 }
 
-/// For an explanation of what it means for a const arg to be ambig, see the dev-guide:
-/// https://rustc-dev-guide.rust-lang.org/hir/ambig-unambig-ty-and-consts.html
 pub fn walk_const_arg<'v, V: Visitor<'v>>(
     visitor: &mut V,
     const_arg: &'v ConstArg<'v, AmbigArg>,