@@ -927,7 +927,7 @@ object Parsers {
927927 var opStack : List [OpInfo ] = Nil
928928
929929 def checkAssoc (offset : Token , op1 : Name , op2 : Name , op2LeftAssoc : Boolean ): Unit =
930- if (isLeftAssoc( op1) ! = op2LeftAssoc)
930+ if (op1.isRightAssocOperatorName = = op2LeftAssoc)
931931 syntaxError(MixedLeftAndRightAssociativeOps (op1, op2, op2LeftAssoc), offset)
932932
933933 def reduceStack (base : List [OpInfo ], top : Tree , prec : Int , leftAssoc : Boolean , op2 : Name , isType : Boolean ): Tree = {
@@ -967,7 +967,7 @@ object Parsers {
967967 def recur (top : Tree ): Tree =
968968 if (isIdent && isOperator) {
969969 val op = if (isType) typeIdent() else termIdent()
970- val top1 = reduceStack(base, top, precedence(op.name), isLeftAssoc( op.name) , op.name, isType)
970+ val top1 = reduceStack(base, top, precedence(op.name), ! op.name.isRightAssocOperatorName , op.name, isType)
971971 opStack = OpInfo (top1, op, in.offset) :: opStack
972972 colonAtEOLOpt()
973973 newLineOptWhenFollowing(canStartOperand)
@@ -3316,7 +3316,7 @@ object Parsers {
33163316 typeParamClause(ParamOwner .Def )
33173317 else leadingTparams
33183318 val vparamss = paramClauses() match
3319- case rparams :: rparamss if leadingVparamss.nonEmpty && ! isLeftAssoc( ident.name) =>
3319+ case rparams :: rparamss if leadingVparamss.nonEmpty && ident.name.isRightAssocOperatorName =>
33203320 rparams :: leadingVparamss ::: rparamss
33213321 case rparamss =>
33223322 leadingVparamss ::: rparamss
0 commit comments