@@ -941,7 +941,7 @@ object Parsers {
941941 var opStack : List [OpInfo ] = Nil
942942
943943 def checkAssoc (offset : Token , op1 : Name , op2 : Name , op2LeftAssoc : Boolean ): Unit =
944- if (isLeftAssoc( op1) ! = op2LeftAssoc)
944+ if (op1.isRightAssocOperatorName = = op2LeftAssoc)
945945 syntaxError(MixedLeftAndRightAssociativeOps (op1, op2, op2LeftAssoc), offset)
946946
947947 def reduceStack (base : List [OpInfo ], top : Tree , prec : Int , leftAssoc : Boolean , op2 : Name , isType : Boolean ): Tree = {
@@ -981,7 +981,7 @@ object Parsers {
981981 def recur (top : Tree ): Tree =
982982 if (isIdent && isOperator) {
983983 val op = if (isType) typeIdent() else termIdent()
984- val top1 = reduceStack(base, top, precedence(op.name), isLeftAssoc( op.name) , op.name, isType)
984+ val top1 = reduceStack(base, top, precedence(op.name), ! op.name.isRightAssocOperatorName , op.name, isType)
985985 opStack = OpInfo (top1, op, in.offset) :: opStack
986986 colonAtEOLOpt()
987987 newLineOptWhenFollowing(canStartOperand)
@@ -3330,7 +3330,7 @@ object Parsers {
33303330 typeParamClause(ParamOwner .Def )
33313331 else leadingTparams
33323332 val vparamss = paramClauses() match
3333- case rparams :: rparamss if leadingVparamss.nonEmpty && ! isLeftAssoc( ident.name) =>
3333+ case rparams :: rparamss if leadingVparamss.nonEmpty && ident.name.isRightAssocOperatorName =>
33343334 rparams :: leadingVparamss ::: rparamss
33353335 case rparamss =>
33363336 leadingVparamss ::: rparamss
0 commit comments