# 所有权、借用、生命周期与 unsafe 检查清单

## 借用与生命周期

- 新增 `&` / `&mut` 是否可能越过被引用数据的实际生命周期（例如自引用结构、短生命周期引用存入长生命周期字段），且能在 diff 内看出矛盾。
- `'_` 省略或显式生命周期是否引入更松的约束，导致调用方在合法代码下出现悬垂引用风险。
- `static` / `'static` 绑定是否把本应短生命周期的数据错误升格。

## Pin 与内部可变性

- 在 `async` 或自引用场景下是否需要 `Pin` 而未体现，或 `Unpin` 实现是否破坏不变量。
- `RefCell` / `Mutex` / `RwLock` 等是否在可能重入或已持锁路径上新增 `borrow_mut` / `lock`，导致死锁或 panic。

## unsafe

- `unsafe` 块是否缺少可验证的前置条件说明；是否假设指针非空、对齐、别名规则而 diff 未保证。
- `transmute`、原始指针解引用、与 FFI 交界的指针是否可能产生未定义行为。
- `drop_in_place`、手动内存管理是否与 `Drop` 顺序或双重释放冲突。

仅在 diff 能支撑结论时报告问题；不推断未展示的调用约定或外部 crate 实现细节。
