プレリュードに対する破壊的変更
プレリュードに変更を加えると、すべての Rust コードに影響するため、破損を簡単に引き起こす可能性があります。 ほとんどの場合、プレリュード項目は名前探索における優先順位が最も低いため(glob インポートよりも低い)、影響は限定的です。しかし、これが機能しないケースが 2 つあります。
トレイト
新しいトレイトをプレリュードに追加すると、既存の型で新しいメソッドが利用可能になります。 同じ名前のメソッドが別のトレイトからも利用可能な場合、これによりユーザーコードで名前解決エラーが発生する可能性があります。
このため、TryFrom および TryInto は 2019 年に安定化されていたにもかかわらず、2021 エディションでのみプレリュードに追加されました。
マクロ
他の項目型とは異なり、rustc のマクロに対する名前解決は、そのマクロが不安定であっても、プレリュードのマクロに他のマクロより低い優先順位を与えることをサポートしていません。 一般的なルールとして、エディション境界を除き、プレリュードにマクロを追加することは避けてください。
この問題は、assert_matches! マクロ を取り込もうとした際に発生しました。