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