@@ -1287,7 +1287,7 @@ impl<'a> Resolver<'a> {
1287
1287
while index < module_path_len {
1288
1288
let name = module_path[ index] ;
1289
1289
match self . resolve_name_in_module ( search_module, name, TypeNS , false , span) {
1290
- Failed ( None ) => {
1290
+ Failed ( _ ) => {
1291
1291
let segment_name = name. as_str ( ) ;
1292
1292
let module_name = module_to_string ( search_module) ;
1293
1293
let msg = if "???" == & module_name {
@@ -1314,7 +1314,6 @@ impl<'a> Resolver<'a> {
1314
1314
1315
1315
return Failed ( span. map ( |span| ( span, msg) ) ) ;
1316
1316
}
1317
- Failed ( err) => return Failed ( err) ,
1318
1317
Indeterminate => {
1319
1318
debug ! ( "(resolving module path for import) module resolution is \
1320
1319
indeterminate: {}",
@@ -1383,7 +1382,11 @@ impl<'a> Resolver<'a> {
1383
1382
let ident = ast:: Ident :: with_empty_ctxt ( module_path[ 0 ] ) ;
1384
1383
match self . resolve_ident_in_lexical_scope ( ident, TypeNS , span)
1385
1384
. and_then ( LexicalScopeBinding :: module) {
1386
- None => return Failed ( None ) ,
1385
+ None => {
1386
+ let msg =
1387
+ format ! ( "Use of undeclared type or module `{}`" , ident. name) ;
1388
+ return Failed ( span. map ( |span| ( span, msg) ) ) ;
1389
+ }
1387
1390
Some ( containing_module) => {
1388
1391
search_module = containing_module;
1389
1392
start_index = 1 ;
@@ -2614,16 +2617,9 @@ impl<'a> Resolver<'a> {
2614
2617
let containing_module;
2615
2618
match self . resolve_module_path ( & module_path, UseLexicalScope , Some ( span) ) {
2616
2619
Failed ( err) => {
2617
- let ( span, msg) = match err {
2618
- Some ( ( span, msg) ) => ( span, msg) ,
2619
- None => {
2620
- let msg = format ! ( "Use of undeclared type or module `{}`" ,
2621
- names_to_string( & module_path) ) ;
2622
- ( span, msg)
2623
- }
2624
- } ;
2625
-
2626
- resolve_error ( self , span, ResolutionError :: FailedToResolve ( & msg) ) ;
2620
+ if let Some ( ( span, msg) ) = err {
2621
+ resolve_error ( self , span, ResolutionError :: FailedToResolve ( & msg) ) ;
2622
+ }
2627
2623
return Err ( true ) ;
2628
2624
}
2629
2625
Indeterminate => return Err ( false ) ,
@@ -2651,16 +2647,9 @@ impl<'a> Resolver<'a> {
2651
2647
let containing_module;
2652
2648
match self . resolve_module_path_from_root ( root_module, & module_path, 0 , Some ( span) ) {
2653
2649
Failed ( err) => {
2654
- let ( span, msg) = match err {
2655
- Some ( ( span, msg) ) => ( span, msg) ,
2656
- None => {
2657
- let msg = format ! ( "Use of undeclared module `::{}`" ,
2658
- names_to_string( & module_path) ) ;
2659
- ( span, msg)
2660
- }
2661
- } ;
2662
-
2663
- resolve_error ( self , span, ResolutionError :: FailedToResolve ( & msg) ) ;
2650
+ if let Some ( ( span, msg) ) = err {
2651
+ resolve_error ( self , span, ResolutionError :: FailedToResolve ( & msg) ) ;
2652
+ }
2664
2653
return Err ( true ) ;
2665
2654
}
2666
2655
@@ -3270,12 +3259,11 @@ impl<'a> Resolver<'a> {
3270
3259
path_resolution = PathResolution :: new ( def) ;
3271
3260
ty:: Visibility :: Restricted ( self . definitions . as_local_node_id ( def. def_id ( ) ) . unwrap ( ) )
3272
3261
}
3273
- Failed ( Some ( ( span, msg) ) ) => {
3274
- self . session . span_err ( span, & format ! ( "failed to resolve module path. {}" , msg) ) ;
3275
- ty:: Visibility :: Public
3276
- }
3277
- _ => {
3278
- self . session . span_err ( path. span , "unresolved module path" ) ;
3262
+ Indeterminate => unreachable ! ( ) ,
3263
+ Failed ( err) => {
3264
+ if let Some ( ( span, msg) ) = err {
3265
+ self . session . span_err ( span, & format ! ( "failed to resolve module path. {}" , msg) ) ;
3266
+ }
3279
3267
ty:: Visibility :: Public
3280
3268
}
3281
3269
} ;
0 commit comments