From 8d2a3e0a61dbcf2ec6ce5a693c68e3da587991b9 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 10 Mar 2020 18:18:34 +0900 Subject: [PATCH] Use `node_type_opt` over `node_type` --- clippy_lints/src/shadow.rs | 12 ++++++++---- tests/ui/crashes/shadow.rs | 6 ++++++ 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 tests/ui/crashes/shadow.rs diff --git a/clippy_lints/src/shadow.rs b/clippy_lints/src/shadow.rs index 0dc2705550b9..0ada65ec7855 100644 --- a/clippy_lints/src/shadow.rs +++ b/clippy_lints/src/shadow.rs @@ -154,10 +154,14 @@ fn check_local<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, local: &'tcx Local<'_>, bin } fn is_binding(cx: &LateContext<'_, '_>, pat_id: HirId) -> bool { - let var_ty = cx.tables.node_type(pat_id); - match var_ty.kind { - ty::Adt(..) => false, - _ => true, + let var_ty = cx.tables.node_type_opt(pat_id); + if let Some(var_ty) = var_ty { + match var_ty.kind { + ty::Adt(..) => false, + _ => true, + } + } else { + false } } diff --git a/tests/ui/crashes/shadow.rs b/tests/ui/crashes/shadow.rs new file mode 100644 index 000000000000..843e8ef64dcd --- /dev/null +++ b/tests/ui/crashes/shadow.rs @@ -0,0 +1,6 @@ +fn main() { + let x: [i32; { + let u = 2; + 4 + }] = [2; { 4 }]; +}