diff --git a/src/parser/expr.rs b/src/parser/expr.rs index 526ffb8..f40b5e9 100644 --- a/src/parser/expr.rs +++ b/src/parser/expr.rs @@ -440,7 +440,7 @@ fn from_bind(p: &mut Parser<'_>) -> PResult<(BindOp, PPrec, Option, Optio let bk = match p.peek()?.kind { // 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::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::Enum => (BindOp::Enum, PPrec::Tuple, None, None, None), TKind::Fn => (BindOp::Fn, PPrec::Fn, None, Some(Prec::Body), None), diff --git a/src/parser/pat.rs b/src/parser/pat.rs index 137852a..d8826e2 100644 --- a/src/parser/pat.rs +++ b/src/parser/pat.rs @@ -151,7 +151,7 @@ impl<'t> Parse<'t> for Pat { let kind = tok.kind; head = match op { 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( op, match p.consume().peek().map(Token::kind) {