@@ -603,12 +603,15 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
603603 // so prefixes are prepended with crate root segment if necessary.
604604 // The root is prepended lazily, when the first non-empty prefix or terminating glob
605605 // appears, so imports in braced groups can have roots prepended independently.
606- let is_glob = matches ! ( use_tree. kind, ast:: UseTreeKind :: Glob ) ;
607606 let crate_root = match prefix_iter. peek ( ) {
608607 Some ( seg) if !seg. ident . is_path_segment_keyword ( ) && seg. ident . span . is_rust_2015 ( ) => {
609608 Some ( seg. ident . span . ctxt ( ) )
610609 }
611- None if is_glob && use_tree. span . is_rust_2015 ( ) => Some ( use_tree. span . ctxt ( ) ) ,
610+ None if let ast:: UseTreeKind :: Glob ( span) = use_tree. kind
611+ && span. is_rust_2015 ( ) =>
612+ {
613+ Some ( span. ctxt ( ) )
614+ }
612615 _ => None ,
613616 }
614617 . map ( |ctxt| {
@@ -696,7 +699,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
696699 }
697700 // Deny `use ::{self};` after edition 2015
698701 kw:: PathRoot if !self . r . path_root_is_crate_root ( source. ident ) => {
699- self . r . dcx ( ) . span_err ( use_tree. span , "extern prelude cannot be imported" ) ;
702+ self . r . dcx ( ) . span_err ( use_tree. span ( ) , "extern prelude cannot be imported" ) ;
700703 return ;
701704 }
702705 _ => { }
@@ -727,20 +730,20 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
727730 id,
728731 } ;
729732
730- self . add_import ( module_path, kind, use_tree. span , item, root_span, item. id , vis) ;
733+ self . add_import ( module_path, kind, use_tree. span ( ) , item, root_span, item. id , vis) ;
731734 }
732- ast:: UseTreeKind :: Glob => {
735+ ast:: UseTreeKind :: Glob ( _ ) => {
733736 if !ast:: attr:: contains_name ( & item. attrs , sym:: prelude_import) {
734737 let kind = ImportKind :: Glob { max_vis : CmCell :: new ( None ) , id } ;
735- self . add_import ( prefix, kind, use_tree. span , item, root_span, item. id , vis) ;
738+ self . add_import ( prefix, kind, use_tree. span ( ) , item, root_span, item. id , vis) ;
736739 } else {
737740 // Resolve the prelude import early.
738741 let path_res =
739742 self . r . cm ( ) . maybe_resolve_path ( & prefix, None , & self . parent_scope , None ) ;
740743 if let PathResult :: Module ( ModuleOrUniformRoot :: Module ( module) ) = path_res {
741744 self . r . prelude = Some ( module) ;
742745 } else {
743- self . r . dcx ( ) . span_err ( use_tree. span , "cannot resolve a prelude import" ) ;
746+ self . r . dcx ( ) . span_err ( use_tree. span ( ) , "cannot resolve a prelude import" ) ;
744747 }
745748 }
746749 }
@@ -764,7 +767,6 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
764767 let tree = ast:: UseTree {
765768 prefix : ast:: Path :: from_ident ( Ident :: new ( kw:: SelfLower , new_span) ) ,
766769 kind : ast:: UseTreeKind :: Simple ( Some ( Ident :: new ( kw:: Underscore , new_span) ) ) ,
767- span : use_tree. span ,
768770 } ;
769771 self . build_reduced_graph_for_use_tree (
770772 // This particular use tree
@@ -835,7 +837,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
835837 // The whole `use` item
836838 item,
837839 vis,
838- use_tree. span ,
840+ use_tree. span ( ) ,
839841 ) ;
840842 }
841843
0 commit comments