# 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`