From: Dmitry Gutov Date: Wed, 16 Mar 2016 02:32:59 +0000 (+0200) Subject: Fix Ruby's operator precedence X-Git-Tag: emacs-25.0.93~89^2~59 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2036be4666becf02f4524d63595e3da55b14ff0d;p=emacs.git Fix Ruby's operator precedence * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Rearrange the smie-precs->prec2 form. --- diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index edd89b30c9f..60480d603c3 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -406,16 +406,17 @@ It is used when `ruby-encoding-magic-comment-style' is set to `custom'." '((right "=") (right "+=" "-=" "*=" "/=" "%=" "**=" "&=" "|=" "^=" "<<=" ">>=" "&&=" "||=") - (left ".." "...") - (left "+" "-") - (left "*" "/" "%" "**") + (nonassoc ".." "...") (left "&&" "||") - (left "^" "&" "|") (nonassoc "<=>") - (nonassoc ">" ">=" "<" "<=") (nonassoc "==" "===" "!=") (nonassoc "=~" "!~") + (nonassoc ">" ">=" "<" "<=") + (left "^" "&" "|") (left "<<" ">>") + (left "+" "-") + (left "*" "/" "%") + (left "**") (assoc ".")))))) (defun ruby-smie--bosp () diff --git a/test/indent/ruby.rb b/test/indent/ruby.rb index 85f2708bd98..b038512b114 100644 --- a/test/indent/ruby.rb +++ b/test/indent/ruby.rb @@ -295,10 +295,31 @@ foo > bar && tee < qux zux do - foo == bar and + foo == bar && tee == qux + + a = 3 and + b = 4 end +foo + bar == + tee + qux + +1 .. 2 && + 3 + +3 < 4 + + 5 + +10 << 4 ^ + 20 + +100 + 2 >> + 3 + +2 ** 10 / + 2 + foo ^ bar