about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-03-22 19:31:25 +0100
committerGitHub <noreply@github.com>2019-03-22 19:31:25 +0100
commit28644cd9fafe92fb8ce14e15cada77b9757afc1a (patch)
treee3d704f8972de4bd383f866b9e0c43076b476115
parent5a0e4510a805aa7feb93f7a34000be7d5d9a6249 (diff)
parent37789c4a1d6e46af2ef619f5640c05764b875dbb (diff)
downloadrust-28644cd9fafe92fb8ce14e15cada77b9757afc1a.tar.gz
rust-28644cd9fafe92fb8ce14e15cada77b9757afc1a.zip
Rollup merge of #59273 - llogiq:hir-docs, r=matthewjasper
some small HIR doc improvements
-rw-r--r--src/librustc/hir/mod.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs
index 51d91cc562f..5edddb3b38b 100644
--- a/src/librustc/hir/mod.rs
+++ b/src/librustc/hir/mod.rs
@@ -816,6 +816,9 @@ pub struct MacroDef {
     pub legacy: bool,
 }
 
+/// A block of statements `{ .. }`, which may have a label (in this case the
+/// `targeted_by_break` field will be `true`) and may be `unsafe` by means of
+/// the `rules` being anything but `DefaultBlock`.
 #[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable)]
 pub struct Block {
     /// Statements in a block.
@@ -1178,6 +1181,7 @@ impl fmt::Debug for Stmt {
     }
 }
 
+/// The contents of a statement.
 #[derive(Clone, RustcEncodable, RustcDecodable, HashStable)]
 pub enum StmtKind {
     /// A local (`let`) binding.
@@ -1208,21 +1212,28 @@ impl StmtKind {
 #[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable)]
 pub struct Local {
     pub pat: P<Pat>,
+    /// Type annotation, if any (otherwise the type will be inferred).
     pub ty: Option<P<Ty>>,
     /// Initializer expression to set the value, if any.
     pub init: Option<P<Expr>>,
     pub hir_id: HirId,
     pub span: Span,
     pub attrs: ThinVec<Attribute>,
+    /// Can be `ForLoopDesugar` if the `let` statement is part of a `for` loop
+    /// desugaring. Otherwise will be `Normal`.
     pub source: LocalSource,
 }
 
-/// Represents a single arm of a `match` expression.
+/// Represents a single arm of a `match` expression, e.g.
+/// `<pats> (if <guard>) => <body>`.
 #[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable)]
 pub struct Arm {
     pub attrs: HirVec<Attribute>,
+    /// Multiple patterns can be combined with `|`
     pub pats: HirVec<P<Pat>>,
+    /// Optional guard clause.
     pub guard: Option<Guard>,
+    /// The expression the arm evaluates to if this arm matches.
     pub body: P<Expr>,
 }