File tree Expand file tree Collapse file tree 4 files changed +125
-84
lines changed 
compiler/rustc_attr_parsing/src/attributes Expand file tree Collapse file tree 4 files changed +125
-84
lines changed Original file line number Diff line number Diff line change @@ -467,8 +467,14 @@ impl<S: Stage> SingleAttributeParser<S> for LinkSectionParser {
467467    const  PATH :  & [ Symbol ]  = & [ sym:: link_section] ; 
468468    const  ATTRIBUTE_ORDER :  AttributeOrder  = AttributeOrder :: KeepInnermost ; 
469469    const  ON_DUPLICATE :  OnDuplicate < S >  = OnDuplicate :: WarnButFutureError ; 
470-     const  ALLOWED_TARGETS :  AllowedTargets  =
471-         AllowedTargets :: AllowListWarnRest ( & [ Allow ( Target :: Static ) ,  Allow ( Target :: Fn ) ] ) ; 
470+     const  ALLOWED_TARGETS :  AllowedTargets  = AllowedTargets :: AllowListWarnRest ( & [ 
471+         Allow ( Target :: Static ) , 
472+         Allow ( Target :: Fn ) , 
473+         Allow ( Target :: Method ( MethodKind :: Inherent ) ) , 
474+         Allow ( Target :: Method ( MethodKind :: Trait  {  body :  false  } ) ) , 
475+         Allow ( Target :: Method ( MethodKind :: Trait  {  body :  true  } ) ) , 
476+         Allow ( Target :: Method ( MethodKind :: TraitImpl ) ) , 
477+     ] ) ; 
472478    const  TEMPLATE :  AttributeTemplate  = template ! ( 
473479        NameValueStr :  "name" , 
474480        "https://doc.rust-lang.org/reference/abi.html#the-link_section-attribute" 
Original file line number Diff line number Diff line change @@ -82,7 +82,7 @@ LL |     #[link_section = "x"]
8282   |     ^^^^^^^^^^^^^^^^^^^^^
8383   |
8484   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
85-    = help: `#[link_section]` can be applied to statics  and functions 
85+    = help: `#[link_section]` can be applied to functions  and statics 
8686
8787warning: `#[link_ordinal]` attribute cannot be used on macro calls
8888  --> $DIR/attr-on-mac-call.rs:33:5
Original file line number Diff line number Diff line change @@ -705,6 +705,32 @@ mod link_section {
705705    //~| WARN previously accepted 
706706    //~| HELP can be applied to 
707707    //~| HELP remove the attribute 
708+ 
709+     #[ link_section = "1800" ]  
710+     //~^ WARN attribute cannot be used on 
711+     //~| WARN previously accepted 
712+     //~| HELP can be applied to 
713+     //~| HELP remove the attribute 
714+     trait  Tr  { 
715+         #[ link_section = "1800" ]  
716+         fn  inside_tr_no_default ( & self ) ; 
717+ 
718+         #[ link_section = "1800" ]  
719+         fn  inside_tr_default ( & self )  {  } 
720+     } 
721+ 
722+     impl  S  { 
723+         #[ link_section = "1800" ]  
724+         fn  inside_abc_123 ( & self )  {  } 
725+     } 
726+ 
727+     impl  Tr  for  S  { 
728+         #[ link_section = "1800" ]  
729+         fn  inside_tr_no_default ( & self )  {  } 
730+     } 
731+ 
732+     #[ link_section = "1800" ]  
733+     fn  should_always_link ( )  {  } 
708734} 
709735
710736
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments