@@ -9,7 +9,6 @@ use rustc_ast::{self as ast, *};
9
9
use rustc_data_structures:: fx:: { FxHashMap , FxHashSet } ;
10
10
use rustc_data_structures:: svh:: Svh ;
11
11
use rustc_data_structures:: sync:: Lrc ;
12
- use rustc_errors:: FatalError ;
13
12
use rustc_expand:: base:: SyntaxExtension ;
14
13
use rustc_hir:: def_id:: { CrateNum , LocalDefId , StableCrateId , LOCAL_CRATE } ;
15
14
use rustc_hir:: definitions:: Definitions ;
@@ -508,31 +507,22 @@ impl<'a> CrateLoader<'a> {
508
507
} ) )
509
508
}
510
509
511
- fn resolve_crate_or_abort < ' b > (
512
- & ' b mut self ,
513
- name : Symbol ,
514
- span : Span ,
515
- dep_kind : CrateDepKind ,
516
- ) -> CrateNum {
517
- self . resolve_crate ( name, span, dep_kind) . unwrap_or_else ( || FatalError . raise ( ) )
518
- }
519
-
520
510
fn resolve_crate < ' b > (
521
511
& ' b mut self ,
522
512
name : Symbol ,
523
513
span : Span ,
524
514
dep_kind : CrateDepKind ,
525
515
) -> Option < CrateNum > {
526
516
self . used_extern_options . insert ( name) ;
527
- self . maybe_resolve_crate ( name, dep_kind, None ) . map_or_else (
528
- |err| {
517
+ match self . maybe_resolve_crate ( name, dep_kind, None ) {
518
+ Ok ( cnum) => Some ( cnum) ,
519
+ Err ( err) => {
529
520
let missing_core =
530
521
self . maybe_resolve_crate ( sym:: core, CrateDepKind :: Explicit , None ) . is_err ( ) ;
531
522
err. report ( & self . sess , span, missing_core) ;
532
523
None
533
- } ,
534
- |cnum| Some ( cnum) ,
535
- )
524
+ }
525
+ }
536
526
}
537
527
538
528
fn maybe_resolve_crate < ' b > (
@@ -765,7 +755,7 @@ impl<'a> CrateLoader<'a> {
765
755
} ;
766
756
info ! ( "panic runtime not found -- loading {}" , name) ;
767
757
768
- let cnum = self . resolve_crate_or_abort ( name, DUMMY_SP , CrateDepKind :: Implicit ) ;
758
+ let Some ( cnum) = self . resolve_crate ( name, DUMMY_SP , CrateDepKind :: Implicit ) else { return ; } ;
769
759
let data = self . cstore . get_crate_data ( cnum) ;
770
760
771
761
// Sanity check the loaded crate to ensure it is indeed a panic runtime
@@ -805,7 +795,7 @@ impl<'a> CrateLoader<'a> {
805
795
) ;
806
796
}
807
797
808
- let cnum = self . resolve_crate_or_abort ( name, DUMMY_SP , CrateDepKind :: Implicit ) ;
798
+ let Some ( cnum) = self . resolve_crate ( name, DUMMY_SP , CrateDepKind :: Implicit ) else { return ; } ;
809
799
let data = self . cstore . get_crate_data ( cnum) ;
810
800
811
801
// Sanity check the loaded crate to ensure it is indeed a profiler runtime
@@ -1043,8 +1033,8 @@ impl<'a> CrateLoader<'a> {
1043
1033
}
1044
1034
}
1045
1035
1046
- pub fn process_path_extern ( & mut self , name : Symbol , span : Span ) -> CrateNum {
1047
- let cnum = self . resolve_crate_or_abort ( name, span, CrateDepKind :: Explicit ) ;
1036
+ pub fn process_path_extern ( & mut self , name : Symbol , span : Span ) -> Option < CrateNum > {
1037
+ let cnum = self . resolve_crate ( name, span, CrateDepKind :: Explicit ) ? ;
1048
1038
1049
1039
self . update_extern_crate (
1050
1040
cnum,
@@ -1057,7 +1047,7 @@ impl<'a> CrateLoader<'a> {
1057
1047
} ,
1058
1048
) ;
1059
1049
1060
- cnum
1050
+ Some ( cnum)
1061
1051
}
1062
1052
1063
1053
pub fn maybe_process_path_extern ( & mut self , name : Symbol ) -> Option < CrateNum > {
0 commit comments