 
 (defun fstar-subp-jump-to-issue (issue)
   "Jump to ISSUE in current buffer."
-  (let ((loc (fstar-issue-loc issue)))
+  (-when-let* ((loc (car (fstar-issue-locs issue))))
     (goto-char (fstar--row-col-offset (fstar-location-line-from loc)
                                  (fstar-location-col-from loc)))))
 
 (defun fstar-subp--local-issue-p (issue)
   "Check if ISSUE came from the current buffer."
-  (string= (expand-file-name buffer-file-name)
-           (expand-file-name (fstar-location-filename (fstar-issue-loc issue)))))
+  (-when-let* ((loc (car (fstar-issue-locs issue))))
+    (string= (expand-file-name buffer-file-name)
+             (expand-file-name (fstar-location-filename loc)))))
 
 (defun fstar-subp-parse-and-highlight-issues (status response overlay)
   "Parse issues in RESPONSE (caused by processing OVERLAY) and display them.


(defun fstar-subp--make-flycheck-issue (issue)
  "Convert an F* ISSUE to a Flycheck issue."
  (let ((loc (fstar-issue-loc issue)))
    (flycheck-error-new-at
     (fstar-location-line-from loc)
     (1+ (fstar-location-col-from loc))


(defun fstar-subp-cleanup-issue (issue &optional ov)
  "Fixup ISSUE: include a file name, and adjust line numbers wrt OV."
  (-when-let* ((loc (car (fstar-issue-locs issue))))
    (when (member (fstar-location-filename loc) '("unknown" "<input>"))
      (cl-assert buffer-file-name) ;; FIXME "unknown"
      (setf (fstar-location-filename loc) buffer-file-name))
    (unless (or (fstar--has-feature 'absolute-linums-in-errors) (null ov))
      (let ((linum (1- (line-number-at-pos (overlay-start ov)))))
        (cl-incf (fstar-location-line-from loc) linum)
        (cl-incf (fstar-location-line-to loc) linum))))
  issue)

(defun fstar-subp--in-issue-p (pt)
  "Check if PT is covered by an F* issue overlay."
