You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aquascope shows how permissions change to help users understand why a particular permission may be missing. Per path, these changes are described as a gain or loss in permissions. Additionally, we use a single icon to indicate why these changes occurred, I'll refer to these icons as the change reason.
In the above example, this table row tells the reader that the path s gained RWO permissions and the up arrow indicates that this was because the variable became live. However, showing a single icon has proven to be insufficient because, with liveness, multiple change reasons can exist. Consider line 3 in the below example:
On line 3, the path s loses RWO permissions. A common question from readers is "hey, shouldn't s keep R permissions because the path is only borrowed immutably?" The answer is YES. A path borrowed immutably can still be read. The issue is that s is no longer used after line 3, it dies; however, because our visual indication only allows for a single icon this change in liveness is not called out to the reader.
The task here is to develop a system of indication that is flexible enough to convey multiple change reasons. The result should achieve the following goals: the visualization should remain clear, and cases where only one change reason exists should not become more confusing. In the past, we've experimented with showing multiple icons, and a dropdown list of icons, but both of these were insufficient as they violated the aforementioned goals.
The previous code for easy copy/pasting.
fnfoo(){letmut s = String::from("");let b = &s;println!("{b}");}
The text was updated successfully, but these errors were encountered:
Aquascope shows how permissions change to help users understand why a particular permission may be missing. Per path, these changes are described as a gain or loss in permissions. Additionally, we use a single icon to indicate why these changes occurred, I'll refer to these icons as the change reason.
In the above example, this table row tells the reader that the path
s
gained RWO permissions and the up arrow indicates that this was because the variable became live. However, showing a single icon has proven to be insufficient because, with liveness, multiple change reasons can exist. Consider line 3 in the below example:On line 3, the path
s
loses RWO permissions. A common question from readers is "hey, shouldn'ts
keep R permissions because the path is only borrowed immutably?" The answer is YES. A path borrowed immutably can still be read. The issue is thats
is no longer used after line 3, it dies; however, because our visual indication only allows for a single icon this change in liveness is not called out to the reader.The task here is to develop a system of indication that is flexible enough to convey multiple change reasons. The result should achieve the following goals: the visualization should remain clear, and cases where only one change reason exists should not become more confusing. In the past, we've experimented with showing multiple icons, and a dropdown list of icons, but both of these were insufficient as they violated the aforementioned goals.
The previous code for easy copy/pasting.
The text was updated successfully, but these errors were encountered: