Skip to content

Commit 4c9a573

Browse files
Wip
1 parent 7679b59 commit 4c9a573

File tree

10 files changed

+43
-26
lines changed

10 files changed

+43
-26
lines changed

compiler/rustc_attr_parsing/src/context.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,15 @@ impl<'sess> AttributeParser<'sess, Early> {
665665
target_node_id: NodeId,
666666
features: Option<&'sess Features>,
667667
) -> Option<Attribute> {
668-
let mut parsed = Self::parse_limited_all(sess, attrs, Some(sym), target_span, target_node_id, features, ShouldEmit::Nothing);
668+
let mut parsed = Self::parse_limited_all(
669+
sess,
670+
attrs,
671+
Some(sym),
672+
target_span,
673+
target_node_id,
674+
features,
675+
ShouldEmit::Nothing,
676+
);
669677
assert!(parsed.len() <= 1);
670678
parsed.pop()
671679
}
@@ -679,13 +687,8 @@ impl<'sess> AttributeParser<'sess, Early> {
679687
features: Option<&'sess Features>,
680688
emit_errors: ShouldEmit,
681689
) -> Vec<Attribute> {
682-
let mut p = Self {
683-
features,
684-
tools: Vec::new(),
685-
parse_only,
686-
sess,
687-
stage: Early { emit_errors },
688-
};
690+
let mut p =
691+
Self { features, tools: Vec::new(), parse_only, sess, stage: Early { emit_errors } };
689692
p.parse_attribute_list(
690693
attrs,
691694
target_span,

compiler/rustc_attr_parsing/src/parser.rs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ use rustc_session::errors::report_lit_error;
1818
use rustc_session::parse::ParseSess;
1919
use rustc_span::{ErrorGuaranteed, Ident, Span, Symbol};
2020
use thin_vec::ThinVec;
21+
2122
use crate::ShouldEmit;
22-
use crate::session_diagnostics::{InvalidMetaItem, InvalidMetaItemQuoteIdentSugg, InvalidMetaItemRemoveNegSugg, SuffixedLiteralInAttribute};
23+
use crate::session_diagnostics::{
24+
InvalidMetaItem, InvalidMetaItemQuoteIdentSugg, InvalidMetaItemRemoveNegSugg,
25+
SuffixedLiteralInAttribute,
26+
};
2327

2428
#[derive(Clone, Debug)]
2529
pub struct PathParser<'a>(pub Cow<'a, Path>);
@@ -310,7 +314,10 @@ fn expr_to_lit(
310314
match res {
311315
Ok(lit) => {
312316
if token_lit.suffix.is_some() {
313-
psess.dcx().create_err(SuffixedLiteralInAttribute { span: lit.span }).emit_unless_delay(!should_emit.should_emit());
317+
psess
318+
.dcx()
319+
.create_err(SuffixedLiteralInAttribute { span: lit.span })
320+
.emit_unless_delay(!should_emit.should_emit());
314321
None
315322
} else {
316323
if should_emit.should_emit() && !lit.kind.is_unsuffixed() {
@@ -444,7 +451,7 @@ impl<'a, 'sess> MetaItemListParserContext<'a, 'sess> {
444451
span: self.parser.token.span,
445452
descr: token_descr(&self.parser.token),
446453
quote_ident_sugg: None,
447-
remove_neg_sugg: None
454+
remove_neg_sugg: None,
448455
};
449456

450457
// Suggest quoting idents, e.g. in `#[cfg(key = value)]`. We don't use `Token::ident` and
@@ -463,10 +470,13 @@ impl<'a, 'sess> MetaItemListParserContext<'a, 'sess> {
463470
});
464471
}
465472

466-
if self.parser.token == token::Minus && self.parser.look_ahead(1, |t| matches!(t.kind, rustc_ast::token::TokenKind::Literal {..} ) ) {
467-
err.remove_neg_sugg = Some(InvalidMetaItemRemoveNegSugg {
468-
negative_sign: self.parser.token.span,
469-
});
473+
if self.parser.token == token::Minus
474+
&& self
475+
.parser
476+
.look_ahead(1, |t| matches!(t.kind, rustc_ast::token::TokenKind::Literal { .. }))
477+
{
478+
err.remove_neg_sugg =
479+
Some(InvalidMetaItemRemoveNegSugg { negative_sign: self.parser.token.span });
470480
self.parser.bump();
471481
self.parser.bump();
472482
}

compiler/rustc_attr_parsing/src/session_diagnostics.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,7 @@ pub(crate) struct InvalidMetaItem {
769769
#[subdiagnostic]
770770
pub quote_ident_sugg: Option<InvalidMetaItemQuoteIdentSugg>,
771771
#[subdiagnostic]
772-
pub remove_neg_sugg: Option<InvalidMetaItemRemoveNegSugg>
772+
pub remove_neg_sugg: Option<InvalidMetaItemRemoveNegSugg>,
773773
}
774774

775775
#[derive(Subdiagnostic)]

compiler/rustc_expand/src/expand.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@ use rustc_ast::mut_visit::*;
77
use rustc_ast::ptr::P;
88
use rustc_ast::tokenstream::TokenStream;
99
use rustc_ast::visit::{self, AssocCtxt, Visitor, VisitorResult, try_visit, walk_list};
10-
use rustc_ast::{self as ast, AssocItemKind, AstNodeWrapper, AttrArgs, AttrStyle, AttrVec, DUMMY_NODE_ID, ExprKind, ForeignItemKind, HasAttrs, HasNodeId, Inline, ItemKind, MacStmtStyle, MetaItemInner, MetaItemKind, ModKind, NodeId, PatKind, StmtKind, TyKind, token, CRATE_NODE_ID};
10+
use rustc_ast::{
11+
self as ast, AssocItemKind, AstNodeWrapper, AttrArgs, AttrStyle, AttrVec, CRATE_NODE_ID,
12+
DUMMY_NODE_ID, ExprKind, ForeignItemKind, HasAttrs, HasNodeId, Inline, ItemKind, MacStmtStyle,
13+
MetaItemInner, MetaItemKind, ModKind, NodeId, PatKind, StmtKind, TyKind, token,
14+
};
1115
use rustc_ast_pretty::pprust;
12-
use rustc_attr_parsing::{EvalConfigResult, ShouldEmit, validate_attr, AttributeParser};
16+
use rustc_attr_parsing::{AttributeParser, EvalConfigResult, ShouldEmit, validate_attr};
1317
use rustc_data_structures::flat_map_in_place::FlatMapInPlace;
1418
use rustc_errors::PResult;
1519
use rustc_feature::Features;

compiler/rustc_parse/src/parser/attr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ impl<'a> Parser<'a> {
365365
}
366366

367367
// Note: must be unsuffixed.
368-
pub fn parse_unsuffixed_meta_item_lit(&mut self) -> PResult<'a, ast::MetaItemLit> {
368+
pub(crate) fn parse_unsuffixed_meta_item_lit(&mut self) -> PResult<'a, ast::MetaItemLit> {
369369
let lit = self.parse_meta_item_lit()?;
370370
debug!("checking if {:?} is unsuffixed", lit);
371371

compiler/rustc_parse/src/parser/expr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2069,7 +2069,7 @@ impl<'a> Parser<'a> {
20692069
}
20702070
}
20712071

2072-
pub fn mk_token_lit_char(name: Symbol, span: Span) -> (token::Lit, Span) {
2072+
pub(crate) fn mk_token_lit_char(name: Symbol, span: Span) -> (token::Lit, Span) {
20732073
(token::Lit { symbol: name, suffix: None, kind: token::Char }, span)
20742074
}
20752075

@@ -2109,7 +2109,7 @@ impl<'a> Parser<'a> {
21092109
.or_else(|()| self.handle_missing_lit(Parser::mk_token_lit_char))
21102110
}
21112111

2112-
pub fn parse_meta_item_lit(&mut self) -> PResult<'a, MetaItemLit> {
2112+
pub(crate) fn parse_meta_item_lit(&mut self) -> PResult<'a, MetaItemLit> {
21132113
self.parse_opt_meta_item_lit()
21142114
.ok_or(())
21152115
.or_else(|()| self.handle_missing_lit(Parser::mk_meta_item_lit_char))

compiler/rustc_parse/src/parser/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1363,7 +1363,7 @@ impl<'a> Parser<'a> {
13631363
})
13641364
}
13651365

1366-
pub fn parse_delim_args_inner(&mut self) -> Option<DelimArgs> {
1366+
fn parse_delim_args_inner(&mut self) -> Option<DelimArgs> {
13671367
let delimited = self.check(exp!(OpenParen))
13681368
|| self.check(exp!(OpenBracket))
13691369
|| self.check(exp!(OpenBrace));

tests/ui/attributes/key-value-expansion-on-mac.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ macro_rules! bar {
1111
#[rustc_dummy = stringify!(b)] //~ ERROR attribute value must be a literal
1212
bar!();
1313

14-
fn main() {}
14+
fn main() {}

tests/ui/issues/issue-32782.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ macro_rules! bar (
44

55
macro_rules! foo (
66
() => (
7-
#[allow_internal_unstable] //~ ERROR allow_internal_unstable side-steps
7+
#[allow_internal_unstable()] //~ ERROR allow_internal_unstable side-steps
88
bar!();
99
);
1010
);

tests/ui/issues/issue-32782.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
error[E0658]: allow_internal_unstable side-steps feature gating and stability checks
22
--> $DIR/issue-32782.rs:7:9
33
|
4-
LL | #[allow_internal_unstable]
5-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
4+
LL | #[allow_internal_unstable()]
5+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
66
...
77
LL | foo!();
88
| ------ in this macro invocation

0 commit comments

Comments
 (0)