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 {
317
317
) -> impl Iterator < Item = ( BlockId , Arc < DefMap > ) > + ' _ {
318
318
self . block_scopes
319
319
. 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" ) ) )
321
321
}
322
322
323
323
fn new (
Original file line number Diff line number Diff line change @@ -673,12 +673,14 @@ impl ExprCollector<'_> {
673
673
let block_loc =
674
674
BlockLoc { ast_id, module : self . expander . def_map . module_id ( self . expander . module ) } ;
675
675
let block_id = self . db . intern_block ( block_loc) ;
676
- self . body . block_scopes . push ( block_id) ;
677
676
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
+ } ;
682
684
let prev_def_map = mem:: replace ( & mut self . expander . def_map , def_map) ;
683
685
let prev_local_module = mem:: replace ( & mut self . expander . module , module) ;
684
686
let prev_statements = std:: mem:: take ( & mut self . statements_in_scope ) ;
You can’t perform that action at this time.
0 commit comments