11use rustc_ast:: token:: { Delimiter , TokenKind } ;
22use rustc_ast:: tokenstream:: { DelimSpacing , DelimSpan , Spacing , TokenStream , TokenTree } ;
33use rustc_ast:: {
4- Attribute , DUMMY_NODE_ID , EiiDecl , EiiImpl , ItemKind , MetaItem , Path , StmtKind , Visibility , ast,
4+ Attribute , DUMMY_NODE_ID , EiiDecl , EiiImpl , ItemKind , MetaItem , Mutability , Path , StmtKind ,
5+ Visibility , ast,
56} ;
67use rustc_ast_pretty:: pprust:: path_to_string;
78use rustc_expand:: base:: { Annotatable , ExtCtxt } ;
@@ -11,7 +12,7 @@ use thin_vec::{ThinVec, thin_vec};
1112use crate :: errors:: {
1213 EiiExternTargetExpectedList , EiiExternTargetExpectedMacro , EiiExternTargetExpectedUnsafe ,
1314 EiiMacroExpectedMaxOneArgument , EiiOnlyOnce , EiiSharedMacroInStatementPosition ,
14- EiiSharedMacroTarget , EiiStaticArgumentRequired , EiiStaticDefault ,
15+ EiiSharedMacroTarget , EiiStaticArgumentRequired , EiiStaticDefault , EiiStaticMutable ,
1516} ;
1617
1718/// ```rust
@@ -100,6 +101,15 @@ fn eii_(
100101 } ) ;
101102 return vec ! [ ] ;
102103 }
104+
105+ // Mut statics are currently not supported
106+ if stat. mutability == Mutability :: Mut {
107+ ecx. dcx ( ) . emit_err ( EiiStaticMutable {
108+ span : eii_attr_span,
109+ name : path_to_string ( & meta_item. path ) ,
110+ } ) ;
111+ }
112+
103113 ( item. span , stat. ident )
104114 }
105115 _ => {
0 commit comments