Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

機能ゲート

この章は、機能ゲートの追加、削除、変更に関する基本的な支援を提供することを目的としています。

rustc がコンパイラパイプライン内で機能ゲートをどのように適用し、チェックするかについては、 機能ゲートチェックを参照してください。

これは言語機能ゲートに固有の内容であることに注意してください。ライブラリ機能ゲートでは別の 仕組みを使用します。

機能ゲートを追加する

手順については、「新機能を実装する」セクションの“コード内の安定性”を参照してください。

機能ゲートを削除する

機能ゲートを削除するには、次の手順に従ってください。

  1. rustc_feature/src/unstable.rs 内の機能ゲート宣言を削除します。 次のようなものです。

    /// 機能の説明
    (unstable, $feature_name, "$version", Some($tracking_issue_number))
  2. 削除したばかりの機能ゲート宣言を変更したバージョンを rustc_feature/src/removed.rs に追加します。

    /// 機能の説明
    (removed, $old_feature_name, "$version", Some($tracking_issue_number),
     Some("$why_it_was_removed"))

機能ゲートの名前を変更する

機能ゲートの名前を変更するには、次の手順に従ってください(最初の 2 つは、機能ゲートを削除するときに 従う手順と同じです)。

  1. rustc_feature/src/unstable.rs 内の古い機能ゲート宣言を削除します。 次のようなものです。

    /// 機能の説明
    (unstable, $old_feature_name, "$version", Some($tracking_issue_number))
  2. 削除したばかりの古い機能ゲート宣言を変更したバージョンを rustc_feature/src/removed.rs に追加します。

    /// 機能の説明
    /// `$new_feature_name` に名前変更済み
    (removed, $old_feature_name, "$version", Some($tracking_issue_number),
     Some("renamed to `$new_feature_name`"))
  3. 新しい名前の機能ゲート宣言を rustc_feature/src/unstable.rs に追加します。 これは古い宣言と非常によく似たものになるはずです。

    /// 機能の説明
    (unstable, $new_feature_name, "$version", Some($tracking_issue_number))

機能を安定化する

手順については、「機能の安定化」章の“機能ゲート一覧の更新”を参照してください。 単に宣言を更新するだけでなく、追加で行う必要がある手順があります!