Static rustc_ap_rustc_lint_defs::builtin::DISJOINT_CAPTURE_DROP_REORDER [−][src]
pub static DISJOINT_CAPTURE_DROP_REORDER: &Lint
Expand description
The disjoint_capture_drop_reorder
lint detects variables that aren’t completely
captured when the feature capture_disjoint_fields
is enabled and it affects the Drop
order of at least one path starting at this variable.
Example
ⓘ
struct FancyInteger(i32); impl Drop for FancyInteger { fn drop(&mut self) { println!("Just dropped {}", self.0); } } struct Point { x: FancyInteger, y: FancyInteger } fn main() { let p = Point { x: FancyInteger(10), y: FancyInteger(20) }; let c = || { let x = p.x; }; c(); // ... More code ... }
{{produces}}
Explanation
In the above example p.y
will be dropped at the end of f
instead of with c
if
the feature capture_disjoint_fields
is enabled.