RFC0168の改訂。RFC0155のリバート。ASTの次段階としてのHIR(高レベル中間表現)の導入。2016年のモジュール改革。したときの(当時の)挙動が指定されている。RFC1681のほうが前にマージされていることに注意。RFC1566のほうが後にマージされていることに注意。ツールのためのモジュール化された属性。preludeモジュールが導入されることになった。ような無名インポートを可能にする。宣言マクロの刷新を提案したRFC。Rust2018以降、Rustのモジュールシステムは入門しやすく、かつマスターしにくくなりました。そこで本記事では、その両方を達成することを目指しました。同じテーマで、Rust2018を考慮して改めてまとめ直したものです。本記事中のサンプルコードの多くは、Rustの細かい仕様や実装を調べるためのものであり、実際に有用なプログラミングパターンであるとは限りません。実質的にバグに近い挙動を説明しているものもあるため、将来にわたって同じ動作であることはあまり保証できません。「どのモジュールから」「何を」「何という名前で」インポートするかという形で表現されます。単一セグメントからなるパスのインポートの場合は「どのモジュールから」に相当する適切なモジュールがない場合があります。そこで名前解決時は3つの仮想モジュールが用意されています。