機能ゲート
この章は、機能ゲートの追加、削除、変更に関する基本的な支援を提供することを目的としています。
rustc がコンパイラパイプライン内で機能ゲートをどのように適用し、チェックするかについては、 機能ゲートチェックを参照してください。
これは言語機能ゲートに固有の内容であることに注意してください。ライブラリ機能ゲートでは別の 仕組みを使用します。
機能ゲートを追加する
手順については、「新機能を実装する」セクションの“コード内の安定性”を参照してください。
機能ゲートを削除する
機能ゲートを削除するには、次の手順に従ってください。
-
rustc_feature/src/unstable.rs内の機能ゲート宣言を削除します。 次のようなものです。/// 機能の説明 (unstable, $feature_name, "$version", Some($tracking_issue_number)) -
削除したばかりの機能ゲート宣言を変更したバージョンを
rustc_feature/src/removed.rsに追加します。/// 機能の説明 (removed, $old_feature_name, "$version", Some($tracking_issue_number), Some("$why_it_was_removed"))
機能ゲートの名前を変更する
機能ゲートの名前を変更するには、次の手順に従ってください(最初の 2 つは、機能ゲートを削除するときに 従う手順と同じです)。
-
rustc_feature/src/unstable.rs内の古い機能ゲート宣言を削除します。 次のようなものです。/// 機能の説明 (unstable, $old_feature_name, "$version", Some($tracking_issue_number)) -
削除したばかりの古い機能ゲート宣言を変更したバージョンを
rustc_feature/src/removed.rsに追加します。/// 機能の説明 /// `$new_feature_name` に名前変更済み (removed, $old_feature_name, "$version", Some($tracking_issue_number), Some("renamed to `$new_feature_name`")) -
新しい名前の機能ゲート宣言を
rustc_feature/src/unstable.rsに追加します。 これは古い宣言と非常によく似たものになるはずです。/// 機能の説明 (unstable, $new_feature_name, "$version", Some($tracking_issue_number))
機能を安定化する
手順については、「機能の安定化」章の“機能ゲート一覧の更新”を参照してください。 単に宣言を更新するだけでなく、追加で行う必要がある手順があります!