about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-03-10 18:18:34 +0900
committerYuki Okushi <huyuumi.dev@gmail.com>2020-03-10 18:18:34 +0900
commit8d2a3e0a61dbcf2ec6ce5a693c68e3da587991b9 (patch)
tree6b1f737951aa4aaea675237e1fd2ecd28f24b3f4
parent187bbf0e7bbc1c7da5902cd1a89f286aa063c5ff (diff)
downloadrust-8d2a3e0a61dbcf2ec6ce5a693c68e3da587991b9.tar.gz
rust-8d2a3e0a61dbcf2ec6ce5a693c68e3da587991b9.zip
Use `node_type_opt` over `node_type`
-rw-r--r--clippy_lints/src/shadow.rs12
-rw-r--r--tests/ui/crashes/shadow.rs6
2 files changed, 14 insertions, 4 deletions
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 }];
+}