diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-01-28 23:03:36 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-01-28 23:31:03 +0530 |
| commit | c709ed2faf4ea28df1395a924453b5298b87fa57 (patch) | |
| tree | 9567cea197e37b96607f471b18dd1c77908c8965 /src/doc/reference.md | |
| parent | 249c29fe2746d251dc8aab63cd8730df9ff8434c (diff) | |
| parent | a45e117733b866302fa99390553d1c548508dcca (diff) | |
| download | rust-c709ed2faf4ea28df1395a924453b5298b87fa57.tar.gz rust-c709ed2faf4ea28df1395a924453b5298b87fa57.zip | |
Merge remote-tracking branch 'origin/master' into rollup
Conflicts: src/libcollections/slice.rs src/libcore/nonzero.rs src/libcore/ops.rs
Diffstat (limited to 'src/doc/reference.md')
| -rw-r--r-- | src/doc/reference.md | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/src/doc/reference.md b/src/doc/reference.md index d40a2a1bcfe..59ac173f97a 100644 --- a/src/doc/reference.md +++ b/src/doc/reference.md @@ -2359,77 +2359,6 @@ Supported traits for `derive` are: * `Show`, to format a value using the `{}` formatter. * `Zero`, to create a zero instance of a numeric data type. -### Stability - -One can indicate the stability of an API using the following attributes: - -* `deprecated`: This item should no longer be used, e.g. it has been - replaced. No guarantee of backwards-compatibility. -* `experimental`: This item was only recently introduced or is - otherwise in a state of flux. It may change significantly, or even - be removed. No guarantee of backwards-compatibility. -* `unstable`: This item is still under development, but requires more - testing to be considered stable. No guarantee of backwards-compatibility. -* `stable`: This item is considered stable, and will not change - significantly. Guarantee of backwards-compatibility. -* `frozen`: This item is very stable, and is unlikely to - change. Guarantee of backwards-compatibility. -* `locked`: This item will never change unless a serious bug is - found. Guarantee of backwards-compatibility. - -These levels are directly inspired by -[Node.js' "stability index"](http://nodejs.org/api/documentation.html). - -Stability levels are inherited, so an item's stability attribute is the default -stability for everything nested underneath it. - -There are lints for disallowing items marked with certain levels: `deprecated`, -`experimental` and `unstable`. For now, only `deprecated` warns by default, but -this will change once the standard library has been stabilized. Stability -levels are meant to be promises at the crate level, so these lints only apply -when referencing items from an _external_ crate, not to items defined within -the current crate. Items with no stability level are considered to be unstable -for the purposes of the lint. One can give an optional string that will be -displayed when the lint flags the use of an item. - -For example, if we define one crate called `stability_levels`: - -```{.ignore} -#[deprecated="replaced by `best`"] -pub fn bad() { - // delete everything -} - -pub fn better() { - // delete fewer things -} - -#[stable] -pub fn best() { - // delete nothing -} -``` - -then the lints will work as follows for a client crate: - -```{.ignore} -#![warn(unstable)] -extern crate stability_levels; -use stability_levels::{bad, better, best}; - -fn main() { - bad(); // "warning: use of deprecated item: replaced by `best`" - - better(); // "warning: use of unmarked item" - - best(); // no warning -} -``` - -> **Note:** Currently these are only checked when applied to individual -> functions, structs, methods and enum variants, *not* to entire modules, -> traits, impls or enums themselves. - ### Compiler Features Certain aspects of Rust may be implemented in the compiler, but they're not |
