Autoloading failed to define function … が出る

問題

emacs でいつも使っているキーボードバインディングを使おうとすると Autoloading failed to define function HOGE と出て実行できない。

原因

パッケージのアップデートで HOGE 関数の名前が変更されていた。

解決法

呼び出す関数の名前を変える。

備考

定義されていない関数を呼び出した場合、普通は void-function HOGE というおなじみのエラーが表示されるのですぐ分かるが、今回のエラーは初めて見たので解決に時間がかかった。

今まで見なかったこのエラーが出た原因は HOGE のキーボードバインディングを use-package で定義していたことにあった。

(use-package package-name
  :bind
  (:map global-map
        ("KEY" . HOGE)))

とすると、 KEY を押したときに HOGE が autoload される。その結果エラーメッセージが見慣れないものになる。