branch: elpa/rust-mode
commit 5462444b2d2a80c94d1d871ee01b2906e3a6cdd3
Author: Chris Gregory <czipp...@gmail.com>
Commit: Jim Blandy <j...@red-bean.com>

    Test pub scoped defun recognition
---
 rust-mode-tests.el | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/rust-mode-tests.el b/rust-mode-tests.el
index abbfcb600c..978941d2a1 100644
--- a/rust-mode-tests.el
+++ b/rust-mode-tests.el
@@ -1094,6 +1094,25 @@ fn test4();")
       (beginning-of-defun 2)
       (should (eq (point) fn-1)))))
 
+(ert-deftest rust-beginning-of-defun-pub-scoped ()
+  (let (fn-1-start fn-1-end fn-2-start fn-2-end)
+   (with-temp-buffer
+     (rust-mode)
+     (setq fn-1-start (point))
+     (insert "pub(crate::mod1) fn test2() {}\n")
+     (setq fn-1-end (point))
+     (setq fn-2-start (point))
+     (insert "pub(self) fn test1() {}\n")
+     (setq fn-3-end (point))
+
+     (goto-char (point-max))
+
+     (beginning-of-defun)
+     (should (eq (point) fn-2-start))
+
+     (beginning-of-defun)
+     (should (eq (point) fn-1-start)))))
+
 (ert-deftest rust-end-of-defun-from-middle-of-fn ()
   (rust-test-motion
    rust-test-motion-string
@@ -1136,6 +1155,25 @@ fn test4();")
    'between-fn1-fn2
    #'end-of-defun -2))
 
+(ert-deftest rust-end-of-defun-pub-scoped ()
+  (let (fn-1-start fn-1-end fn-2-start fn-2-end)
+   (with-temp-buffer
+     (rust-mode)
+     (setq fn-1-start (point))
+     (insert "pub(crate::mod1) fn test2() {}\n")
+     (setq fn-1-end (point))
+     (setq fn-2-start (point))
+     (insert "pub(self) fn test1() {}\n")
+     (setq fn-2-end (point))
+
+     (goto-char (point-min))
+
+     (end-of-defun)
+     (should (eq (point) fn-1-end))
+
+     (end-of-defun)
+     (should (eq (point) fn-2-end)))))
+
 (ert-deftest rust-mark-defun-from-middle-of-fn ()
   (rust-test-region
    rust-test-region-string

Reply via email to