diff --git a/rust-mode-tests.el b/rust-mode-tests.el index 3e6c67aa..64d65c42 100644 --- a/rust-mode-tests.el +++ b/rust-mode-tests.el @@ -1296,6 +1296,11 @@ list of substrings of `STR' each followed by its face." "let foo;" '("let" font-lock-keyword-face "foo" font-lock-variable-name-face)) + (rust-test-font-lock + "let ref foo;" + '("let" font-lock-keyword-face + "ref" font-lock-keyword-face + "foo" font-lock-variable-name-face)) (rust-test-font-lock "let mut foo;" '("let" font-lock-keyword-face diff --git a/rust-mode.el b/rust-mode.el index 011f615f..51b92d7c 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -687,7 +687,7 @@ match data if found. Returns nil if not within a Rust string." (,rust-re-type-or-constructor 1 font-lock-type-face) ;; Type-inferred binding - (,(concat "\\_<\\(?:let\\|ref\\)\\s-+\\(?:mut\\s-+\\)?" (rust-re-grab rust-re-ident) "\\_>") 1 font-lock-variable-name-face) + (,(concat "\\_<\\(?:let\\s-+ref\\|let\\|ref\\)\\s-+\\(?:mut\\s-+\\)?" (rust-re-grab rust-re-ident) "\\_>") 1 font-lock-variable-name-face) ;; Type names like `Foo::`, highlight excluding the :: (,(rust-path-font-lock-matcher rust-re-uc-ident) 1 font-lock-type-face)