                            (back-to-indentation)
                            (if (looking-at "#")
                                (* rust-indent-offset level)
-                             (* rust-indent-offset (+ 1 level))))))))))
+                             (* rust-indent-offset (+ 1 level)))))))))))
 
               ;; Otherwise we're in a column-zero definition
               (t 0))))))

              ;;    or one further indent from that if either current line
              ;;    begins with 'else', or previous line didn't end in
              ;;    semi, comma or brace (other than whitespace and line
              ;;    comments) , and wasn't an attribute. PHEW.
              ((> level 0)
               (let ((pt (point)))
                 (rust-rewind-irrelevant)
                 (backward-up-list)
                 (if (and
                      (looking-at "[[(]")
                      ; We don't want to indent out to the open bracket if the
                      ; open bracket ends the line
                      (save-excursion 
                        (forward-char)
                        (not (looking-at "[[:space:]]*\\(?://.*\\)?$"))))
                     (+ 1 (current-column))
                   (progn
                     (goto-char pt)
                     (back-to-indentation)
                     (if (looking-at "\\<else\\>")

;; Url: https://github.com/mozilla/rust

(eval-when-compile (require 'cl))
(eval-when-compile (require 'misc))

;; Syntax definitions and helpers
(defvar rust-mode-syntax-table
