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

``