diff options
author | Dawer <[email protected]> | 2021-05-06 15:39:27 +0100 |
---|---|---|
committer | Dawer <[email protected]> | 2021-05-31 20:03:47 +0100 |
commit | cf6f989a8d638b76ec7e14d00f7ed095b20ffed6 (patch) | |
tree | 52c47f879dd977dae318c4719d5b3846639f4f1c /crates/hir_ty/src/diagnostics/pattern | |
parent | d6d77e8a35cb2ac63b877f73bdf0ea6e6a1578e4 (diff) |
Lower bool literals
Diffstat (limited to 'crates/hir_ty/src/diagnostics/pattern')
-rw-r--r-- | crates/hir_ty/src/diagnostics/pattern/deconstruct_pat.rs | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/crates/hir_ty/src/diagnostics/pattern/deconstruct_pat.rs b/crates/hir_ty/src/diagnostics/pattern/deconstruct_pat.rs index 1319745ce..91b9c7184 100644 --- a/crates/hir_ty/src/diagnostics/pattern/deconstruct_pat.rs +++ b/crates/hir_ty/src/diagnostics/pattern/deconstruct_pat.rs | |||
@@ -275,14 +275,8 @@ impl Constructor { | |||
275 | PatKind::Binding { .. } | PatKind::Wild => Wildcard, | 275 | PatKind::Binding { .. } | PatKind::Wild => Wildcard, |
276 | PatKind::Leaf { .. } | PatKind::Deref { .. } => Single, | 276 | PatKind::Leaf { .. } | PatKind::Deref { .. } => Single, |
277 | &PatKind::Variant { enum_variant, .. } => Variant(enum_variant), | 277 | &PatKind::Variant { enum_variant, .. } => Variant(enum_variant), |
278 | 278 | &PatKind::LiteralBool { value } => IntRange(IntRange::from_bool(value)), | |
279 | //Todo | ||
280 | // &Pat::Lit(expr_id) => match cx.body[expr_id] { | ||
281 | // Expr::Literal(Literal::Bool(val)) => IntRange(IntRange::from_bool(val)), | ||
282 | // _ => todo!(), | ||
283 | // }, | ||
284 | PatKind::Or { .. } => panic!("bug: Or-pattern should have been expanded earlier on."), | 279 | PatKind::Or { .. } => panic!("bug: Or-pattern should have been expanded earlier on."), |
285 | pat => todo!("Constructor::from_pat {:?}", pat), | ||
286 | } | 280 | } |
287 | } | 281 | } |
288 | 282 | ||
@@ -690,7 +684,7 @@ impl Fields { | |||
690 | let mut subpatterns = | 684 | let mut subpatterns = |
691 | subpatterns_and_indices.iter().map(|&(_, p)| pcx.cx.pattern_arena.borrow()[p].clone()); | 685 | subpatterns_and_indices.iter().map(|&(_, p)| pcx.cx.pattern_arena.borrow()[p].clone()); |
692 | // FIXME(iDawer) witnesses are not yet used | 686 | // FIXME(iDawer) witnesses are not yet used |
693 | const UNIMPLEMENTED: PatKind = PatKind::Wild; | 687 | const UNHANDLED: PatKind = PatKind::Wild; |
694 | 688 | ||
695 | let pat = match ctor { | 689 | let pat = match ctor { |
696 | Single | Variant(_) => match pcx.ty.kind(&Interner) { | 690 | Single | Variant(_) => match pcx.ty.kind(&Interner) { |
@@ -728,10 +722,10 @@ impl Fields { | |||
728 | } | 722 | } |
729 | _ => PatKind::Wild, | 723 | _ => PatKind::Wild, |
730 | }, | 724 | }, |
731 | Constructor::Slice(slice) => UNIMPLEMENTED, | 725 | Constructor::Slice(slice) => UNHANDLED, |
732 | Str(_) => UNIMPLEMENTED, | 726 | Str(_) => UNHANDLED, |
733 | FloatRange(..) => UNIMPLEMENTED, | 727 | FloatRange(..) => UNHANDLED, |
734 | Constructor::IntRange(_) => UNIMPLEMENTED, | 728 | Constructor::IntRange(_) => UNHANDLED, |
735 | NonExhaustive => PatKind::Wild, | 729 | NonExhaustive => PatKind::Wild, |
736 | Wildcard => return Pat::wildcard_from_ty(pcx.ty), | 730 | Wildcard => return Pat::wildcard_from_ty(pcx.ty), |
737 | Opaque => panic!("bug: we should not try to apply an opaque constructor"), | 731 | Opaque => panic!("bug: we should not try to apply an opaque constructor"), |
@@ -855,7 +849,10 @@ impl Fields { | |||
855 | self.replace_with_fieldpats(subpatterns) | 849 | self.replace_with_fieldpats(subpatterns) |
856 | } | 850 | } |
857 | 851 | ||
858 | PatKind::Wild | PatKind::Binding { .. } | PatKind::Or { .. } => self.clone(), | 852 | PatKind::Wild |
853 | | PatKind::Binding { .. } | ||
854 | | PatKind::LiteralBool { .. } | ||
855 | | PatKind::Or { .. } => self.clone(), | ||
859 | } | 856 | } |
860 | } | 857 | } |
861 | } | 858 | } |