diff --git a/clippy_lints/src/shadow.rs b/clippy_lints/src/shadow.rs index 0dc2705550b..0ada65ec785 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 00000000000..843e8ef64dc --- /dev/null +++ b/tests/ui/crashes/shadow.rs @@ -0,0 +1,6 @@ +fn main() { + let x: [i32; { + let u = 2; + 4 + }] = [2; { 4 }]; +}