Parse ref as operator (#6539)

This is the first step of implementing the guidance in #6342.

---------

Co-authored-by: josh11b <15258583+josh11b@users.noreply.github.com>
This commit is contained in:
Geoff Romer
2025-12-30 19:18:34 +00:00
committed by GitHub
co-authored by josh11b
parent 9cdb9c803a
commit e940cb72b6
14 changed files with 177 additions and 162 deletions
+5 -1
View File
@@ -30,7 +30,8 @@ struct PrecedenceGroup::OperatorPriorityTable {
{Additive, Modulo, BitwiseAnd, BitwiseOr, BitwiseXor, BitShift},
{Relational, Where});
MarkHigherThan({Relational, LogicalPrefix}, {LogicalAnd, LogicalOr});
MarkHigherThan({As, LogicalAnd, LogicalOr, Where}, {If});
MarkHigherThan({As, LogicalAnd, LogicalOr, Where}, {Ref});
MarkHigherThan({Ref}, {If});
MarkHigherThan({If}, {Assignment});
MarkHigherThan({Assignment, IncrementDecrement}, {Lowest});
@@ -166,6 +167,9 @@ auto PrecedenceGroup::ForLeading(Lex::TokenKind kind)
case Lex::TokenKind::If:
return PrecedenceGroup(If);
case Lex::TokenKind::Ref:
return PrecedenceGroup(Ref);
case Lex::TokenKind::Const:
case Lex::TokenKind::Partial:
return PrecedenceGroup(TypePrefix);