File tree Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -317,7 +317,7 @@ impl Body {
317317 ) -> impl Iterator < Item = ( BlockId , Arc < DefMap > ) > + ' _ {
318318 self . block_scopes
319319 . iter ( )
320- . filter_map ( move |block| db. block_def_map ( * block) . map ( |map| ( * block, map ) ) )
320+ . map ( move |block| ( * block , db. block_def_map ( * block) . expect ( " block ID without DefMap" ) ) )
321321 }
322322
323323 fn new (
Original file line number Diff line number Diff line change @@ -673,12 +673,14 @@ impl ExprCollector<'_> {
673673 let block_loc =
674674 BlockLoc { ast_id, module : self . expander . def_map . module_id ( self . expander . module ) } ;
675675 let block_id = self . db . intern_block ( block_loc) ;
676- self . body . block_scopes . push ( block_id) ;
677676
678- let opt_def_map = self . db . block_def_map ( block_id) ;
679- let has_def_map = opt_def_map. is_some ( ) ;
680- let def_map = opt_def_map. unwrap_or_else ( || self . expander . def_map . clone ( ) ) ;
681- let module = if has_def_map { def_map. root ( ) } else { self . expander . module } ;
677+ let ( module, def_map) = match self . db . block_def_map ( block_id) {
678+ Some ( def_map) => {
679+ self . body . block_scopes . push ( block_id) ;
680+ ( def_map. root ( ) , def_map)
681+ }
682+ None => ( self . expander . module , self . expander . def_map . clone ( ) ) ,
683+ } ;
682684 let prev_def_map = mem:: replace ( & mut self . expander . def_map , def_map) ;
683685 let prev_local_module = mem:: replace ( & mut self . expander . module , module) ;
684686 let prev_statements = std:: mem:: take ( & mut self . statements_in_scope ) ;
You can’t perform that action at this time.
0 commit comments