Document how to modify feature gates
How to remove them and how to rename them. cc <https://github.com/rust-lang/rust/pull/79336#discussion_r528627318> cc @varkor
This commit is contained in:
parent
c63305c6e8
commit
ea6df8f903
|
|
@ -38,6 +38,7 @@
|
||||||
- [Implementing new features](./implementing_new_features.md)
|
- [Implementing new features](./implementing_new_features.md)
|
||||||
- [Stability attributes](./stability.md)
|
- [Stability attributes](./stability.md)
|
||||||
- [Stabilizing Features](./stabilization_guide.md)
|
- [Stabilizing Features](./stabilization_guide.md)
|
||||||
|
- [Feature Gates](./feature-gates.md)
|
||||||
- [Coding conventions](./conventions.md)
|
- [Coding conventions](./conventions.md)
|
||||||
- [Notification groups](notification-groups/about.md)
|
- [Notification groups](notification-groups/about.md)
|
||||||
- [ARM](notification-groups/arm.md)
|
- [ARM](notification-groups/arm.md)
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue