@@ -28,7 +28,7 @@ use hir_expand::{
2828use itertools:: Itertools ;
2929use rustc_hash:: { FxHashMap , FxHashSet } ;
3030use smallvec:: { smallvec, SmallVec } ;
31- use span:: { EditionedFileId , FileId , Span , SyntaxContextId , ROOT_ERASED_FILE_AST_ID } ;
31+ use span:: { EditionedFileId , FileId } ;
3232use stdx:: TupleExt ;
3333use syntax:: {
3434 algo:: skip_trivia_token,
@@ -757,84 +757,9 @@ impl<'db> SemanticsImpl<'db> {
757757 res
758758 }
759759
760- // return:
761- // SourceAnalyzer(file_id that original call include!)
762- // macro file id
763- // token in include! macro mapped from token in params
764- // span for the mapped token
765- fn is_from_include_file (
766- & self ,
767- token : SyntaxToken ,
768- ) -> Option < ( SourceAnalyzer , HirFileId , SyntaxToken , Span ) > {
769- let parent = token. parent ( ) ?;
770- let file_id = self . find_file ( & parent) . file_id . file_id ( ) ?;
771-
772- // iterate related crates and find all include! invocations that include_file_id matches
773- for iter in self
774- . db
775- . relevant_crates ( file_id. file_id ( ) )
776- . iter ( )
777- . map ( |krate| self . db . include_macro_invoc ( * krate) )
778- {
779- for ( invoc, _) in
780- iter. iter ( ) . filter ( |& & ( _, include_file_id) | include_file_id == file_id)
781- {
782- let macro_file = invoc. as_macro_file ( ) ;
783- let expansion_info = {
784- self . with_ctx ( |ctx| {
785- ctx. cache
786- . expansion_info_cache
787- . entry ( macro_file)
788- . or_insert_with ( || {
789- let exp_info = macro_file. expansion_info ( self . db . upcast ( ) ) ;
790-
791- let InMacroFile { file_id, value } = exp_info. expanded ( ) ;
792- if let InFile { file_id, value : Some ( value) } = exp_info. arg ( ) {
793- self . cache ( value. ancestors ( ) . last ( ) . unwrap ( ) , file_id) ;
794- }
795- self . cache ( value, file_id. into ( ) ) ;
796-
797- exp_info
798- } )
799- . clone ( )
800- } )
801- } ;
802-
803- // FIXME: uncached parse
804- // Create the source analyzer for the macro call scope
805- let Some ( sa) = expansion_info
806- . arg ( )
807- . value
808- . and_then ( |it| self . analyze_no_infer ( & it. ancestors ( ) . last ( ) . unwrap ( ) ) )
809- else {
810- continue ;
811- } ;
812-
813- // get mapped token in the include! macro file
814- let span = span:: Span {
815- range : token. text_range ( ) ,
816- anchor : span:: SpanAnchor { file_id, ast_id : ROOT_ERASED_FILE_AST_ID } ,
817- ctx : SyntaxContextId :: ROOT ,
818- } ;
819- let Some ( InMacroFile { file_id, value : mut mapped_tokens } ) =
820- expansion_info. map_range_down_exact ( span)
821- else {
822- continue ;
823- } ;
824-
825- // if we find one, then return
826- if let Some ( t) = mapped_tokens. next ( ) {
827- return Some ( ( sa, file_id. into ( ) , t, span) ) ;
828- }
829- }
830- }
831-
832- None
833- }
834-
835760 fn descend_into_macros_impl (
836761 & self ,
837- mut token : SyntaxToken ,
762+ token : SyntaxToken ,
838763 f : & mut dyn FnMut ( InFile < SyntaxToken > ) -> ControlFlow < ( ) > ,
839764 ) {
840765 let _p = tracing:: info_span!( "descend_into_macros_impl" ) . entered ( ) ;
@@ -851,17 +776,7 @@ impl<'db> SemanticsImpl<'db> {
851776 return ;
852777 }
853778 } ,
854- None => {
855- // if we cannot find a source analyzer for this token, then we try to find out
856- // whether this file is an included file and treat that as the include input
857- let Some ( ( it, macro_file_id, mapped_token, s) ) =
858- self . is_from_include_file ( token)
859- else {
860- return ;
861- } ;
862- token = mapped_token;
863- ( it, s, macro_file_id)
864- }
779+ None => return ,
865780 } ;
866781
867782 let mut m_cache = self . macro_call_cache . borrow_mut ( ) ;
0 commit comments