diff options
| author | klutzy <klutzytheklutzy@gmail.com> | 2013-11-06 12:16:19 +0900 |
|---|---|---|
| committer | klutzy <klutzytheklutzy@gmail.com> | 2013-11-26 13:13:17 +0900 |
| commit | 1f7bfac9d28340b3eda0291dd01b7914c77a88ae (patch) | |
| tree | 3172ab5e859df955ed453f8a6b7603dec054eeab | |
| parent | 6ff697d3933754bf9ec5ee5875f487f02a7d087d (diff) | |
| download | rust-1f7bfac9d28340b3eda0291dd01b7914c77a88ae.tar.gz rust-1f7bfac9d28340b3eda0291dd01b7914c77a88ae.zip | |
rustc: Add lint for obsolete attributes
This also moves `#[auto_{en,de}code]` checker from syntax to lint.
| -rw-r--r-- | src/librustc/middle/lint.rs | 12 | ||||
| -rw-r--r-- | src/libstd/io/native/process.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/ext/auto_encode.rs | 35 | ||||
| -rw-r--r-- | src/libsyntax/ext/base.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/lib.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/deprecated-auto-code.rs | 15 |
6 files changed, 13 insertions, 59 deletions
diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index 7ce560055a3..bbb835c2032 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -803,6 +803,11 @@ fn check_heap_item(cx: &Context, it: &ast::item) { // also make error on obsolete attributes for less confusion. fn check_item_attribute_usage(cx: &Context, it: &ast::item) { let crate_attrs = ["crate_type", "link", "feature", "no_uv", "no_main", "no_std"]; + let obsolete_attrs = [ + ("abi", "extern \"abi\" fn"), + ("auto_encode", "#[deriving(Encodable)]"), + ("auto_decode", "#[deriving(Decodable)]"), + ]; for attr in it.attrs.iter() { let name = attr.node.value.name(); @@ -816,6 +821,13 @@ fn check_item_attribute_usage(cx: &Context, it: &ast::item) { cx.span_lint(attribute_usage, attr.span, msg); } } + + for &(obs_attr, obs_alter) in obsolete_attrs.iter() { + if name.equiv(&obs_attr) { + cx.span_lint(attribute_usage, attr.span, + format!("obsolete attribute: use `{:s}` instead", obs_alter)); + } + } } } diff --git a/src/libstd/io/native/process.rs b/src/libstd/io/native/process.rs index 6aa3ae65fc9..292b0a2e78f 100644 --- a/src/libstd/io/native/process.rs +++ b/src/libstd/io/native/process.rs @@ -365,7 +365,6 @@ fn spawn_process_os(prog: &str, args: &[~str], use libc::funcs::bsd44::getdtablesize; mod rustrt { - #[abi = "cdecl"] extern { pub fn rust_unset_sigprocmask(); } diff --git a/src/libsyntax/ext/auto_encode.rs b/src/libsyntax/ext/auto_encode.rs deleted file mode 100644 index c1e7ba60fad..00000000000 --- a/src/libsyntax/ext/auto_encode.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2012 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -/// Deprecated #[auto_encode] and #[auto_decode] syntax extensions - -use ast; -use codemap::Span; -use ext::base::*; - -pub fn expand_auto_encode( - cx: @ExtCtxt, - span: Span, - _mitem: @ast::MetaItem, - in_items: ~[@ast::item] -) -> ~[@ast::item] { - cx.span_err(span, "`#[auto_encode]` is deprecated, use `#[deriving(Encodable)]` instead"); - in_items -} - -pub fn expand_auto_decode( - cx: @ExtCtxt, - span: Span, - _mitem: @ast::MetaItem, - in_items: ~[@ast::item] -) -> ~[@ast::item] { - cx.span_err(span, "`#[auto_decode]` is deprecated, use `#[deriving(Decodable)]` instead"); - in_items -} diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 448f8ee88f9..ccb88e0c9c0 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -143,7 +143,7 @@ pub enum MacResult { } pub enum SyntaxExtension { - // #[auto_encode] and such + // #[deriving] and such ItemDecorator(ItemDecorator), // Token-tree expanders @@ -229,12 +229,6 @@ pub fn syntax_expander_table() -> SyntaxEnv { syntax_expanders.insert(intern(&"format_args"), builtin_normal_tt_no_ctxt( ext::format::expand_args)); - syntax_expanders.insert( - intern(&"auto_encode"), - @SE(ItemDecorator(ext::auto_encode::expand_auto_encode))); - syntax_expanders.insert( - intern(&"auto_decode"), - @SE(ItemDecorator(ext::auto_encode::expand_auto_decode))); syntax_expanders.insert(intern(&"env"), builtin_normal_tt_no_ctxt( ext::env::expand_env)); diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs index 247be194b90..29ed87f2202 100644 --- a/src/libsyntax/lib.rs +++ b/src/libsyntax/lib.rs @@ -83,7 +83,6 @@ pub mod ext { pub mod concat; pub mod concat_idents; pub mod log_syntax; - pub mod auto_encode; pub mod source_util; pub mod trace_macros; diff --git a/src/test/compile-fail/deprecated-auto-code.rs b/src/test/compile-fail/deprecated-auto-code.rs deleted file mode 100644 index e4576e0f57c..00000000000 --- a/src/test/compile-fail/deprecated-auto-code.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2013 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -#[auto_encode] //~ ERROR: `#[auto_encode]` is deprecated -#[auto_decode] //~ ERROR: `#[auto_decode]` is deprecated -struct A; - -fn main() {} |
