@@ -88,6+88,7 @@ For each affected location, we go through two steps: first we try to find the *g
**Finding the granting item.**
To find the granting item, we traverse the borrow stack top-to-bottom and search for an item that has the same tag.
If this is a write access, we go on looking until we find an item with the right tag whose permission is `SharedReadWrite` or `Unique`---we do not consider items with `SharedReadOnly` permission to grant a write access.
**Finding the granting item.**
To find the granting item, we traverse the borrow stack top-to-bottom and search for an item that has the same tag.
If this is a write access, we go on looking until we find an item with the right tag whose permission is `SharedReadWrite` or `Unique`---we do not consider items with `SharedReadOnly` permission to grant a write access.
+This is the item that grants pointers tagged `tag` the permission to perform the given access, hence the name (the same concept used to be called "matching item" in Stacked Borrows 1).
Once we found the granting item, we remember its position in the stack; that will be important for the second step.
If no granting item can be found, the access causes undefined behavior.
Once we found the granting item, we remember its position in the stack; that will be important for the second step.
If no granting item can be found, the access causes undefined behavior.