diff --git a/src/doc/guide-macros.md b/src/doc/guide-macros.md index 23510997f24..303a32289b0 100644 --- a/src/doc/guide-macros.md +++ b/src/doc/guide-macros.md @@ -407,7 +407,7 @@ As an example, `loop` and `for-loop` labels (discussed in the lifetimes guide) will not clash. The following code will print "Hello!" only once: ~~~ -#[feature(macro_rules)]; +#![feature(macro_rules)] macro_rules! loop_x ( ($e: expr) => ( diff --git a/src/doc/guide-pointers.md b/src/doc/guide-pointers.md index 76e3b521957..5c6c562b72d 100644 --- a/src/doc/guide-pointers.md +++ b/src/doc/guide-pointers.md @@ -250,7 +250,7 @@ struct. # Managed Pointers > **Note**: the `@` form of managed pointers is deprecated and behind a -> feature gate (it requires a `#[feature(managed_pointers)];` attribute on +> feature gate (it requires a `#![feature(managed_pointers)]` attribute on > the crate root; remember the semicolon!). There are replacements, currently > there is `std::rc::Rc` and `std::gc::Gc` for shared ownership via reference > counting and garbage collection respectively. diff --git a/src/doc/guide-testing.md b/src/doc/guide-testing.md index 3809633708b..0be831c5132 100644 --- a/src/doc/guide-testing.md +++ b/src/doc/guide-testing.md @@ -185,7 +185,7 @@ amount. For example: ~~~ -# #[allow(unused_imports)]; +# #![allow(unused_imports)] extern crate test; use std::slice; @@ -247,7 +247,7 @@ recognize that some calculation has no external effects and remove it entirely. ~~~ -# #[allow(unused_imports)]; +# #![allow(unused_imports)] extern crate test; use test::Bencher; diff --git a/src/doc/guide-unsafe.md b/src/doc/guide-unsafe.md index c19977d0bab..96507939db0 100644 --- a/src/doc/guide-unsafe.md +++ b/src/doc/guide-unsafe.md @@ -424,14 +424,14 @@ Current valid options are: # Avoiding the standard library By default, `std` is linked to every Rust crate. In some contexts, -this is undesirable, and can be avoided with the `#[no_std];` +this is undesirable, and can be avoided with the `#![no_std]` attribute attached to the crate. ```ignore # // FIXME #12903: linking failures due to no_std // the minimal library -#[crate_type="lib"]; -#[no_std]; +#![crate_type="lib"] +#![no_std] # // fn main() {} tricked you, rustdoc! ``` @@ -446,7 +446,7 @@ in the same format as a C: ```ignore # // FIXME #12903: linking failures due to no_std -#[no_std]; +#![no_std] extern "rust-intrinsic" { fn abort() -> !; } #[no_mangle] pub extern fn rust_stack_exhausted() { @@ -462,14 +462,14 @@ fn start(_argc: int, _argv: **u8) -> int { ``` To override the compiler-inserted `main` shim, one has to disable it -with `#[no_main];` and then create the appropriate symbol with the +with `#![no_main]` and then create the appropriate symbol with the correct ABI and the correct name, which requires overriding the compiler's name mangling too: ```ignore # // FIXME #12903: linking failures due to no_std -#[no_std]; -#[no_main]; +#![no_std] +#![no_main] extern "rust-intrinsic" { fn abort() -> !; } #[no_mangle] pub extern fn rust_stack_exhausted() { @@ -543,7 +543,7 @@ sugar for dynamic allocations via `malloc` and `free`: ```ignore # // FIXME #12903: linking failures due to no_std -#[no_std]; +#![no_std] #[allow(ctypes)] // `uint` == `size_t` on Rust's platforms extern { diff --git a/src/doc/po/ja/rust.md.po b/src/doc/po/ja/rust.md.po index de0164cc6b6..758d9863b0a 100644 --- a/src/doc/po/ja/rust.md.po +++ b/src/doc/po/ja/rust.md.po @@ -252,7 +252,7 @@ msgstr "# モジュールとクレート" #: src/doc/rust.md:627 #, fuzzy #| msgid "// Turn on a warning #[warn(non_camel_case_types)]" -msgid "// Turn on a warning #[ warn(non_camel_case_types) ]; ~~~~" +msgid "// Turn on a warning #![ warn(non_camel_case_types) ] ~~~~" msgstr "" "// 警告を有効にする\n" "#[warn(non_camel_case_types)]" diff --git a/src/doc/po/ja/tutorial.md.po b/src/doc/po/ja/tutorial.md.po index f17d3df9c1c..ebd08e8ae63 100644 --- a/src/doc/po/ja/tutorial.md.po +++ b/src/doc/po/ja/tutorial.md.po @@ -4851,13 +4851,13 @@ msgstr "" #. type: Plain text #: src/doc/tutorial.md:3134 #, fuzzy -#| msgid "// Make a library (\"bin\" is the default) #[crate_type = \"lib\"];" +#| msgid "// Make a library (\"bin\" is the default) #![crate_type = \"lib\"]" msgid "" "// This crate is a library (\"bin\" is the default) #[crate_id = " -"\"farm#2.5\"]; #[crate_type = \"lib\"];" +"\"farm#2.5\"]; #![crate_type = \"lib\"]" msgstr "" "// ライブラリを作成する (\"bin\" がデフォルト値)\n" -"#[crate_type = \"lib\"];" +"#![crate_type = \"lib\"]" #. type: Plain text #: src/doc/tutorial.md:3139 @@ -4888,15 +4888,15 @@ msgstr "" #: src/doc/tutorial.md:3153 #, fuzzy #| msgid "" -#| "~~~~ // world.rs #[link(name = \"world\", vers = \"1.0\")]; pub fn " +#| "~~~~ // world.rs #![link(name = \"world\", vers = \"1.0\")] pub fn " #| "explore() -> &str { \"world\" } ~~~~" msgid "" -"~~~~ // `world.rs` #[crate_id = \"world#0.42\"]; # extern crate extra; pub fn " +"~~~~ // `world.rs` #![crate_id = \"world#0.42\"] # extern crate extra; pub fn " "explore() -> &'static str { \"world\" } # fn main() {} ~~~~" msgstr "" "~~~~\n" "// world.rs\n" -"#[link(name = \"world\", vers = \"1.0\")];\n" +"#![link(name = \"world\", vers = \"1.0\")]\n" "pub fn explore() -> &str { \"world\" }\n" "~~~~" diff --git a/src/doc/rustdoc.md b/src/doc/rustdoc.md index 96419e1bfd2..2170e16f932 100644 --- a/src/doc/rustdoc.md +++ b/src/doc/rustdoc.md @@ -13,8 +13,8 @@ comments": ~~~ // the "link" crate attribute is currently required for rustdoc, but normally // isn't needed. -#[crate_id = "universe"]; -#[crate_type="lib"]; +#![crate_id = "universe"] +#![crate_type="lib"] //! Tools for dealing with universes (this is a doc comment, and is shown on //! the crate index page. The ! makes it apply to the parent of the comment, diff --git a/src/doc/tutorial.md b/src/doc/tutorial.md index a0a012ef69b..b52e1abc1a3 100644 --- a/src/doc/tutorial.md +++ b/src/doc/tutorial.md @@ -3096,8 +3096,8 @@ Therefore, if you plan to compile your crate as a library, you should annotate i ~~~~ // `lib.rs` -# #[crate_type = "lib"]; -#[crate_id = "farm#2.5"]; +# #![crate_type = "lib"] +#![crate_id = "farm#2.5"] // ... # fn farm() {} @@ -3121,8 +3121,8 @@ or setting the crate type (library or executable) explicitly: // ... // This crate is a library ("bin" is the default) -#[crate_id = "farm#2.5"]; -#[crate_type = "lib"]; +#![crate_id = "farm#2.5"] +#![crate_type = "lib"] // Turn on a warning #[warn(non_camel_case_types)] @@ -3137,7 +3137,7 @@ We define two crates, and use one of them as a library in the other. ~~~~ // `world.rs` -#[crate_id = "world#0.42"]; +#![crate_id = "world#0.42"] # mod secret_module_to_make_this_test_run { pub fn explore() -> &'static str { "world" } @@ -3211,12 +3211,12 @@ Both auto-insertions can be disabled with an attribute if necessary: ~~~ // In the crate root: -#[no_std]; +#![no_std] ~~~ ~~~ // In any module: -#[no_implicit_prelude]; +#![no_implicit_prelude] ~~~ See the [API documentation][stddoc] for details.