@@ -237,9 +237,6 @@ trait DropTreeBuilder<'tcx> {
237237
238238impl DropTree {
239239 fn new ( ) -> Self {
240- // The root node of the tree doesn't represent a drop, but instead
241- // represents the block in the tree that should be jumped to once all
242- // of the required drops have been performed.
243240 let fake_source_info = SourceInfo :: outermost ( DUMMY_SP ) ;
244241 let fake_data =
245242 DropData { source_info : fake_source_info, local : Local :: MAX , kind : DropKind :: Storage } ;
@@ -261,10 +258,6 @@ impl DropTree {
261258 self . entry_points . push ( ( to, from) ) ;
262259 }
263260
264- /// Builds the MIR for a given drop tree.
265- ///
266- /// `blocks` should have the same length as `self.drops`, and may have its
267- /// first value set to some already existing block.
268261 fn build_mir < ' tcx , T : DropTreeBuilder < ' tcx > > (
269262 & mut self ,
270263 cfg : & mut CFG < ' tcx > ,
@@ -1351,16 +1344,10 @@ impl<'tcx> DropTreeBuilder<'tcx> for GeneratorDrop {
13511344 cfg. start_new_block ( )
13521345 }
13531346 fn add_entry ( cfg : & mut CFG < ' tcx > , from : BasicBlock , to : BasicBlock ) {
1354- let term = cfg. block_data_mut ( from) . terminator_mut ( ) ;
1355- if let TerminatorKind :: Yield { ref mut drop, .. } = term . kind {
1347+ let kind = & mut cfg. block_data_mut ( from) . terminator_mut ( ) . kind ;
1348+ if let TerminatorKind :: Yield { drop, .. } = kind {
13561349 * drop = Some ( to) ;
1357- } else {
1358- span_bug ! (
1359- term. source_info. span,
1360- "cannot enter generator drop tree from {:?}" ,
1361- term. kind
1362- )
1363- }
1350+ } ;
13641351 }
13651352}
13661353
@@ -1371,8 +1358,8 @@ impl<'tcx> DropTreeBuilder<'tcx> for Unwind {
13711358 cfg. start_new_cleanup_block ( )
13721359 }
13731360 fn add_entry ( cfg : & mut CFG < ' tcx > , from : BasicBlock , to : BasicBlock ) {
1374- let term = & mut cfg. block_data_mut ( from) . terminator_mut ( ) ;
1375- match & mut term. kind {
1361+ let term = & mut cfg. block_data_mut ( from) . terminator_mut ( ) . kind ;
1362+ match term {
13761363 TerminatorKind :: Drop { unwind, .. }
13771364 | TerminatorKind :: DropAndReplace { unwind, .. }
13781365 | TerminatorKind :: FalseUnwind { unwind, .. }
0 commit comments