File tree Expand file tree Collapse file tree 4 files changed +790
-112
lines changed
src/librustc_data_structures/obligation_forest Expand file tree Collapse file tree 4 files changed +790
-112
lines changed Original file line number Diff line number Diff line change @@ -60,11 +60,9 @@ which includes three bits of information:
60
60
61
61
#### Snapshots
62
62
63
- The ` ObligationForest ` supports a limited form of snapshots; see
64
- ` start_snapshot ` ; ` commit_snapshot ` ; and ` rollback_snapshot ` . In
65
- particular, you can use a snapshot to roll back new root
66
- obligations. However, it is an error to attempt to
67
- ` process_obligations ` during a snapshot.
63
+ The ` ObligationForest ` supports snapshots; see
64
+ ` start_snapshot ` ; ` commit_snapshot ` ; and ` rollback_snapshot ` . Snapshots roll
65
+ back all externally visible state.
68
66
69
67
### Implementation details
70
68
@@ -74,7 +72,8 @@ the forest is stored in a vector. Each element of the vector is a node
74
72
in some tree. Each node in the vector has the index of an (optional)
75
73
parent and (for convenience) its root (which may be itself). It also
76
74
has a current state, described by ` NodeState ` . After each
77
- processing step, we compress the vector to remove completed and error
78
- nodes, which aren't needed anymore.
75
+ processing step, we compress the vector to remove completed and error nodes (or
76
+ mark as 'popped' if we can't remove due to snapshotting), which aren't needed
77
+ anymore.
79
78
80
79
You can’t perform that action at this time.
0 commit comments