parser: Tweak type and fn precedence
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user