branch: elpa/flycheck
commit 2236df19974a923713cea7ab1de451c8aa6a0c56
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>

    Simplify flycheck-parse-statix nested let-alist
    
    Use let-alist on the outer error first, then nest let-alist on
    the diagnostic.  Access the few outer fields (severity, note,
    code) via alist-get inside the inner let-alist, eliminating the
    intermediate let bindings that were needed to carry values across.
---
 flycheck.el | 45 ++++++++++++++++++++-------------------------
 1 file changed, 20 insertions(+), 25 deletions(-)

diff --git a/flycheck.el b/flycheck.el
index a758c57a58..5601c20fd9 100644
--- a/flycheck.el
+++ b/flycheck.el
@@ -11337,31 +11337,26 @@ the BUFFER that was checked respectively.
 See URL `https://github.com/nerdypepper/statix' for more
 information about statix."
   (mapcar (lambda (err)
-            ;; Diagnostic information is a (seemingly always) 1 element array.
-            (let-alist (car (alist-get 'diagnostics err))
-              (let ((message .message)
-                    (start-line .at.from.line)
-                    (start-column .at.from.column)
-                    (end-line .at.to.line)
-                    (end-column .at.to.column))
-
-                (let-alist err
-                  (flycheck-error-new-at
-                   start-line
-                   start-column
-                   (pcase .severity ("Error" 'error)
-                          ("Warn" 'warning)
-                          (_ 'warning))
-                   (format "%s: %s" .note message)
-                   :id (format "%s%02d" (pcase .severity
-                                          ("Error" "E")
-                                          ("Warn" "W")
-                                          (_ "")) .code)
-                   :checker checker
-                   :buffer buffer
-                   :filename (buffer-file-name buffer)
-                   :end-line end-line
-                   :end-column end-column)))))
+            (let-alist err
+              ;; Diagnostic information is a (seemingly always) 1 element 
array.
+              (let-alist (car .diagnostics)
+                (flycheck-error-new-at
+                 .at.from.line
+                 .at.from.column
+                 (pcase (alist-get 'severity err)
+                   ("Error" 'error)
+                   (_ 'warning))
+                 (format "%s: %s" (alist-get 'note err) .message)
+                 :id (format "%s%02d" (pcase (alist-get 'severity err)
+                                        ("Error" "E")
+                                        ("Warn" "W")
+                                        (_ ""))
+                             (alist-get 'code err))
+                 :checker checker
+                 :buffer buffer
+                 :filename (buffer-file-name buffer)
+                 :end-line .at.to.line
+                 :end-column .at.to.column))))
           (alist-get 'report (car (flycheck-parse-json output)))))
 
 (flycheck-define-checker statix

Reply via email to