parser: Tweak type and fn precedence

This commit is contained in:
2025-12-24 17:44:59 -05:00
parent 4a38a0ebbf
commit e199e15804
2 changed files with 2 additions and 2 deletions

View File

@@ -440,7 +440,7 @@ fn from_bind(p: &mut Parser<'_>) -> PResult<(BindOp, PPrec, Option<TKind>, Optio
let bk = match p.peek()?.kind { let bk = match p.peek()?.kind {
// Token Operator Pat prec Body Token Body prec Else prec // Token Operator Pat prec Body Token Body prec Else prec
TKind::Let => (BindOp::Let, PPrec::Tuple, Some(TKind::Eq), Some(Prec::Tuple), Some(Prec::Body)), TKind::Let => (BindOp::Let, PPrec::Tuple, Some(TKind::Eq), Some(Prec::Tuple), Some(Prec::Body)),
TKind::Type => (BindOp::Type, PPrec::Tuple, Some(TKind::Eq), Some(Prec::Extend), None), TKind::Type => (BindOp::Type, PPrec::Alt, Some(TKind::Eq), Some(Prec::Tuple), None),
TKind::Struct => (BindOp::Struct, PPrec::Tuple, None, None, None), TKind::Struct => (BindOp::Struct, PPrec::Tuple, None, None, None),
TKind::Enum => (BindOp::Enum, PPrec::Tuple, None, None, None), TKind::Enum => (BindOp::Enum, PPrec::Tuple, None, None, None),
TKind::Fn => (BindOp::Fn, PPrec::Fn, None, Some(Prec::Body), None), TKind::Fn => (BindOp::Fn, PPrec::Fn, None, Some(Prec::Body), None),

View File

@@ -151,7 +151,7 @@ impl<'t> Parse<'t> for Pat {
let kind = tok.kind; let kind = tok.kind;
head = match op { head = match op {
PatOp::Typed => Pat::Op(op, vec![head, p.consume().parse(prec.next())?]), PatOp::Typed => Pat::Op(op, vec![head, p.consume().parse(prec.next())?]),
PatOp::Fn => Pat::Op(op, vec![head, p.consume().parse(Prec::Fn.next())?]), PatOp::Fn => Pat::Op(op, vec![head, p.consume().parse(Prec::Fn)?]),
PatOp::RangeEx | PatOp::RangeIn => Pat::Op( PatOp::RangeEx | PatOp::RangeIn => Pat::Op(
op, op,
match p.consume().peek().map(Token::kind) { match p.consume().peek().map(Token::kind) {