diff options
| author | bors <bors@rust-lang.org> | 2019-05-10 22:58:52 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-05-10 22:58:52 +0000 |
| commit | acc7e652f874bd7d6cb008d35663d9a0e250d8a7 (patch) | |
| tree | eaae830f43ac87c079168415e8c99e605912d2dc /src/libsyntax_pos | |
| parent | d595b113584f8f446957469951fd5d31adc2a44e (diff) | |
| parent | f9cc5a65d24270fac44a7ccf709d7a7efd7b525d (diff) | |
| download | rust-acc7e652f874bd7d6cb008d35663d9a0e250d8a7.tar.gz rust-acc7e652f874bd7d6cb008d35663d9a0e250d8a7.zip | |
Auto merge of #59288 - Centril:hir-if-to-match, r=oli-obk
[let_chains, 1/6] Remove hir::ExprKind::If Per https://github.com/rust-lang/rust/issues/53667#issuecomment-471583239. r? @oli-obk
Diffstat (limited to 'src/libsyntax_pos')
| -rw-r--r-- | src/libsyntax_pos/hygiene.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libsyntax_pos/hygiene.rs b/src/libsyntax_pos/hygiene.rs index a901afdff43..1d9dc26bf60 100644 --- a/src/libsyntax_pos/hygiene.rs +++ b/src/libsyntax_pos/hygiene.rs @@ -591,6 +591,10 @@ impl ExpnFormat { /// The kind of compiler desugaring. #[derive(Clone, Copy, Hash, Debug, PartialEq, Eq, RustcEncodable, RustcDecodable)] pub enum CompilerDesugaringKind { + /// We desugar `if c { i } else { e }` to `match $ExprKind::Use(c) { true => i, _ => e }`. + /// However, we do not want to blame `c` for unreachability but rather say that `i` + /// is unreachable. This desugaring kind allows us to avoid blaming `c`. + IfTemporary, QuestionMark, TryBlock, /// Desugaring of an `impl Trait` in return type position @@ -605,6 +609,7 @@ pub enum CompilerDesugaringKind { impl CompilerDesugaringKind { pub fn name(self) -> Symbol { Symbol::intern(match self { + CompilerDesugaringKind::IfTemporary => "if", CompilerDesugaringKind::Async => "async", CompilerDesugaringKind::Await => "await", CompilerDesugaringKind::QuestionMark => "?", |
