]> git.lizzy.rs Git - rust.git/commitdiff
rustc: Add a lint for the obsolete crate-level link attribute
authorBrian Anderson <banderson@mozilla.com>
Sat, 21 Dec 2013 00:20:54 +0000 (16:20 -0800)
committerBrian Anderson <banderson@mozilla.com>
Tue, 24 Dec 2013 05:04:01 +0000 (21:04 -0800)
42 files changed:
src/etc/combine-tests.py
src/librustc/middle/lint.rs
src/test/auxiliary/cci_impl_lib.rs
src/test/auxiliary/cci_iter_lib.rs
src/test/auxiliary/cci_no_inline_lib.rs
src/test/auxiliary/crate-method-reexport-grrrrrrr2.rs
src/test/auxiliary/crateresolve1-1.rs
src/test/auxiliary/crateresolve1-2.rs
src/test/auxiliary/crateresolve1-3.rs
src/test/auxiliary/crateresolve2-1.rs
src/test/auxiliary/crateresolve2-2.rs
src/test/auxiliary/crateresolve2-3.rs
src/test/auxiliary/crateresolve3-1.rs
src/test/auxiliary/crateresolve3-2.rs
src/test/auxiliary/crateresolve4a-1.rs
src/test/auxiliary/crateresolve4a-2.rs
src/test/auxiliary/crateresolve4b-1.rs
src/test/auxiliary/crateresolve4b-2.rs
src/test/auxiliary/crateresolve5-1.rs
src/test/auxiliary/crateresolve5-2.rs
src/test/auxiliary/crateresolve8-1.rs
src/test/auxiliary/extern-crosscrate-source.rs
src/test/auxiliary/foreign_lib.rs
src/test/auxiliary/inline_dtor.rs
src/test/auxiliary/iss.rs
src/test/auxiliary/issue-2380.rs
src/test/auxiliary/issue-2414-a.rs
src/test/auxiliary/issue-2414-b.rs
src/test/auxiliary/issue-2526.rs
src/test/auxiliary/issue-2631-a.rs
src/test/auxiliary/issue-3012-1.rs
src/test/auxiliary/issue-4208-cc.rs
src/test/auxiliary/issue2378a.rs
src/test/auxiliary/issue2378b.rs
src/test/auxiliary/issue_2242_a.rs
src/test/auxiliary/issue_2242_c.rs
src/test/auxiliary/issue_3979_traits.rs
src/test/auxiliary/lint_stability.rs
src/test/auxiliary/static-methods-crate.rs
src/test/auxiliary/struct_variant_xc_aux.rs
src/test/run-pass/issue-1251.rs
src/test/run-pass/item-attributes.rs

