From c377ed606c1abfb240321f26cade940946c768e6 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 2 Feb 2020 09:23:47 +0900 Subject: [PATCH] Fix ICE with save-analysis --- src/librustc_save_analysis/dump_visitor.rs | 4 ++-- src/test/ui/issues/issue-26459.rs | 2 ++ src/test/ui/issues/issue-26459.stderr | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs index 09c261cdc2388..3f436a1e27c2c 100644 --- a/src/librustc_save_analysis/dump_visitor.rs +++ b/src/librustc_save_analysis/dump_visitor.rs @@ -866,8 +866,8 @@ impl<'l, 'tcx> DumpVisitor<'l, 'tcx> { // FIXME do something with _path? let hir_id = self.tcx.hir().node_to_hir_id(p.id); let adt = match self.save_ctxt.tables.node_type_opt(hir_id) { - Some(ty) => ty.ty_adt_def().unwrap(), - None => { + Some(ty) if ty.ty_adt_def().is_some() => ty.ty_adt_def().unwrap(), + _ => { visit::walk_pat(self, p); return; } diff --git a/src/test/ui/issues/issue-26459.rs b/src/test/ui/issues/issue-26459.rs index 79791e0e06ad5..2ba05a0a47e01 100644 --- a/src/test/ui/issues/issue-26459.rs +++ b/src/test/ui/issues/issue-26459.rs @@ -1,3 +1,5 @@ +// compile-flags: -Zsave-analysis + fn main() { match 'a' { char{ch} => true diff --git a/src/test/ui/issues/issue-26459.stderr b/src/test/ui/issues/issue-26459.stderr index 187369263a446..9f594990c6de8 100644 --- a/src/test/ui/issues/issue-26459.stderr +++ b/src/test/ui/issues/issue-26459.stderr @@ -1,5 +1,5 @@ error[E0574]: expected struct, variant or union type, found builtin type `char` - --> $DIR/issue-26459.rs:3:9 + --> $DIR/issue-26459.rs:5:9 | LL | char{ch} => true | ^^^^ not a struct, variant or union type