]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix Ruby's operator precedence
authorDmitry Gutov <dgutov@yandex.ru>
Wed, 16 Mar 2016 02:32:59 +0000 (04:32 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Wed, 16 Mar 2016 02:32:59 +0000 (04:32 +0200)
* lisp/progmodes/ruby-mode.el (ruby-smie-grammar):
Rearrange the smie-precs->prec2 form.

lisp/progmodes/ruby-mode.el
test/indent/ruby.rb

index edd89b30c9f901e24aa71a77050b971f94738acc..60480d603c33492215829884647aaa3d8c8367a5 100644 (file)
@@ -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 ()
index 85f2708bd98852c6f3e0e389c2f9e08b6ff49a35..b038512b114cf0e0d58a0301519590a19ddda9b9 100644 (file)
@@ -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