LoginSignup
4
2

More than 1 year has passed since last update.

proc macro not expandedエラーが出たときにやったこと

Last updated at Posted at 2023-02-26

RustでWeb開発をしていたある日、朝起きてコードを書こうと思ったら次のようなエラーが出ていました。

proc macro 'main' not expanded: Cannot create expander for ....

スクリーンショット 2023-02-26 17.48.21.png

エラーの内容

自分はVSCodeにrust-analyzerを入れてRustのコードを書いています。
上記のエラーは手続きマクロ(procedural macro, proc macro)をrust-analyzerがうまく展開してくれないことに起因しているようです。

プログラムは問題なく動くのでおそらくrust-analyzer上での問題だと考えられます。

特にコードや設定を何も変えずに突如として出てきたエラーなので非常に困惑しました。。。

ネットで調べた解決策

ネットで調べると次のようなものが出てくると思います。

VSCodeのダウンロードし直し

VSCodeをuniversal版でダウンロードし直せって言ってます。でも自分は元からuniversal版だったのであまり関係ないかなと。

rust-analyzerをプレリリース版にスイッチ

rust-analyzerをプレリリース版にしろって言ってます。でも自分は元からプレリリース版(v0.4.1415)だったのでこちらもあまり関係ないかなと。
ちなみにプレリリース版へのアップデートですが、VSCodeの [拡張機能] > [プレリリースバージョンへの切り替え]で簡単にできます。

その他

無理やりな解決策

そもそもrust-analyzerがなんか勘違いしてるっぽいので、rust-analyzerにこのエラーを無視させればいいわけです。
なので、設定からrust-analyzer.diagnostics.disabledunresolved-proc-macroを追加して無視します。

スクリーンショット 2023-02-26 17.45.35.png

ただ個人的には単純にエラーを無視しているだけで根本的な解決はしていないので、他の方法を取りたいです。

自分の解決方法

なんかrustupをupdateしたらエラーが解決しました。このコマンドによりRustは最新版に更新されます。

$rustup update

(これで解決した理由が分かったら追記)

4
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2