diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-03-22 19:31:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-22 19:31:25 +0100 |
| commit | 28644cd9fafe92fb8ce14e15cada77b9757afc1a (patch) | |
| tree | e3d704f8972de4bd383f866b9e0c43076b476115 | |
| parent | 5a0e4510a805aa7feb93f7a34000be7d5d9a6249 (diff) | |
| parent | 37789c4a1d6e46af2ef619f5640c05764b875dbb (diff) | |
| download | rust-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.rs | 13 |
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>, } |
