-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement support for indicating the stability of items.
There are 6 new compiler recognised attributes: deprecated, experimental, unstable, stable, frozen, locked (these levels are taken directly from Node's "stability index"[1]). These indicate the stability of the item to which they are attached; e.g. `#[deprecated] fn foo() { .. }` says that `foo` is deprecated. This comes with 3 lints for the first 3 levels (with matching names) that will detect the use of items marked with them (the `unstable` lint includes items with no stability attribute). The attributes can be given a short text note that will be displayed by the lint. An example: #[warn(unstable)]; // `allow` by default #[deprecated="use `bar`"] fn foo() { } #[stable] fn bar() { } fn baz() { } fn main() { foo(); // "warning: use of deprecated item: use `bar`" bar(); // all fine baz(); // "warning: use of unmarked item" } The lints currently only check the "edges" of the AST: i.e. functions, methods[2], structs and enum variants. Any stability attributes on modules, enums, traits and impls are not checked. [1]: http://nodejs.org/api/documentation.html [2]: the method check is currently incorrect and doesn't work.
- Loading branch information
Showing
8 changed files
with
745 additions
and
3 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
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 |
---|---|---|
|
@@ -4706,4 +4706,3 @@ pub fn trait_of_method(tcx: ctxt, def_id: ast::DefId) | |
|
||
result | ||
} | ||
|
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
Oops, something went wrong.
506f69a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
saw approval from brson
at huonw@506f69a
506f69a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merging huonw/rust/stability = 506f69a into auto
506f69a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
huonw/rust/stability = 506f69a merged ok, testing candidate = b4ff0bc
506f69a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all tests pass:
success: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/1251
success: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/1254
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/360
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/360
success: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/1270
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/361
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/361
success: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/1270
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/361
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/361
success: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android/builds/442
success: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/1254
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-c/builds/360
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/360
success: http://buildbot.rust-lang.org/builders/auto-bsd-64-opt/builds/1039
506f69a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fast-forwarding master to auto = b4ff0bc