diff options
| author | Jason Newcomb <jsnewcomb@pm.me> | 2021-07-17 19:01:19 -0400 |
|---|---|---|
| committer | Jason Newcomb <jsnewcomb@pm.me> | 2021-07-17 19:01:19 -0400 |
| commit | 5bfc2568a21148c5c2dd9455e1720e4fc9021ed2 (patch) | |
| tree | 54ef496a6bc2045fe594296eb7b3890b5026ab27 /clippy_utils | |
| parent | e9c3991d3081c79bd712d754e6f51f456e603c6c (diff) | |
| download | rust-5bfc2568a21148c5c2dd9455e1720e4fc9021ed2.tar.gz rust-5bfc2568a21148c5c2dd9455e1720e4fc9021ed2.zip | |
Fix ICE in `is_integer_const` when the expression is inside an `AnonConst` body
Diffstat (limited to 'clippy_utils')
| -rw-r--r-- | clippy_utils/src/lib.rs | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/clippy_utils/src/lib.rs b/clippy_utils/src/lib.rs index 6db221ab0fd..9a9d6a20057 100644 --- a/clippy_utils/src/lib.rs +++ b/clippy_utils/src/lib.rs @@ -909,12 +909,8 @@ pub fn is_integer_const(cx: &LateContext<'_>, e: &Expr<'_>, value: u128) -> bool if is_integer_literal(e, value) { return true; } - let map = cx.tcx.hir(); - let parent_item = map.get_parent_item(e.hir_id); - if let Some((Constant::Int(v), _)) = map - .maybe_body_owned_by(parent_item) - .and_then(|body_id| constant(cx, cx.tcx.typeck_body(body_id), e)) - { + let enclosing_body = cx.tcx.hir().local_def_id(cx.tcx.hir().enclosing_body_owner(e.hir_id)); + if let Some((Constant::Int(v), _)) = constant(cx, cx.tcx.typeck(enclosing_body), e) { value == v } else { false |
