良い子はrustup updateしよう。(特に最近rustをさぼっていた悪い子たち)

 

最近は人生初のLTに向けて、rustを頑張って勉強してます。

ところが、crateを引っ張ってきて使おうと思っても、buildでこけるこける。

method `source` is not a member of trait `Error`

こんなエラーとか、

error[E0494]: cannot refer to the interior of another static, use a constant instead
   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/encoding_rs-0.8.14/src/lib.rs:928:42
    |
928 |     variant: VariantEncoding::SingleByte(&data::SINGLE_BYTE_DATA.ibm866, 0x0440, 96, 16),
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

こんなエラーとか。

下のエラーに関してはこんな記事もあったり。

github.com

上記リンクはcrate同士のバージョンあってねえぞみたいな話だったわけですが、crate単体でbuildしてもうまくいかない。おかしい・・・

 

rust2018にアップデートした(つもり)だったのでそれでおかしくなったのでは・・・?などと思いよくよく調べてみると、

rust2018 (rust 1.31 ~)どころか、もっと古いやつだった(バージョンメモるの忘れてしまった)

 

改めてrustup updateしたら、buildが通るようになりました。

上記のエラーメッセージにぶちあたったら、crateのバージョン周りを疑ってみて、さらに私レベルでおっちょこちょいな人々は、rust自体のバージョンを確認してみては。