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에서 기능 게이트 선언을 제거하십시오. 선언은 다음과 같은 형태입니다.

    /// description of feature
    (unstable, $feature_name, "$version", Some($tracking_issue_number))
  2. 방금 제거한 기능 게이트 선언을 수정한 버전을 rustc_feature/src/removed.rs에 추가하십시오.

    /// description of feature
    (removed, $old_feature_name, "$version", Some($tracking_issue_number),
     Some("$why_it_was_removed"))

기능 게이트 이름 바꾸기

기능 게이트의 이름을 바꾸려면 다음 단계를 따르십시오(처음 두 단계는 기능 게이트를 제거할 때 따르는 단계와 같습니다).

  1. rustc_feature/src/unstable.rs에서 이전 기능 게이트 선언을 제거하십시오. 선언은 다음과 같은 형태입니다.

    /// description of feature
    (unstable, $old_feature_name, "$version", Some($tracking_issue_number))
  2. 방금 제거한 이전 기능 게이트 선언을 수정한 버전을 rustc_feature/src/removed.rs에 추가하십시오.

    /// description of feature
    /// Renamed to `$new_feature_name`
    (removed, $old_feature_name, "$version", Some($tracking_issue_number),
     Some("renamed to `$new_feature_name`"))
  3. 새 이름으로 된 기능 게이트 선언을 rustc_feature/src/unstable.rs에 추가하십시오. 이전 선언과 매우 비슷한 형태여야 합니다.

    /// description of feature
    (unstable, $new_feature_name, "$version", Some($tracking_issue_number))

기능 안정화하기

방법은 “기능 안정화하기” 장의 “기능 게이트 목록 갱신하기”를 참조하십시오. 선언을 갱신하는 것 외에도 추가로 거쳐야 할 단계가 있습니다!