branch: elpa/go-mode
commit 775c77a1b32e6012c55c59a8195483aff9f5bed4
Author: Iwasaki Yudai <[email protected]>
Commit: Dominik Honnef <[email protected]>

    immediately store match data in go-unused-imports-lines
    
    Calling other functions, such as file-truename in our case, can
    overwrite the match data.
---
 go-mode.el | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/go-mode.el b/go-mode.el
index fca4937..132a4cd 100644
--- a/go-mode.el
+++ b/go-mode.el
@@ -1311,9 +1311,11 @@ If IGNORE-CASE is non-nil, the comparison is 
case-insensitive."
   (reverse (remove nil
                    (mapcar
                     (lambda (line)
-                      (if (string-match "^\\(.+\\):\\([[:digit:]]+\\): 
imported and not used: \".+\".*$" line)
-                          (if (string= (file-truename (match-string 1 line)) 
(file-truename buffer-file-name))
-                              (string-to-number (match-string 2 line)))))
+                      (when (string-match "^\\(.+\\):\\([[:digit:]]+\\): 
imported and not used: \".+\".*$" line)
+                        (let ((error-file-name (match-string 1 line))
+                              (error-line-num (match-string 2 line)))
+                          (if (string= (file-truename error-file-name) 
(file-truename buffer-file-name))
+                              (string-to-number error-line-num)))))
                     (split-string (shell-command-to-string
                                    (concat go-command
                                            (if (string-match "_test\.go$" 
buffer-file-truename)

Reply via email to