# Deep dive inside the PR #103902 - PR: https://github.com/rust-lang/rust/pull/103902 original reason: implied bounds for hir typeck ```rust! fn foo<'a>() { let x = |x: &'_ &'a ()| { // ^^^^^^^^^^ inside of the closure, we know `'a: '_`. body }; } ``` `HirId` can represent a lot of things, not all of them should be used as `body_id`. - `LocalDefId` is sometimes for the wrapper node of the body, not the body itself - `const N: usize = expr;` then the body is `expr` but the `body_owner` is the whole `const N: usize = expr;`? - feels like using `Map::body_owned_by` should work. `tests/ui/auto-traits/typeck-default-trait-impl-precedence.rs`