about summary refs log tree commit diff
path: root/compiler/rustc_hir/src/hir.rs
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2025-04-28 06:33:22 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2025-05-02 15:53:39 +1000
commit0ea204a5ff39564b51bf9710c45ead44f9796c28 (patch)
treeacecc4717739e617760ccc00ad14593588a2ef96 /compiler/rustc_hir/src/hir.rs
parent251cda5e1f0057eb04fd9fc1653f2f1e010e8f97 (diff)
downloadrust-0ea204a5ff39564b51bf9710c45ead44f9796c28.tar.gz
rust-0ea204a5ff39564b51bf9710c45ead44f9796c28.zip
Add useful comments on `ExprKind::If` variants.
Things that aren't obvious and took me a while to work out.
Diffstat (limited to 'compiler/rustc_hir/src/hir.rs')
-rw-r--r--compiler/rustc_hir/src/hir.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_hir/src/hir.rs b/compiler/rustc_hir/src/hir.rs
index af587ee5bdc..0e6b21588ee 100644
--- a/compiler/rustc_hir/src/hir.rs
+++ b/compiler/rustc_hir/src/hir.rs
@@ -2730,6 +2730,9 @@ pub enum ExprKind<'hir> {
     /// An `if` block, with an optional else block.
     ///
     /// I.e., `if <expr> { <expr> } else { <expr> }`.
+    ///
+    /// The "then" expr is always `ExprKind::Block`. If present, the "else" expr is always
+    /// `ExprKind::Block` (for `else`) or `ExprKind::If` (for `else if`).
     If(&'hir Expr<'hir>, &'hir Expr<'hir>, Option<&'hir Expr<'hir>>),
     /// A conditionless loop (can be exited with `break`, `continue`, or `return`).
     ///