summaryrefslogtreecommitdiff
path: root/src/parse/mod.rs
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2021-11-28 18:18:45 +0100
committerMartin Haug <mhaug@live.de>2021-11-28 18:18:45 +0100
commite05eb5fda5d1dfeef168b6fc071b20fdbcce2dcd (patch)
tree6b4585c065ce21a76784cd0915d9b6e0a414f88d /src/parse/mod.rs
parentedc686d7384470068858e16f2926cf50f31b2c90 (diff)
Code Review: Parser, I can't let you do this
Diffstat (limited to 'src/parse/mod.rs')
-rw-r--r--src/parse/mod.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index 2c421374..2c5afb6b 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -64,7 +64,7 @@ pub fn parse_markup_elements(
/// Parse a template literal. Returns `Some` if all of the input was consumed.
pub fn parse_template(source: &str, _: bool) -> Option<(Vec<Green>, bool)> {
let mut p = Parser::new(source, TokenMode::Code);
- if !matches!(p.peek(), Some(NodeKind::LeftBracket)) {
+ if !p.at(&NodeKind::LeftBracket) {
return None;
}
@@ -75,7 +75,7 @@ pub fn parse_template(source: &str, _: bool) -> Option<(Vec<Green>, bool)> {
/// Parse a code block. Returns `Some` if all of the input was consumed.
pub fn parse_block(source: &str, _: bool) -> Option<(Vec<Green>, bool)> {
let mut p = Parser::new(source, TokenMode::Code);
- if !matches!(p.peek(), Some(NodeKind::LeftBrace)) {
+ if !p.at(&NodeKind::LeftBrace) {
return None;
}
@@ -252,14 +252,14 @@ fn expr_prec(p: &mut Parser, atomic: bool, min_prec: usize) -> ParseResult {
let marker = p.marker();
// Start the unary expression.
- match (!atomic).then(|| p.peek().and_then(UnOp::from_token)).flatten() {
- Some(op) => {
+ match p.peek().and_then(UnOp::from_token) {
+ Some(op) if !atomic => {
p.eat();
let prec = op.precedence();
expr_prec(p, atomic, prec)?;
marker.end(p, NodeKind::Unary);
}
- None => primary(p, atomic)?,
+ _ => primary(p, atomic)?,
};
loop {