//@ run-pass //@ compile-flags: -Zcontract-checks=yes #![feature(rustc_contracts)] struct Outer { outer: std::cell::Cell } #[core::contracts::requires(x.outer.get() > 0)] fn outer(x: Outer) { let inner_closure = || { }; x.outer.set(0); inner_closure(); } fn main() { outer(Outer { outer: 1.into() }); }