@@ -17,6 +17,7 @@ enum PermissionPriv { |
|
|
17 |
17 |
/// is relevant |
18 |
18 |
/// - `conflicted` is set on foreign reads, |
19 |
19 |
/// - `conflicted` must not be set on child writes (there is UB otherwise). |
|
20 |
+ /// |
20 |
21 |
/// This is so that the behavior of `Reserved` adheres to the rules of `noalias`: |
21 |
22 |
/// - foreign-read then child-write is UB due to `conflicted`, |
22 |
23 |
/// - child-write then foreign-read is UB since child-write will activate and then |
@@ -339,15 +340,15 @@ pub mod diagnostics { |
|
|
339 |
340 |
/// This function assumes that its arguments apply to the same location |
340 |
341 |
/// and that they were obtained during a normal execution. It will panic otherwise. |
341 |
342 |
/// - all transitions involved in `self` and `err` should be increasing |
342 |
|
- /// (Reserved < Active < Frozen < Disabled); |
|
343 |
+ /// (Reserved < Active < Frozen < Disabled); |
343 |
344 |
/// - between `self` and `err` the permission should also be increasing, |
344 |
|
- /// so all permissions inside `err` should be greater than `self.1`; |
|
345 |
+ /// so all permissions inside `err` should be greater than `self.1`; |
345 |
346 |
/// - `Active` and `Reserved(conflicted=false)` cannot cause an error |
346 |
|
- /// due to insufficient permissions, so `err` cannot be a `ChildAccessForbidden(_)` |
347 |
|
- /// of either of them; |
|
347 |
+ /// due to insufficient permissions, so `err` cannot be a `ChildAccessForbidden(_)` |
|
348 |
+ /// of either of them; |
348 |
349 |
/// - `err` should not be `ProtectedDisabled(Disabled)`, because the protected |
349 |
|
- /// tag should not have been `Disabled` in the first place (if this occurs it means |
350 |
|
- /// we have unprotected tags that become protected) |
|
350 |
+ /// tag should not have been `Disabled` in the first place (if this occurs it means |
|
351 |
+ /// we have unprotected tags that become protected) |
351 |
352 |
pub(in super::super) fn is_relevant(&self, err: TransitionError) -> bool { |
352 |
353 |
// NOTE: `super::super` is the visibility of `TransitionError` |
353 |
354 |
assert!(self.is_possible()); |