@@ -6,7 +6,7 @@ use std::path::{Path, PathBuf};
66use std:: rc:: Rc ;
77use std:: sync:: Arc ;
88
9- use rustc_ast:: attr:: { AttributeExt , MarkedAttrs } ;
9+ use rustc_ast:: attr:: MarkedAttrs ;
1010use rustc_ast:: token:: MetaVarKind ;
1111use rustc_ast:: tokenstream:: TokenStream ;
1212use rustc_ast:: visit:: { AssocCtxt , Visitor } ;
@@ -16,15 +16,14 @@ use rustc_data_structures::sync;
1616use rustc_errors:: { BufferedEarlyLint , DiagCtxtHandle , ErrorGuaranteed , PResult } ;
1717use rustc_feature:: Features ;
1818use rustc_hir as hir;
19- use rustc_hir:: attrs:: { AttributeKind , CfgEntry , Deprecation } ;
19+ use rustc_hir:: attrs:: { AttributeKind , CfgEntry , CollapseMacroDebuginfo , Deprecation } ;
2020use rustc_hir:: def:: MacroKinds ;
2121use rustc_hir:: limit:: Limit ;
2222use rustc_hir:: { Stability , find_attr} ;
2323use rustc_lint_defs:: RegisteredTools ;
2424use rustc_parse:: MACRO_ARGUMENTS ;
2525use rustc_parse:: parser:: { ForceCollect , Parser } ;
2626use rustc_session:: Session ;
27- use rustc_session:: config:: CollapseMacroDebuginfo ;
2827use rustc_session:: parse:: ParseSess ;
2928use rustc_span:: def_id:: { CrateNum , DefId , LocalDefId } ;
3029use rustc_span:: edition:: Edition ;
@@ -34,7 +33,6 @@ use rustc_span::{DUMMY_SP, FileName, Ident, Span, Symbol, kw, sym};
3433use smallvec:: { SmallVec , smallvec} ;
3534use thin_vec:: ThinVec ;
3635
37- use crate :: base:: ast:: MetaItemInner ;
3836use crate :: errors;
3937use crate :: expand:: { self , AstFragment , Invocation } ;
4038use crate :: mbe:: macro_rules:: ParserAnyMacro ;
@@ -887,25 +885,6 @@ impl SyntaxExtension {
887885 }
888886 }
889887
890- fn collapse_debuginfo_by_name (
891- attr : & impl AttributeExt ,
892- ) -> Result < CollapseMacroDebuginfo , Span > {
893- let list = attr. meta_item_list ( ) ;
894- let Some ( [ MetaItemInner :: MetaItem ( item) ] ) = list. as_deref ( ) else {
895- return Err ( attr. span ( ) ) ;
896- } ;
897- if !item. is_word ( ) {
898- return Err ( item. span ) ;
899- }
900-
901- match item. name ( ) {
902- Some ( sym:: no) => Ok ( CollapseMacroDebuginfo :: No ) ,
903- Some ( sym:: external) => Ok ( CollapseMacroDebuginfo :: External ) ,
904- Some ( sym:: yes) => Ok ( CollapseMacroDebuginfo :: Yes ) ,
905- _ => Err ( item. path . span ) ,
906- }
907- }
908-
909888 /// if-ext - if macro from different crate (related to callsite code)
910889 /// | cmd \ attr | no | (unspecified) | external | yes |
911890 /// | no | no | no | no | no |
@@ -914,21 +893,15 @@ impl SyntaxExtension {
914893 /// | yes | yes | yes | yes | yes |
915894 fn get_collapse_debuginfo ( sess : & Session , attrs : & [ hir:: Attribute ] , ext : bool ) -> bool {
916895 let flag = sess. opts . cg . collapse_macro_debuginfo ;
917- let attr = ast:: attr:: find_by_name ( attrs, sym:: collapse_debuginfo)
918- . and_then ( |attr| {
919- Self :: collapse_debuginfo_by_name ( attr)
920- . map_err ( |span| {
921- sess. dcx ( ) . emit_err ( errors:: CollapseMacroDebuginfoIllegal { span } )
922- } )
923- . ok ( )
924- } )
925- . unwrap_or_else ( || {
926- if find_attr ! ( attrs, AttributeKind :: RustcBuiltinMacro { .. } ) {
927- CollapseMacroDebuginfo :: Yes
928- } else {
929- CollapseMacroDebuginfo :: Unspecified
930- }
931- } ) ;
896+ let attr =
897+ if let Some ( info) = find_attr ! ( attrs, AttributeKind :: CollapseDebugInfo ( info) => info) {
898+ info. clone ( )
899+ } else if find_attr ! ( attrs, AttributeKind :: RustcBuiltinMacro { .. } ) {
900+ CollapseMacroDebuginfo :: Yes
901+ } else {
902+ CollapseMacroDebuginfo :: Unspecified
903+ } ;
904+
932905 #[ rustfmt:: skip]
933906 let collapse_table = [
934907 [ false , false , false , false ] ,
0 commit comments