Reorder some Analysis
methods. · rust-lang/rust@dddc09d (original) (raw)
`@@ -122,14 +122,6 @@ pub trait Analysis<'tcx> {
`
122
122
`` // resume
). It's not obvious how to handle yield
points in coroutines, however.
``
123
123
`fn initialize_start_block(&self, body: &mir::Body<'tcx>, state: &mut Self::Domain);
`
124
124
``
125
``
`-
/// Updates the current dataflow state with the effect of evaluating a statement.
`
126
``
`-
fn apply_primary_statement_effect(
`
127
``
`-
&mut self,
`
128
``
`-
state: &mut Self::Domain,
`
129
``
`-
statement: &mir::Statement<'tcx>,
`
130
``
`-
location: Location,
`
131
``
`-
);
`
132
``
-
133
125
`/// Updates the current dataflow state with an "early" effect, i.e. one
`
134
126
`/// that occurs immediately before the given statement.
`
135
127
`///
`
`@@ -145,20 +137,13 @@ pub trait Analysis<'tcx> {
`
145
137
`) {
`
146
138
`}
`
147
139
``
148
``
`-
/// Updates the current dataflow state with the effect of evaluating a terminator.
`
149
``
`-
///
`
150
``
`` -
/// The effect of a successful return from a Call
terminator should not be accounted for
``
151
``
`` -
/// in this function. That should go in apply_call_return_effect
. For example, in the
``
152
``
`` -
/// InitializedPlaces
analyses, the return place for a function call is not marked as
``
153
``
`-
/// initialized here.
`
154
``
`-
fn apply_primary_terminator_effect<'mir>(
`
``
140
`+
/// Updates the current dataflow state with the effect of evaluating a statement.
`
``
141
`+
fn apply_primary_statement_effect(
`
155
142
`&mut self,
`
156
``
`-
_state: &mut Self::Domain,
`
157
``
`-
terminator: &'mir mir::Terminator<'tcx>,
`
158
``
`-
_location: Location,
`
159
``
`-
) -> TerminatorEdges<'mir, 'tcx> {
`
160
``
`-
terminator.edges()
`
161
``
`-
}
`
``
143
`+
state: &mut Self::Domain,
`
``
144
`+
statement: &mir::Statement<'tcx>,
`
``
145
`+
location: Location,
`
``
146
`+
);
`
162
147
``
163
148
`/// Updates the current dataflow state with an effect that occurs immediately before the
`
164
149
`/// given terminator.
`
`@@ -175,6 +160,21 @@ pub trait Analysis<'tcx> {
`
175
160
`) {
`
176
161
`}
`
177
162
``
``
163
`+
/// Updates the current dataflow state with the effect of evaluating a terminator.
`
``
164
`+
///
`
``
165
`` +
/// The effect of a successful return from a Call
terminator should not be accounted for
``
``
166
`` +
/// in this function. That should go in apply_call_return_effect
. For example, in the
``
``
167
`` +
/// InitializedPlaces
analyses, the return place for a function call is not marked as
``
``
168
`+
/// initialized here.
`
``
169
`+
fn apply_primary_terminator_effect<'mir>(
`
``
170
`+
&mut self,
`
``
171
`+
_state: &mut Self::Domain,
`
``
172
`+
terminator: &'mir mir::Terminator<'tcx>,
`
``
173
`+
_location: Location,
`
``
174
`+
) -> TerminatorEdges<'mir, 'tcx> {
`
``
175
`+
terminator.edges()
`
``
176
`+
}
`
``
177
+
178
178
`/* Edge-specific effects */
`
179
179
``
180
180
`` /// Updates the current dataflow state with the effect of a successful return from a Call
``