           ;; Emacsmirror ostensibly contains all packages that are in
           ;; MELPA. But you never know. It's better to return a
           ;; non-Git recipe than to error out entirely.
-          melpa-recipe
-          ;; Oh no!
-          (error (concat "Could not find package %S "
-                         "in MELPA, GNU ELPA, or "
-                         "Emacsmirror")
-                 package)))))
-
-(defun straight--convert-recipe (melpa-style-recipe &optional cause)
+          melpa-recipe))))
+
+;; `cl-defun' creates a block so we can use `cl-return-from'.
+(cl-defun straight--convert-recipe (melpa-style-recipe &optional cause)
   "Convert a MELPA-STYLE-RECIPE to a normalized straight.el recipe.
 MELPA, GNU ELPA, and Emacsmirror may be cloned and searched for
 recipes if the MELPA-STYLE-RECIPE is just a package name;
 otherwise, the MELPA-STYLE-RECIPE should be a list and it is
 modified slightly to conform to the internal straight.el recipe
 format. CAUSE is a string indicating the reason recipe
-repositories might need to be cloned."
+repositories might need to be cloned.
+
+Return nil if MELPA-STYLE-RECIPE was just a symbol, and no recipe
+could be found for it, and package.el indicates that the package
+is built in to Emacs (e.g. the \"emacs\" package). This is used
+for dependency resolution."
   ;; Firstly, if the recipe is only provided as a package name, and
   ;; we've already converted it before, then we should just return the
   ;; previous result. This has nothing to do with efficiency; it's

non-nil)."
  (interactive (list (straight--get-recipe-interactively nil)
                     nil nil 'interactive))
  (let ((recipe (straight--convert-recipe melpa-style-recipe cause)))
    (straight--with-plist recipe
        (package)
      (let (;; Check if the package has been successfully built. If

required (see the Package-Requires header in a
package.el-compliant Elisp package). The return value is a list
of strings naming the packages that are mentioned in the
dependency list."
  (mapcar #'symbol-name (mapcar #'car dependencies)))

(defun straight--compute-dependencies (package)
  "Register the dependencies of PACKAGE in `straight--build-cache'.
