Lines Matching full:invariant
208 // INVARIANT: The refcount is initialised to a non-zero value. in new()
232 // INVARIANT: By the safety requirements, the invariants hold. in from_inner()
333 // INVARIANT: We own the only refcount to this arc, so we may create a `UniqueArc`. We in into_unique_or_drop()
385 // SAFETY: By the type invariant, there is necessarily a reference to the object, so it is in deref()
399 // SAFETY: By the type invariant, there is necessarily a reference to the object, so it is in clone()
403 // INVARIANT: C `refcount_inc` saturates the refcount, so it cannot overflow to zero. in clone()
404 // SAFETY: By the type invariant, there is necessarily a reference to the object, so it is in clone()
415 // SAFETY: By the type invariant, there is necessarily a reference to the object. We cannot in drop()
421 // INVARIANT: If the refcount reaches zero, there are no other instances of `Arc`, and in drop()
422 // this instance is being dropped, so the broken invariant is not observable. in drop()
423 // SAFETY: Also by the type invariant, we are allowed to decrement the refcount. in drop()
534 // INVARIANT: The safety requirements guarantee the invariants. in new()
578 // SAFETY: By the type invariant, the underlying object is still alive with no mutable in deref()
666 // INVARIANT: The newly-created object has a refcount of 1. in new()
673 // INVARIANT: The refcount is initialised to a non-zero value. in new_uninit()
683 // INVARIANT: The newly-created object has a refcount of 1. in new_uninit()
756 // SAFETY: By the `Arc` type invariant, there is necessarily a reference to the object, so in deref_mut()