When I load a Dart file with GNU Emacs 27.1-1 for OS X I get the following little error novel.
Debugger entered--Lisp error: (void-function -compose)
(-compose #'lsp--client-path->uri-fn #'lsp--workspace-client)
(-keep (-compose #'lsp--client-path->uri-fn #'lsp--workspace-client) (lsp-workspaces))
(cl-first (-keep (-compose #'lsp--client-path->uri-fn #'lsp--workspace-client) (lsp-workspaces)))
(and t (cl-first (-keep (-compose #'lsp--client-path->uri-fn #'lsp--workspace-client) (lsp-workspaces))))
(let* ((uri-fn (and t (cl-first (-keep (-compose #'lsp--client-path->uri-fn #'lsp--workspace-client) (lsp-workspaces)))))) (if uri-fn (funcall uri-fn path) (lsp--path-to-uri-1 path)))
lsp--path-to-uri("/Users/sam/.emacs.d/index.sqlite")
(closure (t) nil (lsp--path-to-uri (f-join user-emacs-directory "index.sqlite")))()
funcall((closure (t) nil (lsp--path-to-uri (f-join user-emacs-directory "index.sqlite"))))
eval((funcall #'(closure (t) nil (lsp--path-to-uri (f-join user-emacs-directory "index.sqlite")))))
custom-initialize-reset(lsp-serenata-index-database-uri (funcall #'(closure (t) nil (lsp--path-to-uri (f-join user-emacs-directory "index.sqlite")))))
custom-declare-variable(lsp-serenata-index-database-uri (funcall #'(closure (t) nil (lsp--path-to-uri (f-join user-emacs-directory "index.sqlite")))) "The location to store the index database.\nNote tha..." :group lsp-serenata :type file)
eval-buffer(#<buffer *load*> nil "/Users/sam/.emacs.d/elpa/lsp-mode-20210222.1457/lsp..." nil t) ; Reading at buffer position 12399
load-with-code-conversion("/Users/sam/.emacs.d/elpa/lsp-mode-20210222.1457/lsp..." "/Users/sam/.emacs.d/elpa/lsp-mode-20210222.1457/lsp..." t t)
require(lsp-php nil t)
(if (featurep package) nil (require package nil t))
(closure (company-mode cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines dap-ui-menu-items company-backends t) (package) (if (featurep package) nil (require package nil t)))(lsp-php)
mapc((closure (company-mode cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines dap-ui-menu-items company-backends t) (package) (if (featurep package) nil (require package nil t))) (ccls lsp-actionscript lsp-ada lsp-angular lsp-bash lsp-clangd lsp-clojure lsp-cmake lsp-crystal lsp-csharp lsp-css lsp-dart lsp-dhall lsp-dockerfile lsp-elm lsp-elixir lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-hack lsp-groovy lsp-haskell lsp-haxe lsp-java lsp-javascript lsp-json lsp-kotlin lsp-lua lsp-nim lsp-nix lsp-metals lsp-ocaml lsp-perl lsp-php lsp-pwsh lsp-pyls lsp-python-ms lsp-purescript lsp-r lsp-rf lsp-rust lsp-solargraph lsp-sorbet lsp-tex lsp-terraform lsp-vala lsp-verilog ...))
seq-do((closure (company-mode cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines dap-ui-menu-items company-backends t) (package) (if (featurep package) nil (require package nil t))) (ccls lsp-actionscript lsp-ada lsp-angular lsp-bash lsp-clangd lsp-clojure lsp-cmake lsp-crystal lsp-csharp lsp-css lsp-dart lsp-dhall lsp-dockerfile lsp-elm lsp-elixir lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-hack lsp-groovy lsp-haskell lsp-haxe lsp-java lsp-javascript lsp-json lsp-kotlin lsp-lua lsp-nim lsp-nix lsp-metals lsp-ocaml lsp-perl lsp-php lsp-pwsh lsp-pyls lsp-python-ms lsp-purescript lsp-r lsp-rf lsp-rust lsp-solargraph lsp-sorbet lsp-tex lsp-terraform lsp-vala lsp-verilog ...))
(progn (seq-do #'(lambda (package) (if (featurep package) nil (require package nil t))) lsp-client-packages) (setq lsp--client-packages-required t))
(if (and lsp-auto-configure (not lsp--client-packages-required)) (progn (seq-do #'(lambda (package) (if (featurep package) nil (require package nil t))) lsp-client-packages) (setq lsp--client-packages-required t)))
lsp--require-packages()
lsp()
run-hooks(change-major-mode-after-body-hook prog-mode-hook dart-mode-hook)
apply(run-hooks (change-major-mode-after-body-hook prog-mode-hook dart-mode-hook))
run-mode-hooks(dart-mode-hook)
dart-mode()
set-auto-mode-0(dart-mode nil)
set-auto-mode()
normal-mode(t)
after-find-file(nil t)
find-file-noselect-1(#<buffer main.dart> "~/sam/flutter/proj9/lib/main.dart" nil nil "~/sam/flutter/proj9/lib/main.dart" (15751399 16777223))
find-file-noselect("/Users/sam/flutter/proj9/lib/mai..." nil nil nil)
find-file("/Users/sam/flutter/proj9/lib/mai...")
dired-find-file()
funcall-interactively(dired-find-file)
call-interactively(dired-find-file nil nil)
command-execute(dired-find-file)
How do I solve Lisp error: (void-function -compose)
when using lsp-dart?