1
1
#![ deny( rustc:: untranslatable_diagnostic) ]
2
2
3
- use crate :: errors:: {
4
- ArgumentNotAttributes , AttrNoArguments , AttributeMetaItem , AttributeSingleWord ,
5
- AttributesWrongForm , CannotBeNameOfMacro , ExpectedCommaInList , HelperAttributeNameInvalid ,
6
- MacroBodyStability , MacroConstStability , NotAMetaItem , OnlyOneArgument , OnlyOneWord ,
7
- ResolveRelativePath , TakesNoArguments , TraceMacro ,
8
- } ;
3
+ use crate :: errors;
9
4
use crate :: expand:: { self , AstFragment , Invocation } ;
10
5
use crate :: module:: DirOwnership ;
11
6
@@ -796,13 +791,13 @@ impl SyntaxExtension {
796
791
. unwrap_or_else ( || ( None , helper_attrs) ) ;
797
792
let ( stability, const_stability, body_stability) = attr:: find_stability ( & sess, attrs, span) ;
798
793
if let Some ( ( _, sp) ) = const_stability {
799
- sess. emit_err ( MacroConstStability {
794
+ sess. emit_err ( errors :: MacroConstStability {
800
795
span : sp,
801
796
head_span : sess. source_map ( ) . guess_head_span ( span) ,
802
797
} ) ;
803
798
}
804
799
if let Some ( ( _, sp) ) = body_stability {
805
- sess. emit_err ( MacroBodyStability {
800
+ sess. emit_err ( errors :: MacroBodyStability {
806
801
span : sp,
807
802
head_span : sess. source_map ( ) . guess_head_span ( span) ,
808
803
} ) ;
@@ -1143,7 +1138,7 @@ impl<'a> ExtCtxt<'a> {
1143
1138
}
1144
1139
pub fn trace_macros_diag ( & mut self ) {
1145
1140
for ( span, notes) in self . expansions . iter ( ) {
1146
- let mut db = self . sess . parse_sess . create_note ( TraceMacro { span : * span } ) ;
1141
+ let mut db = self . sess . parse_sess . create_note ( errors :: TraceMacro { span : * span } ) ;
1147
1142
for note in notes {
1148
1143
db. note ( note) ;
1149
1144
}
@@ -1197,7 +1192,7 @@ pub fn resolve_path(
1197
1192
. expect ( "attempting to resolve a file path in an external file" ) ,
1198
1193
FileName :: DocTest ( path, _) => path,
1199
1194
other => {
1200
- return Err ( ResolveRelativePath {
1195
+ return Err ( errors :: ResolveRelativePath {
1201
1196
span,
1202
1197
path : parse_sess. source_map ( ) . filename_for_diagnostics ( & other) . to_string ( ) ,
1203
1198
}
@@ -1279,7 +1274,7 @@ pub fn expr_to_string(
1279
1274
/// done as rarely as possible).
1280
1275
pub fn check_zero_tts ( cx : & ExtCtxt < ' _ > , span : Span , tts : TokenStream , name : & str ) {
1281
1276
if !tts. is_empty ( ) {
1282
- cx. emit_err ( TakesNoArguments { span, name } ) ;
1277
+ cx. emit_err ( errors :: TakesNoArguments { span, name } ) ;
1283
1278
}
1284
1279
}
1285
1280
@@ -1307,14 +1302,14 @@ pub fn get_single_str_from_tts(
1307
1302
) -> Option < Symbol > {
1308
1303
let mut p = cx. new_parser_from_tts ( tts) ;
1309
1304
if p. token == token:: Eof {
1310
- cx. emit_err ( OnlyOneArgument { span, name } ) ;
1305
+ cx. emit_err ( errors :: OnlyOneArgument { span, name } ) ;
1311
1306
return None ;
1312
1307
}
1313
1308
let ret = parse_expr ( & mut p) ?;
1314
1309
let _ = p. eat ( & token:: Comma ) ;
1315
1310
1316
1311
if p. token != token:: Eof {
1317
- cx. emit_err ( OnlyOneArgument { span, name } ) ;
1312
+ cx. emit_err ( errors :: OnlyOneArgument { span, name } ) ;
1318
1313
}
1319
1314
expr_to_string ( cx, ret, "argument must be a string literal" ) . map ( |( s, _) | s)
1320
1315
}
@@ -1336,7 +1331,7 @@ pub fn get_exprs_from_tts(cx: &mut ExtCtxt<'_>, tts: TokenStream) -> Option<Vec<
1336
1331
continue ;
1337
1332
}
1338
1333
if p. token != token:: Eof {
1339
- cx. emit_err ( ExpectedCommaInList { span : p. token . span } ) ;
1334
+ cx. emit_err ( errors :: ExpectedCommaInList { span : p. token . span } ) ;
1340
1335
return None ;
1341
1336
}
1342
1337
}
@@ -1353,51 +1348,58 @@ pub fn parse_macro_name_and_helper_attrs(
1353
1348
// `#[proc_macro_derive(Foo, attributes(A, ..))]`
1354
1349
let list = attr. meta_item_list ( ) ?;
1355
1350
if list. len ( ) != 1 && list. len ( ) != 2 {
1356
- diag. emit_err ( AttrNoArguments { span : attr. span } ) ;
1351
+ diag. emit_err ( errors :: AttrNoArguments { span : attr. span } ) ;
1357
1352
return None ;
1358
1353
}
1359
1354
let Some ( trait_attr) = list[ 0 ] . meta_item ( ) else {
1360
- diag. emit_err ( NotAMetaItem { span : list[ 0 ] . span ( ) } ) ;
1355
+ diag. emit_err ( errors :: NotAMetaItem { span : list[ 0 ] . span ( ) } ) ;
1361
1356
return None ;
1362
1357
} ;
1363
1358
let trait_ident = match trait_attr. ident ( ) {
1364
1359
Some ( trait_ident) if trait_attr. is_word ( ) => trait_ident,
1365
1360
_ => {
1366
- diag. emit_err ( OnlyOneWord { span : trait_attr. span } ) ;
1361
+ diag. emit_err ( errors :: OnlyOneWord { span : trait_attr. span } ) ;
1367
1362
return None ;
1368
1363
}
1369
1364
} ;
1370
1365
1371
1366
if !trait_ident. name . can_be_raw ( ) {
1372
- diag. emit_err ( CannotBeNameOfMacro { span : trait_attr. span , trait_ident, macro_type } ) ;
1367
+ diag. emit_err ( errors:: CannotBeNameOfMacro {
1368
+ span : trait_attr. span ,
1369
+ trait_ident,
1370
+ macro_type,
1371
+ } ) ;
1373
1372
}
1374
1373
1375
1374
let attributes_attr = list. get ( 1 ) ;
1376
1375
let proc_attrs: Vec < _ > = if let Some ( attr) = attributes_attr {
1377
1376
if !attr. has_name ( sym:: attributes) {
1378
- diag. emit_err ( ArgumentNotAttributes { span : attr. span ( ) } ) ;
1377
+ diag. emit_err ( errors :: ArgumentNotAttributes { span : attr. span ( ) } ) ;
1379
1378
}
1380
1379
attr. meta_item_list ( )
1381
1380
. unwrap_or_else ( || {
1382
- diag. emit_err ( AttributesWrongForm { span : attr. span ( ) } ) ;
1381
+ diag. emit_err ( errors :: AttributesWrongForm { span : attr. span ( ) } ) ;
1383
1382
& [ ]
1384
1383
} )
1385
1384
. iter ( )
1386
1385
. filter_map ( |attr| {
1387
1386
let Some ( attr) = attr. meta_item ( ) else {
1388
- diag. emit_err ( AttributeMetaItem { span : attr. span ( ) } ) ;
1387
+ diag. emit_err ( errors :: AttributeMetaItem { span : attr. span ( ) } ) ;
1389
1388
return None ;
1390
1389
} ;
1391
1390
1392
1391
let ident = match attr. ident ( ) {
1393
1392
Some ( ident) if attr. is_word ( ) => ident,
1394
1393
_ => {
1395
- diag. emit_err ( AttributeSingleWord { span : attr. span } ) ;
1394
+ diag. emit_err ( errors :: AttributeSingleWord { span : attr. span } ) ;
1396
1395
return None ;
1397
1396
}
1398
1397
} ;
1399
1398
if !ident. name . can_be_raw ( ) {
1400
- diag. emit_err ( HelperAttributeNameInvalid { span : attr. span , name : ident } ) ;
1399
+ diag. emit_err ( errors:: HelperAttributeNameInvalid {
1400
+ span : attr. span ,
1401
+ name : ident,
1402
+ } ) ;
1401
1403
}
1402
1404
1403
1405
Some ( ident. name )
0 commit comments