@@ -618,7 +618,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
618
618
namespace_name,
619
619
name_bindings. def_for_namespace( namespace) ) ;
620
620
self . check_for_conflicting_import (
621
- & import_resolution. target_for_namespace ( namespace ) ,
621
+ & import_resolution,
622
622
directive. span ,
623
623
target,
624
624
namespace) ;
@@ -755,7 +755,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
755
755
// Continue.
756
756
}
757
757
Some ( ref value_target) => {
758
- self . check_for_conflicting_import ( & dest_import_resolution. value_target ,
758
+ self . check_for_conflicting_import ( & dest_import_resolution,
759
759
import_directive. span ,
760
760
* ident,
761
761
ValueNS ) ;
@@ -767,7 +767,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
767
767
// Continue.
768
768
}
769
769
Some ( ref type_target) => {
770
- self . check_for_conflicting_import ( & dest_import_resolution. type_target ,
770
+ self . check_for_conflicting_import ( & dest_import_resolution,
771
771
import_directive. span ,
772
772
* ident,
773
773
TypeNS ) ;
@@ -885,32 +885,29 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
885
885
886
886
/// Checks that imported names and items don't have the same name.
887
887
fn check_for_conflicting_import ( & mut self ,
888
- target : & Option < Target > ,
888
+ import_resolution : & ImportResolution ,
889
889
import_span : Span ,
890
890
name : Name ,
891
891
namespace : Namespace ) {
892
+ let target = import_resolution. target_for_namespace ( namespace) ;
892
893
debug ! ( "check_for_conflicting_import: {}; target exists: {}" ,
893
894
& token:: get_name( name) ,
894
895
target. is_some( ) ) ;
895
896
896
- match * target {
897
+ match target {
897
898
Some ( ref target) if target. shadowable != Shadowable :: Always => {
898
- let msg = format ! ( "a {} named `{}` has already been imported \
899
- in this module",
900
- match namespace {
901
- TypeNS => "type" ,
902
- ValueNS => "value" ,
903
- } ,
899
+ let ns_word = match namespace {
900
+ TypeNS => "type" ,
901
+ ValueNS => "value" ,
902
+ } ;
903
+ span_err ! ( self . resolver. session, import_span, E0252 ,
904
+ "a {} named `{}` has already been imported \
905
+ in this module", ns_word,
904
906
& token:: get_name( name) ) ;
905
- span_err ! ( self . resolver. session, import_span, E0252 , "{}" , & msg[ ..] ) ;
906
907
if let Some ( sp) = target. bindings . span_for_namespace ( namespace) {
907
908
span_note ! ( self . resolver. session, sp,
908
909
"first import of {} `{}` here" ,
909
- match namespace {
910
- TypeNS => "type" ,
911
- ValueNS => "value" ,
912
- } ,
913
- token:: get_name( name) ) ;
910
+ ns_word, token:: get_name( name) ) ;
914
911
} else {
915
912
span_note ! ( self . resolver. session, import_span, "I can't find where it was previously imported" ) ;
916
913
}
0 commit comments