rustc_parse: Tweak the function parameter name check
This commit is contained in:
parent
3f9bddc7fe
commit
65a666c339
@ -6,6 +6,7 @@ use crate::maybe_whole;
|
|||||||
|
|
||||||
use rustc_ast_pretty::pprust;
|
use rustc_ast_pretty::pprust;
|
||||||
use rustc_errors::{struct_span_err, Applicability, PResult, StashKey};
|
use rustc_errors::{struct_span_err, Applicability, PResult, StashKey};
|
||||||
|
use rustc_span::edition::Edition;
|
||||||
use rustc_span::source_map::{self, Span};
|
use rustc_span::source_map::{self, Span};
|
||||||
use rustc_span::symbol::{kw, sym, Symbol};
|
use rustc_span::symbol::{kw, sym, Symbol};
|
||||||
use syntax::ast::{self, AttrStyle, AttrVec, Attribute, Ident, DUMMY_NODE_ID};
|
use syntax::ast::{self, AttrStyle, AttrVec, Attribute, Ident, DUMMY_NODE_ID};
|
||||||
@ -636,7 +637,7 @@ impl<'a> Parser<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn parse_trait_item(&mut self) -> PResult<'a, Option<Option<P<AssocItem>>>> {
|
pub fn parse_trait_item(&mut self) -> PResult<'a, Option<Option<P<AssocItem>>>> {
|
||||||
self.parse_assoc_item(|t| t.span.rust_2018())
|
self.parse_assoc_item(|edition| edition >= Edition::Edition2018)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Parses associated items.
|
/// Parses associated items.
|
||||||
@ -1380,7 +1381,7 @@ impl<'a> Parser<'a> {
|
|||||||
/// The parsing configuration used to parse a parameter list (see `parse_fn_params`).
|
/// The parsing configuration used to parse a parameter list (see `parse_fn_params`).
|
||||||
///
|
///
|
||||||
/// The function decides if, per-parameter `p`, `p` must have a pattern or just a type.
|
/// The function decides if, per-parameter `p`, `p` must have a pattern or just a type.
|
||||||
type ReqName = fn(&token::Token) -> bool;
|
type ReqName = fn(Edition) -> bool;
|
||||||
|
|
||||||
/// Parsing of functions and methods.
|
/// Parsing of functions and methods.
|
||||||
impl<'a> Parser<'a> {
|
impl<'a> Parser<'a> {
|
||||||
@ -1536,7 +1537,7 @@ impl<'a> Parser<'a> {
|
|||||||
|
|
||||||
let is_name_required = match self.token.kind {
|
let is_name_required = match self.token.kind {
|
||||||
token::DotDotDot => false,
|
token::DotDotDot => false,
|
||||||
_ => req_name(&self.normalized_token),
|
_ => req_name(self.normalized_token.span.edition()),
|
||||||
};
|
};
|
||||||
let (pat, ty) = if is_name_required || self.is_named_param() {
|
let (pat, ty) = if is_name_required || self.is_named_param() {
|
||||||
debug!("parse_param_general parse_pat (is_name_required:{})", is_name_required);
|
debug!("parse_param_general parse_pat (is_name_required:{})", is_name_required);
|
||||||
|
Loading…
Reference in New Issue
Block a user