-
Notifications
You must be signed in to change notification settings - Fork 515
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Document how to modify feature gates
How to remove them and how to rename them. cc <rust-lang/rust#79336 (comment)> cc @varkor
- Loading branch information
Showing
2 changed files
with
66 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Feature Gates | ||
|
||
This chapter is intended to provide basic help for modifying feature gates. See | ||
["Stability in code"][stability-section] for help with *adding* feature gates. | ||
|
||
[stability-section]: ./implementing_new_features.md#stability-in-code | ||
|
||
|
||
## Removing a feature gate | ||
|
||
[removing]: #removing-a-feature-gate | ||
|
||
To remove a feature gate, follow these steps: | ||
|
||
1. Remove the feature gate declaration in `rustc_feature/src/active.rs`. | ||
It will look like this: | ||
|
||
```rust,ignore | ||
/// description of feature | ||
(active, $feature_name, "$version", Some($tracking_issue_number), $edition) | ||
``` | ||
|
||
2. Add a modified version of the feature gate declaration that you just | ||
removed to `rustc_feature/src/removed.rs`: | ||
|
||
```rust,ignore | ||
/// description of feature | ||
(removed, $old_feature_name, "$version", Some($tracking_issue_number), $edition, | ||
Some("$why_it_was_removed")) | ||
``` | ||
|
||
|
||
## Renaming a feature gate | ||
|
||
[renaming]: #renaming-a-feature-gate | ||
|
||
To rename a feature gate, follow these steps (the first two are the same steps | ||
to follow when [removing a feature gate][removing]): | ||
|
||
1. Remove the old feature gate declaration in `rustc_feature/src/active.rs`. | ||
It will look like this: | ||
|
||
```rust,ignore | ||
/// description of feature | ||
(active, $old_feature_name, "$version", Some($tracking_issue_number), $edition) | ||
``` | ||
|
||
2. Add a modified version of the old feature gate declaration that you just | ||
removed to `rustc_feature/src/removed.rs`: | ||
|
||
```rust,ignore | ||
/// description of feature | ||
/// Renamed to `$new_feature_name` | ||
(removed, $old_feature_name, "$version", Some($tracking_issue_number), $edition, | ||
Some("renamed to `$new_feature_name`")) | ||
``` | ||
|
||
3. Add a feature gate declaration with the new name to | ||
`rustc_feature/src/active.rs`. It should look very similar to the old | ||
declaration: | ||
|
||
```rust,ignore | ||
/// description of feature | ||
(active, $new_feature_name, "$version", Some($tracking_issue_number), $edition) | ||
``` |