branch: elpa/rust-mode commit c12348e40531fc7e7325368621a0e5f8031d99b2 Merge: 369f81626c 4ea4920319 Author: Jim Blandy <j...@red-bean.com> Commit: GitHub <nore...@github.com>
Merge pull request #489 from jimblandy/use-when-let Use when-let as appropriate. --- rust-mode.el | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/rust-mode.el b/rust-mode.el index 780474f16f..4bb1bcb67d 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -15,7 +15,9 @@ ;;; Code: -(eval-when-compile (require 'rx)) +(eval-when-compile + (require 'rx) + (require 'subr-x)) (defvar rust-load-optional-libraries t "Whether loading `rust-mode' also loads optional libraries. @@ -948,12 +950,11 @@ and end." (defun rust-string-interpolation-matcher (limit) "Match next Rust interpolation marker before LIMIT and set match data if found. Returns nil if not within a Rust string." - (when (rust-in-str) - (let ((match (rust-next-string-interpolation limit))) - (when match - (set-match-data match) - (goto-char (cadr match)) - match)))) + (when-let (((rust-in-str)) + (match (rust-next-string-interpolation limit))) + (set-match-data match) + (goto-char (cadr match)) + match)) (defun rust-syntax-class-before-point () (when (> (point) 1) @@ -976,19 +977,18 @@ Returns nil if not within a Rust string." ;; We need to be able to back up past the Fn(args) -> RT form as well. If ;; we're looking back at this, we want to end up just after "Fn". ((member (char-before) '(?\] ?\) )) - (let* ((is-paren (rust-looking-back-str ")")) - (dest (save-excursion - (backward-sexp) - (rust-rewind-irrelevant) - (or - (when (rust-looking-back-str "->") - (backward-char 2) - (rust-rewind-irrelevant) - (when (rust-looking-back-str ")") - (backward-sexp) - (point))) - (and is-paren (point)))))) - (when dest + (let ((is-paren (rust-looking-back-str ")"))) + (when-let ((dest (save-excursion + (backward-sexp) + (rust-rewind-irrelevant) + (or + (when (rust-looking-back-str "->") + (backward-char 2) + (rust-rewind-irrelevant) + (when (rust-looking-back-str ")") + (backward-sexp) + (point))) + (and is-paren (point)))))) (goto-char dest)))))) (defun rust-rewind-to-decl-name () @@ -1365,9 +1365,8 @@ whichever comes first." (defun rust-syntax-propertize (start end) "A `syntax-propertize-function' to apply properties from START to END." (goto-char start) - (let ((str-start (rust-in-str-or-cmnt))) - (when str-start - (rust--syntax-propertize-raw-string str-start end))) + (when-let ((str-start (rust-in-str-or-cmnt))) + (rust--syntax-propertize-raw-string str-start end)) (funcall (syntax-propertize-rules ;; Character literals.