index ce788f06c38dae9eb623a695754286035962faf0..aaba80aa446400720e2e9955a76af6be34b6ea7d 100755 (executable)
@@ -46,7 +46,6 @@ c.write(
 // AUTO-GENERATED FILE: DO NOT EDIT
 #[crate_id=\"run_pass_stage2#0.1\"];
 #[pkgid=\"run_pass_stage2#0.1\"];
-#[link(name=\"run_pass_stage2\", vers=\"0.1\")];
 #[feature(globs, macro_rules, struct_variant, managed_boxes)];
 #[allow(warnings)];
 """
index 9ec0fa337168cbaac97bbc080f421b797b5c7676..5a74fdb6d86dc110796d016be31650d6d8ac1013 100644 (file)
@@ -872,6 +872,12 @@ fn check_crate_attrs_usage(cx: &Context, attrs: &[ast::Attribute]) {
         if !iter.any(|other_attr| { name.equiv(other_attr) }) {
             cx.span_lint(attribute_usage, attr.span, "unknown crate attribute");
         }
+        if name.equiv(& &"link") {
+            cx.tcx.sess.span_err(attr.span,
+                                 "obsolete crate `link` attribute");
+            cx.tcx.sess.note("the link attribute has been superceded by the crate_id \
+                             attribute, which has the format `#[crate_id = \"name#version\"]`");
+        }
     }
 }
 
index 1f5c98cd7e1c78295421d40dfc7a41977c52df13..28c0c3062f3f53209c6080da33750cde10d03d60 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="cci_impl_lib"];
-// NOTE: remove after the next snapshot
-#[link(name="cci_impl_lib", vers="0.0")];
 
 trait uint_helpers {
     fn to(&self, v: uint, f: |uint|);
index 672d06f1ccba3cfe5eb7c54c63ddef444fcd2840..937f1bb33862ff8b4d941e37e07f424e11af18a3 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="cci_iter_lib"];
-// NOTE: remove after the next snapshot
-#[link(name="cci_iter_lib", vers="0.0")];
 
 #[inline]
 pub fn iter<T>(v: &[T], f: |&T|) {
index ef832d8e443f5c2dc3e26b052a5a7f2a463be535..87689474ca3e9760288b9014aa0211d645457553 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="cci_no_inline_lib"];
-// NOTE: remove after the next snapshot
-#[link(name="cci_no_inline_lib", vers="0.0")];
 
 // same as cci_iter_lib, more-or-less, but not marked inline
 pub fn iter(v: ~[uint], f: |uint|) {
index a5e10eaaf6872664ee0f13cb6c10ddb423bb9d44..5fd0a5b31ee7159e2dd57a50d91aed37c32cba24 100644 (file)
@@ -10,8 +10,6 @@
 
 #[feature(managed_boxes)];
 #[crate_id="crate_method_reexport_grrrrrrr2"];
-// NOTE: remove after the next snapshot
-#[link(name = "crate_method_reexport_grrrrrrr2")];
 
 pub use name_pool::add;
 
index 1188626242b64b1bc2c7b5290bff6a6c5d6ae99f..11324f4a21b7c6eeb9e77722fa3357685f0ef282 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve1#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve1",
-       vers = "0.1")];
 
 #[crate_type = "lib"];
 
index f0d69b3eaafa143800c5f9ec8c2bda635e4a5f81..d1edbf5d681dc8eba1a1750e1ea08f927992a08e 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve1#0.2"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve1",
-       vers = "0.2")];
 
 #[crate_type = "lib"];
 
index fe62de2d409a33007dbfaa93571e579e6a065740..0d1e9eab62b7622a34adef6f7d63e073a2748e9f 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve1#0.3"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve1",
-       vers = "0.3")];
 
 #[crate_type = "lib"];
 
index 7d64c24798bdd8c9b4dfc07d0c50c0655134bca9..6a5e988dcdf4a9a81f93070239575763f2b6d690 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve2#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve2",
-       vers = "0.1")];
 
 #[crate_type = "lib"];
 
index bd7fb7cfa815271649f731bf945f21e3434a9102..fa10154eb64c4cc634447fda487a713379b0d49a 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve2#0.2"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve2",
-       vers = "0.2")];
 
 #[crate_type = "lib"];
 
index 64aeca48608b64fb621ced5f265b75fd7650e079..f93ca930be575c5f4e5f7051696ad751c6673d83 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve2#0.3"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve2",
-       vers = "0.3")];
 
 #[crate_type = "lib"];
 
index ae6fe53ab479372e3c00eee163d92c983e8895b4..a5d30ea28910f48c9b2cdc201c7f90b25b4741e9 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve3#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve3",
-       vers = "0.1")];
 
 #[crate_type = "lib"];
 
index b77e147c6355685a3e15db9b797f8f0133042b92..f9a2b45b4a380e932a2a115f34105879118c209c 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve3#0.2"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve3",
-       vers = "0.2")];
 
 #[crate_type = "lib"];
 
index 683a46ceecd7b9f3b8e14509107c73dba3313a86..ad48aea3c2a2467b37caada59acea0b80d56a968 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve4a#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve4a", vers = "0.1")];
 #[crate_type = "lib"];
 
 pub fn f() -> int { 10 }
index 6facf02d923b0a5e82bf057fada99db78a97651a..cee5e9711d4c323db29f4a27d1de9fe74a404a8e 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve4a#0.2"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve4a", vers= "0.2")];
 #[crate_type = "lib"];
 
 pub fn g() -> int { 20 }
index e19cd6c73d2011442d1dbe2ffd15c9081facd80b..c80fb8ee9e9653caac08b9a5d4f27a611326e314 100644 (file)
@@ -11,8 +11,6 @@
 // aux-build:crateresolve4a-1.rs
 // aux-build:crateresolve4a-2.rs
 #[crate_id="crateresolve4b#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve4b", vers = "0.1")];
 #[crate_type = "lib"];
 
 extern mod crateresolve4a = "crateresolve4a#0.2";
index 2c00d9aab8d991effb1388a054852d9fdee29555..019b6047e63ddf1453846e046abf83d2cf8605e4 100644 (file)
@@ -11,8 +11,6 @@
 // aux-build:crateresolve4a-1.rs
 // aux-build:crateresolve4a-2.rs
 #[crate_id="crateresolve4b#0.2"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve4b", vers = "0.2")];
 #[crate_type = "lib"];
 
 extern mod crateresolve4a = "crateresolve4a#0.1";
index f619499f4f44284f9c72f6a5fb80fd4503408128..0336abae19c4e3a17144b1bf74075a9007512a5b 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve5#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve5",
-       vers = "0.1")];
 
 #[crate_type = "lib"];
 
index d0164d77e6652bd218100d1f011e863cab346b18..9c5720680ed6a5ebe0e02dc3ce224a38bae427f5 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="crateresolve5#0.2"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve5",
-       vers = "0.2")];
 
 #[crate_type = "lib"];
 
index aa3babea58f269ca187f083d64685e56fa952b22..b28ac5295a6d5803257876db5325c41ea0eb704c 100644 (file)
@@ -10,9 +10,6 @@
 
 // default link meta for 'package_id' will be equal to filestem
 #[crate_id="crateresolve8#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "crateresolve8",
-       vers = "0.1")];
 
 #[crate_type = "lib"];
 
index 7a7d0c453a71e9c60f1d28fd1bc7376781aadfeb..72345022282bfb42bf04f66ec8d86986ca8777e2 100644 (file)
@@ -9,10 +9,6 @@
 // except according to those terms.
 
 #[crate_id="externcallback#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "externcallback",
-       vers = "0.1")];
-
 #[crate_type = "lib"];
 
 use std::libc;
index bc2ef7262a6fa7d78dcd3e5814a778c30ff6bb64..e59fae346368b8bd2aaee5b6983753a808983c93 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="foreign_lib"];
-// NOTE: remove after the next snapshot
-#[link(name="foreign_lib", vers="0.0")];
 
 pub mod rustrt {
     use std::libc;
index 83f2cee0a5435a362cc0df6767fc2455524d1005..3dc1b4cc2371d30f2454443a447f5a48347647e4 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="inline_dtor#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name="inline_dtor", vers="0.1")];
 
 pub struct Foo;
 
index b7cffa4c37828d35dd4a37382c9e5a70fc6e8598..85847a6fdeb28a5d54de9a0b5ff61f35a608419e 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="issue6919_3#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name="iss6919_3", vers="0.1")];
 
 // part of issue-6919.rs
 
index 24c8edbc80078c18d157a78e4e194607bc4235fe..c7ffa4a39ac40263c3253a21d29dff59c1eff9c0 100644 (file)
@@ -10,8 +10,6 @@
 
 #[feature(managed_boxes)];
 #[crate_id="a"];
-// NOTE: remove after the next snapshot
-#[link(name = "a", vers = "0.0")];
 #[crate_type = "lib"];
 
 pub trait i<T> { }
index c9779a0040d78842216b43d45fa093435b887027..305dece1ae19baaf7b83db03e01f32edf9a683c2 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="a#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "a", vers = "0.1")];
 #[crate_type = "lib"];
 
 type t1 = uint;
index 33cb5d5fb6c4b630437700100b42c347d1b77639..e51d68049eee5ceae6b1a5a6a4be5b491bbad70b 100644 (file)
@@ -11,8 +11,6 @@
 // xfail-fast
 
 #[crate_id="b#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "b", vers = "0.1")];
 #[crate_type = "lib"];
 
 extern mod a;
index 5948a4923053bfb1798667d92d04f42e2e4f448a..e932a9c29ea6a0d25e19620c7ce424042c0e09cb 100644 (file)
@@ -9,10 +9,6 @@
 // except according to those terms.
 
 #[crate_id="issue_2526#0.2"];
-// NOTE: remove after the next snapshot
-#[link(name = "issue_2526",
-       vers = "0.2",
-       uuid = "54cc1bc9-02b8-447c-a227-75ebc923bc29")];
 #[crate_type = "lib"];
 
 extern mod extra;
index e5457e46d33dcce8804046daf72f08aac3b16ac2..f5d2fb9ffd22862cc0e6dcecf82e04c1c2911a0b 100644 (file)
@@ -10,8 +10,6 @@
 
 #[feature(managed_boxes)];
 #[crate_id="req"];
-// NOTE: remove after the next snapshot
-#[link(name = "req")];
 #[crate_type = "lib"];
 
 extern mod extra;
index 40ae334ef72272e18a03c945cbd0f4fa9ac8b3b4..af83c5561db8ef8fcccadd841c1bf70304f71323 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="socketlib"];
-// NOTE: remove after the next snapshot
-#[link(name="socketlib", vers="0.0")];
 #[crate_type = "lib"];
 
 pub mod socket {
index 71db81459b0dcfb2fd28e23980750a965028d09d..8a95f3effb61581acc8eb992945c3160b4093bb0 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="numeric#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "numeric",
-       vers = "0.1")];
 #[crate_type = "lib"];
 
 pub trait Trig<T> {
index ea14229cc48a7520683d3871a3652581f86776ae..d254a275ea62273328d8a9526984282029102e94 100644 (file)
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[link (name = "issue2378a")];
 #[crate_type = "lib"];
 
 pub enum maybe<T> { just(T), nothing }
index 71c0bab138f46ec2437d2740306487c18789cac9..2931245bb12bdf1e648706c40eae9b43021c2d86 100644 (file)
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[link (name = "issue2378b")];
 #[crate_type = "lib"];
 
 extern mod issue2378a;
index 4d21abe64efe1b918583728321c94bdd705a55a8..413d57c6fd40803c2ef96913f8ae737a2a475821 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="a#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "a", vers = "0.1")];
 #[crate_type = "lib"];
 
 trait to_strz {
index 60054cd22189ac7b7ef582284aa0c6a77c796810..4008402441b5d953f8f1c7ba2974ac6b3c344e52 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="c#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "c", vers = "0.1")];
 #[crate_type = "lib"];
 
 extern mod a;
index 08f83d9d2062408262db948e65631b36081fac0c..75bdad7c95ee254a86ec703e8d862e9491da261b 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="issue_3979_traits#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "issue_3979_traits",
-       vers = "0.1")];
 
 #[crate_type = "lib"];
 
index 8b821c656228a145adf9484f5b4f590100aae9b0..108b715c0fb651ab475f006e19952e3a83fb1dca 100644 (file)
@@ -8,9 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 #[crate_id="lint_stability#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "lint_stability",
-       vers = "0.1")];
 #[crate_type = "lib"];
 
 #[deprecated]
index 648c9ca7320fe828a1dd413dcdc75db70fa592ca..bc028f972db9d8ee5a12c76f50a7ec128d60515e 100644 (file)
@@ -9,10 +9,6 @@
 // except according to those terms.
 
 #[crate_id="static_methods_crate#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "static_methods_crate",
-       vers = "0.1")];
-
 #[crate_type = "lib"];
 
 use std::int;
index fc258a8a52794c57cdd292ddd2ddd0c14f59e1a8..668e5c9afb352e5db68a781f50d625e7f8383394 100644 (file)
@@ -9,9 +9,6 @@
 // except according to those terms.
 
 #[crate_id="struct_variant_xc_aux#0.1"];
-// NOTE: remove after the next snapshot
-#[link(name = "struct_variant_xc_aux",
-       vers = "0.1")];
 #[crate_type = "lib"];
 
 #[feature(struct_variant)];
index 27ea0d394b883b08c0c8bc5b3d7cf6a8740b8f08..70d2c58a631e3932025c0ec11916a97b3355fa11 100644 (file)
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 #[crate_id="rust_get_test_int"];
-// NOTE: remove after the next snapshot
-#[link(name = "rust_get_test_int")];
 
 mod rustrt {
     use std::libc;
index b453dca1800c621e500dbf81963d16a94d8f5b70..133660e28d2ace642bbded922744032d396ce22e 100644 (file)
 #[attr4(attr5)];
 
 #[crate_id="extra#0.1"];
-// NOTE: remove after the next snapshot
-// Special linkage attributes for the crate
-#[link(name = "extra",
-       vers = "0.1",
-       uuid = "122bed0b-c19b-4b82-b0b7-7ae8aead7297",
-       url = "http://rust-lang.org/src/extra")];
 
 // These are attributes of the following mod
 #[attr1 = "val"]