if $c:expr { Some($r:expr) } else { None }
=>> $c.then(|| $r)
This commit is contained in:
parent
af3c8b2726
commit
8751fa1a9a
54 changed files with 159 additions and 281 deletions
|
@ -1283,22 +1283,16 @@ impl<'a> Parser<'a> {
|
|||
}
|
||||
|
||||
fn parse_delim_args_inner(&mut self) -> Option<DelimArgs> {
|
||||
if self.check(&token::OpenDelim(Delimiter::Parenthesis))
|
||||
let delimited = self.check(&token::OpenDelim(Delimiter::Parenthesis))
|
||||
|| self.check(&token::OpenDelim(Delimiter::Bracket))
|
||||
|| self.check(&token::OpenDelim(Delimiter::Brace))
|
||||
{
|
||||
match self.parse_token_tree() {
|
||||
// We've confirmed above that there is a delimiter so unwrapping is OK.
|
||||
TokenTree::Delimited(dspan, delim, tokens) => Some(DelimArgs {
|
||||
dspan,
|
||||
delim: MacDelimiter::from_token(delim).unwrap(),
|
||||
tokens,
|
||||
}),
|
||||
_ => unreachable!(),
|
||||
}
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|| self.check(&token::OpenDelim(Delimiter::Brace));
|
||||
|
||||
delimited.then(|| {
|
||||
// We've confirmed above that there is a delimiter so unwrapping is OK.
|
||||
let TokenTree::Delimited(dspan, delim, tokens) = self.parse_token_tree() else { unreachable!() };
|
||||
|
||||
DelimArgs { dspan, delim: MacDelimiter::from_token(delim).unwrap(), tokens }
|
||||
})
|
||||
}
|
||||
|
||||
fn parse_or_use_outer_attributes(
|
||||
|
|
|
@ -404,7 +404,7 @@ impl<'a> Parser<'a> {
|
|||
|
||||
let is_first_invocation = style == PathStyle::Expr;
|
||||
// Take a snapshot before attempting to parse - we can restore this later.
|
||||
let snapshot = if is_first_invocation { Some(self.clone()) } else { None };
|
||||
let snapshot = is_first_invocation.then(|| self.clone());
|
||||
|
||||
debug!("parse_generic_args_with_leading_angle_bracket_recovery: (snapshotting)");
|
||||
match self.parse_angle_args(ty_generics) {
|
||||
|
|
|
@ -450,8 +450,7 @@ impl<'a> Parser<'a> {
|
|||
|
||||
fn parse_borrowed_pointee(&mut self) -> PResult<'a, TyKind> {
|
||||
let and_span = self.prev_token.span;
|
||||
let mut opt_lifetime =
|
||||
if self.check_lifetime() { Some(self.expect_lifetime()) } else { None };
|
||||
let mut opt_lifetime = self.check_lifetime().then(|| self.expect_lifetime());
|
||||
let mut mutbl = self.parse_mutability();
|
||||
if self.token.is_lifetime() && mutbl == Mutability::Mut && opt_lifetime.is_none() {
|
||||
// A lifetime is invalid here: it would be part of a bare trait bound, which requires
|
||||
|
@ -871,7 +870,7 @@ impl<'a> Parser<'a> {
|
|||
None
|
||||
};
|
||||
|
||||
let maybe = if self.eat(&token::Question) { Some(self.prev_token.span) } else { None };
|
||||
let maybe = self.eat(&token::Question).then(|| self.prev_token.span);
|
||||
|
||||
Ok(BoundModifiers { maybe, maybe_const })
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue