From 713e87526eac42aa9879e7cfb556ea64d63e7a91 Mon Sep 17 00:00:00 2001
From: Manish Goregaokar <manishsmail@gmail.com>
Date: Mon, 14 Apr 2014 21:00:31 +0530
Subject: [PATCH] Use new attribute syntax in python files in src/etc too
 (#13478)

---
 src/etc/generate-deriving-span-tests.py       |  2 +-
 src/etc/unicode.py                            |  4 +-
 src/librustc/front/std_inject.rs              |  4 +-
 .../middle/typeck/check/regionmanip.rs        |  2 +-
 src/libstd/fmt/mod.rs                         |  4 +-
 src/libstd/io/buffered.rs                     |  4 +-
 src/libstd/io/comm_adapters.rs                |  2 +-
 src/libstd/io/fs.rs                           | 16 ++++----
 src/libstd/io/mem.rs                          |  8 ++--
 src/libstd/io/mod.rs                          |  6 +--
 src/libstd/io/net/tcp.rs                      |  2 +-
 src/libstd/io/net/udp.rs                      |  2 +-
 src/libstd/io/net/unix.rs                     |  4 +-
 src/libstd/io/pipe.rs                         |  2 +-
 src/libstd/io/stdio.rs                        |  2 +-
 src/libstd/macros.rs                          |  4 +-
 .../anon-extern-mod-cross-crate-1.rs          |  2 +-
 src/test/auxiliary/cci_impl_lib.rs            |  2 +-
 src/test/auxiliary/cci_iter_lib.rs            |  2 +-
 src/test/auxiliary/cci_nested_lib.rs          |  2 +-
 src/test/auxiliary/cci_no_inline_lib.rs       |  2 +-
 src/test/auxiliary/changing-crates-a1.rs      |  2 +-
 src/test/auxiliary/changing-crates-a2.rs      |  2 +-
 src/test/auxiliary/changing-crates-b.rs       |  2 +-
 .../crate-method-reexport-grrrrrrr2.rs        |  4 +-
 src/test/auxiliary/crateresolve1-1.rs         |  4 +-
 src/test/auxiliary/crateresolve1-2.rs         |  4 +-
 src/test/auxiliary/crateresolve1-3.rs         |  4 +-
 src/test/auxiliary/crateresolve2-1.rs         |  4 +-
 src/test/auxiliary/crateresolve2-2.rs         |  4 +-
 src/test/auxiliary/crateresolve2-3.rs         |  4 +-
 src/test/auxiliary/crateresolve3-1.rs         |  4 +-
 src/test/auxiliary/crateresolve3-2.rs         |  4 +-
 src/test/auxiliary/crateresolve4a-1.rs        |  4 +-
 src/test/auxiliary/crateresolve4a-2.rs        |  4 +-
 src/test/auxiliary/crateresolve4b-1.rs        |  4 +-
 src/test/auxiliary/crateresolve4b-2.rs        |  4 +-
 src/test/auxiliary/crateresolve5-1.rs         |  4 +-
 src/test/auxiliary/crateresolve5-2.rs         |  4 +-
 src/test/auxiliary/crateresolve8-1.rs         |  4 +-
 src/test/auxiliary/crateresolve_calories-1.rs |  4 +-
 src/test/auxiliary/crateresolve_calories-2.rs |  4 +-
 src/test/auxiliary/default_type_params_xc.rs  |  2 +-
 .../auxiliary/extern-crosscrate-source.rs     |  4 +-
 src/test/auxiliary/extern_mod_ordering_lib.rs |  2 +-
 src/test/auxiliary/foreign_lib.rs             |  2 +-
 src/test/auxiliary/impl_privacy_xc_2.rs       |  2 +-
 src/test/auxiliary/inline_dtor.rs             |  2 +-
 src/test/auxiliary/iss.rs                     |  2 +-
 src/test/auxiliary/issue-11224.rs             |  2 +-
 src/test/auxiliary/issue-11908-1.rs           |  4 +-
 src/test/auxiliary/issue-11908-2.rs           |  4 +-
 src/test/auxiliary/issue-12133-dylib.rs       |  2 +-
 src/test/auxiliary/issue-12133-rlib.rs        |  2 +-
 src/test/auxiliary/issue-2380.rs              |  4 +-
 src/test/auxiliary/issue-2414-a.rs            |  4 +-
 src/test/auxiliary/issue-2414-b.rs            |  4 +-
 src/test/auxiliary/issue-2526.rs              |  4 +-
 src/test/auxiliary/issue-2631-a.rs            |  6 +--
 src/test/auxiliary/issue-3012-1.rs            |  4 +-
 src/test/auxiliary/issue-4208-cc.rs           |  4 +-
 src/test/auxiliary/issue-5521.rs              |  2 +-
 src/test/auxiliary/issue-8044.rs              |  2 +-
 src/test/auxiliary/issue2378a.rs              |  2 +-
 src/test/auxiliary/issue2378b.rs              |  2 +-
 src/test/auxiliary/issue_2242_a.rs            |  4 +-
 src/test/auxiliary/issue_2242_c.rs            |  4 +-
 src/test/auxiliary/issue_2316_b.rs            |  2 +-
 src/test/auxiliary/issue_3136_a.rc            |  2 +-
 src/test/auxiliary/issue_3979_traits.rs       |  4 +-
 src/test/auxiliary/issue_9123.rs              |  2 +-
 src/test/auxiliary/kinds_in_metadata.rs       |  2 +-
 src/test/auxiliary/lint_stability.rs          |  4 +-
 src/test/auxiliary/macro_crate_def_only.rs    |  2 +-
 .../macro_crate_outlive_expansion_phase.rs    |  2 +-
 src/test/auxiliary/macro_crate_test.rs        |  2 +-
 .../auxiliary/macro_export_inner_module.rs    |  2 +-
 src/test/auxiliary/moves_based_on_type_lib.rs |  2 +-
 src/test/auxiliary/newtype_struct_xc.rs       |  2 +-
 src/test/auxiliary/no_std_crate.rs            |  2 +-
 .../auxiliary/static-function-pointer-aux.rs  |  2 +-
 src/test/auxiliary/static-methods-crate.rs    |  4 +-
 src/test/auxiliary/static_priv_by_default.rs  |  2 +-
 .../struct_destructuring_cross_crate.rs       |  2 +-
 .../auxiliary/trait_default_method_xc_aux.rs  |  2 +-
 .../auxiliary/trait_superkinds_in_metadata.rs |  2 +-
 src/test/auxiliary/xc_private_method_lib.rs   |  2 +-
 src/test/auxiliary/xcrate_unit_struct.rs      |  2 +-
 src/test/bench/core-std.rs                    |  2 +-
 src/test/bench/sudoku.rs                      |  2 +-
 src/test/bench/task-perf-alloc-unwind.rs      |  2 +-
 src/test/compile-fail/dead-code-ret.rs        |  2 +-
 src/test/compile-fail/issue-10656.rs          |  4 +-
 src/test/compile-fail/issue-12133-3.rs        |  2 +-
 src/test/compile-fail/issue-6596.rs           |  2 +-
 src/test/compile-fail/issue-897.rs            |  2 +-
 .../compile-fail/multiple-macro-registrars.rs |  2 +-
 .../compile-fail/nolink-with-link-args.rs     |  2 +-
 src/test/compile-fail/required-lang-item.rs   |  2 +-
 .../tag-that-dare-not-speak-its-name.rs       |  2 +-
 src/test/debug-info/basic-types-globals.rs    |  2 +-
 src/test/debug-info/basic-types-metadata.rs   |  2 +-
 .../debug-info/basic-types-mut-globals.rs     |  2 +-
 src/test/debug-info/basic-types.rs            |  2 +-
 src/test/debug-info/borrowed-basic.rs         |  2 +-
 src/test/debug-info/borrowed-c-style-enum.rs  |  2 +-
 src/test/debug-info/borrowed-enum.rs          |  4 +-
 src/test/debug-info/borrowed-managed-basic.rs |  4 +-
 src/test/debug-info/borrowed-struct.rs        |  4 +-
 src/test/debug-info/borrowed-tuple.rs         |  4 +-
 src/test/debug-info/borrowed-unique-basic.rs  |  2 +-
 src/test/debug-info/box.rs                    |  4 +-
 src/test/debug-info/boxed-struct.rs           |  4 +-
 .../by-value-non-immediate-argument.rs        |  2 +-
 .../by-value-self-argument-in-trait-impl.rs   |  2 +-
 .../debug-info/c-style-enum-in-composite.rs   |  2 +-
 .../debug-info/destructured-fn-argument.rs    |  2 +-
 src/test/debug-info/destructured-local.rs     |  2 +-
 src/test/debug-info/evec-in-struct.rs         |  2 +-
 .../debug-info/function-arg-initialization.rs |  2 +-
 ...nction-prologue-stepping-no-split-stack.rs |  2 +-
 ...eneric-static-method-on-struct-and-enum.rs |  2 +-
 .../debug-info/generic-struct-style-enum.rs   |  2 +-
 src/test/debug-info/include_string.rs         |  2 +-
 .../debug-info/lexical-scope-with-macro.rs    |  2 +-
 src/test/debug-info/limited-debuginfo.rs      |  2 +-
 src/test/debug-info/managed-enum.rs           |  4 +-
 .../managed-pointer-within-unique-vec.rs      |  4 +-
 .../managed-pointer-within-unique.rs          |  4 +-
 src/test/debug-info/method-on-enum.rs         |  2 +-
 .../multiple-functions-equal-var-names.rs     |  2 +-
 src/test/debug-info/multiple-functions.rs     |  2 +-
 src/test/debug-info/nil-enum.rs               |  2 +-
 src/test/debug-info/option-like-enum.rs       |  2 +-
 .../packed-struct-with-destructor.rs          |  2 +-
 src/test/debug-info/packed-struct.rs          |  2 +-
 src/test/debug-info/recursive-enum.rs         |  2 +-
 src/test/debug-info/recursive-struct.rs       |  6 +--
 src/test/debug-info/simd.rs                   |  2 +-
 src/test/debug-info/simple-struct.rs          |  4 +-
 src/test/debug-info/simple-tuple.rs           |  4 +-
 .../static-method-on-struct-and-enum.rs       |  2 +-
 src/test/debug-info/struct-in-enum.rs         |  2 +-
 src/test/debug-info/struct-in-struct.rs       |  2 +-
 src/test/debug-info/struct-style-enum.rs      |  4 +-
 src/test/debug-info/struct-with-destructor.rs |  2 +-
 src/test/debug-info/trait-pointers.rs         |  2 +-
 src/test/debug-info/tuple-in-struct.rs        |  2 +-
 src/test/debug-info/tuple-in-tuple.rs         |  2 +-
 src/test/debug-info/tuple-style-enum.rs       |  2 +-
 src/test/debug-info/unique-enum.rs            |  4 +-
 .../var-captured-in-nested-closure.rs         |  4 +-
 .../var-captured-in-sendable-closure.rs       |  2 +-
 .../var-captured-in-stack-closure.rs          |  4 +-
 src/test/debug-info/vec-slices.rs             |  2 +-
 src/test/debug-info/vec.rs                    |  2 +-
 src/test/pretty/block-disambig.rs             |  2 +-
 src/test/run-fail/args-fail.rs                |  2 +-
 src/test/run-fail/doublefail.rs               |  2 +-
 src/test/run-fail/explicit-fail-msg.rs        |  4 +-
 src/test/run-fail/issue-2272.rs               |  2 +-
 src/test/run-fail/issue-3029.rs               |  6 +--
 src/test/run-fail/issue-948.rs                |  2 +-
 src/test/run-fail/match-bot-fail.rs           |  4 +-
 src/test/run-fail/rhs-type.rs                 |  4 +-
 src/test/run-fail/unwind-assert.rs            |  2 +-
 src/test/run-fail/unwind-box-fn-unique.rs     |  2 +-
 src/test/run-fail/unwind-box-res.rs           |  2 +-
 src/test/run-fail/unwind-box-str.rs           |  2 +-
 src/test/run-fail/unwind-box-unique-unique.rs |  2 +-
 src/test/run-fail/unwind-box-unique.rs        |  2 +-
 src/test/run-fail/unwind-box-vec.rs           |  2 +-
 src/test/run-fail/unwind-box.rs               |  2 +-
 src/test/run-fail/unwind-fail.rs              |  2 +-
 .../run-fail/unwind-initializer-indirect.rs   |  2 +-
 src/test/run-fail/unwind-initializer.rs       |  2 +-
 src/test/run-fail/unwind-iter.rs              |  6 +--
 src/test/run-fail/unwind-iter2.rs             |  2 +-
 src/test/run-fail/unwind-lambda.rs            |  2 +-
 src/test/run-fail/unwind-match.rs             |  2 +-
 src/test/run-fail/unwind-misc-1.rs            |  2 +-
 src/test/run-fail/unwind-move.rs              |  2 +-
 src/test/run-fail/unwind-nested.rs            |  2 +-
 src/test/run-fail/unwind-partial-box.rs       |  2 +-
 src/test/run-fail/unwind-partial-unique.rs    |  2 +-
 src/test/run-fail/unwind-partial-vec.rs       |  2 +-
 src/test/run-fail/unwind-resource-fail.rs     |  2 +-
 src/test/run-fail/unwind-resource-fail3.rs    |  2 +-
 src/test/run-fail/unwind-stacked.rs           |  2 +-
 src/test/run-fail/unwind-tup.rs               |  2 +-
 src/test/run-fail/unwind-tup2.rs              |  2 +-
 src/test/run-fail/unwind-uninitialized.rs     |  2 +-
 src/test/run-fail/while-body-fails.rs         |  2 +-
 src/test/run-fail/while-fail.rs               |  2 +-
 .../bootstrap-from-c-with-green/lib.rs        |  4 +-
 .../bootstrap-from-c-with-native/lib.rs       |  4 +-
 src/test/run-make/c-dynamic-dylib/foo.rs      |  2 +-
 src/test/run-make/c-dynamic-rlib/foo.rs       |  2 +-
 src/test/run-make/c-link-to-rust-dylib/foo.rs |  2 +-
 .../run-make/c-link-to-rust-staticlib/foo.rs  |  2 +-
 src/test/run-make/c-static-dylib/foo.rs       |  2 +-
 src/test/run-make/c-static-rlib/foo.rs        |  2 +-
 src/test/run-make/crate-data-smoke/crate.rs   |  2 +-
 src/test/run-make/crate-data-smoke/lib.rs     |  4 +-
 src/test/run-make/crate-data-smoke/rlib.rs    |  4 +-
 src/test/run-make/dep-info-custom/lib.rs      |  2 +-
 src/test/run-make/dep-info/lib.rs             |  2 +-
 .../run-make/duplicate-output-flavors/foo.rs  |  2 +-
 src/test/run-make/dylib-chain/m1.rs           |  2 +-
 src/test/run-make/dylib-chain/m2.rs           |  2 +-
 src/test/run-make/dylib-chain/m3.rs           |  2 +-
 src/test/run-make/issue-12446/foo.rs          |  2 +-
 src/test/run-make/lto-smoke/lib.rs            |  2 +-
 src/test/run-make/mixing-deps/both.rs         |  4 +-
 src/test/run-make/mixing-deps/dylib.rs        |  2 +-
 src/test/run-make/mixing-libs/dylib.rs        |  2 +-
 src/test/run-make/mixing-libs/rlib.rs         |  2 +-
 .../run-make/output-type-permutations/foo.rs  |  2 +-
 src/test/run-make/rlib-chain/m1.rs            |  2 +-
 src/test/run-make/rlib-chain/m2.rs            |  2 +-
 src/test/run-make/rlib-chain/m3.rs            |  2 +-
 src/test/run-make/rustdoc-hidden-line/foo.rs  |  2 +-
 src/test/run-make/rustdoc-json/foo.rs         |  2 +-
 src/test/run-make/rustdoc-smoke/foo.rs        |  2 +-
 src/test/run-make/static-unwinding/lib.rs     |  2 +-
 src/test/run-make/staticlib-blank-lib/foo.rs  |  2 +-
 src/test/run-make/suspicious-library/foo.rs   |  2 +-
 src/test/run-make/symlinked-libraries/foo.rs  |  2 +-
 .../run-make/unicode-input/span_length.rs     |  2 +-
 src/test/run-pass-fulldeps/quote-tokens.rs    |  2 +-
 .../quote-unused-sp-no-warning.rs             |  2 +-
 src/test/run-pass/arith-unsigned.rs           |  2 +-
 src/test/run-pass/auto-encode.rs              |  2 +-
 src/test/run-pass/auto-ref-slice-plus-ref.rs  |  2 +-
 .../run-pass/autoderef-method-priority.rs     |  2 +-
 .../autoref-intermediate-types-issue-3585.rs  |  2 +-
 .../borrowck-borrow-from-expr-block.rs        |  2 +-
 .../borrowck-macro-interaction-issue-6304.rs  |  2 +-
 .../borrowck-preserve-box-in-field.rs         |  2 +-
 .../borrowck-preserve-box-in-moved-value.rs   |  2 +-
 .../run-pass/borrowck-preserve-box-in-uniq.rs |  2 +-
 src/test/run-pass/borrowck-preserve-box.rs    |  2 +-
 .../run-pass/borrowck-preserve-cond-box.rs    |  2 +-
 .../run-pass/borrowck-preserve-expl-deref.rs  |  2 +-
 .../run-pass/borrowck-root-while-cond-2.rs    |  2 +-
 src/test/run-pass/borrowck-root-while-cond.rs |  2 +-
 src/test/run-pass/borrowck-univariant-enum.rs |  2 +-
 .../borrowed-ptr-pattern-infallible.rs        |  2 +-
 src/test/run-pass/box-in-tup.rs               |  2 +-
 src/test/run-pass/box-inside-if.rs            |  2 +-
 src/test/run-pass/box-inside-if2.rs           |  2 +-
 src/test/run-pass/box-unbox.rs                |  2 +-
 src/test/run-pass/box.rs                      |  2 +-
 .../run-pass/boxed-class-type-substitution.rs |  2 +-
 src/test/run-pass/can-copy-pod.rs             |  2 +-
 src/test/run-pass/cci_borrow.rs               |  2 +-
 src/test/run-pass/cci_nested_exe.rs           |  2 +-
 src/test/run-pass/cfg-macros-foo.rs           |  2 +-
 src/test/run-pass/cfg-macros-notfoo.rs        |  2 +-
 .../class-cast-to-trait-multiple-types.rs     |  2 +-
 src/test/run-pass/class-cast-to-trait.rs      |  2 +-
 src/test/run-pass/classes-self-referential.rs |  2 +-
 src/test/run-pass/cleanup-copy-mode.rs        |  2 +-
 src/test/run-pass/cleanup-rvalue-for-scope.rs |  2 +-
 src/test/run-pass/cleanup-rvalue-scopes.rs    |  2 +-
 src/test/run-pass/colorful-write-macros.rs    |  2 +-
 src/test/run-pass/const-binops.rs             |  2 +-
 src/test/run-pass/const-enum-structlike.rs    |  2 +-
 src/test/run-pass/core-run-destroy.rs         |  4 +-
 .../crate-method-reexport-grrrrrrr.rs         |  2 +-
 src/test/run-pass/crateresolve8.rs            |  2 +-
 src/test/run-pass/cycle-collection.rs         |  2 +-
 src/test/run-pass/deref-lval.rs               |  2 +-
 src/test/run-pass/deref.rs                    |  2 +-
 .../deriving-cmp-generic-struct-enum.rs       |  2 +-
 .../run-pass/deriving-encodable-decodable.rs  |  2 +-
 src/test/run-pass/deriving-in-macro.rs        |  2 +-
 src/test/run-pass/deriving-rand.rs            |  2 +-
 src/test/run-pass/deriving-show-2.rs          |  2 +-
 src/test/run-pass/deriving-show.rs            |  2 +-
 ...-via-extension-struct-like-enum-variant.rs |  2 +-
 src/test/run-pass/deriving-zero.rs            |  2 +-
 src/test/run-pass/die-macro.rs                |  2 +-
 src/test/run-pass/double-unbox.rs             |  2 +-
 src/test/run-pass/drop-on-empty-block-exit.rs |  2 +-
 src/test/run-pass/empty-mutable-vec.rs        |  2 +-
 src/test/run-pass/enum-discrim-width-stuff.rs |  2 +-
 .../enum-nullable-simplifycfg-misopt.rs       |  2 +-
 src/test/run-pass/enum-variants.rs            |  6 +--
 src/test/run-pass/estr-uniq.rs                |  2 +-
 src/test/run-pass/evec-internal-boxes.rs      |  4 +-
 src/test/run-pass/evec-slice.rs               |  2 +-
 src/test/run-pass/exponential-notation.rs     |  2 +-
 src/test/run-pass/export-non-interference.rs  |  2 +-
 src/test/run-pass/expr-block-box.rs           |  2 +-
 src/test/run-pass/expr-block-generic-box1.rs  |  2 +-
 src/test/run-pass/expr-block-generic-box2.rs  |  2 +-
 src/test/run-pass/expr-block-ref.rs           |  2 +-
 src/test/run-pass/expr-elseif-ref.rs          |  2 +-
 src/test/run-pass/expr-elseif-ref2.rs         |  2 +-
 src/test/run-pass/expr-if-box.rs              |  2 +-
 src/test/run-pass/expr-if-generic-box1.rs     |  2 +-
 src/test/run-pass/expr-if-generic-box2.rs     |  2 +-
 src/test/run-pass/expr-match-box.rs           |  2 +-
 src/test/run-pass/expr-match-generic-box1.rs  |  2 +-
 src/test/run-pass/expr-match-generic-box2.rs  |  2 +-
 src/test/run-pass/exterior.rs                 |  2 +-
 src/test/run-pass/extern-mod-syntax.rs        |  2 +-
 src/test/run-pass/fn-type-infer.rs            |  2 +-
 .../run-pass/format-no-uppercase-statics.rs   |  2 +-
 src/test/run-pass/generic-alias-box.rs        |  2 +-
 src/test/run-pass/generic-box.rs              |  2 +-
 ...generic-default-type-params-cross-crate.rs |  2 +-
 .../run-pass/generic-default-type-params.rs   |  2 +-
 src/test/run-pass/generic-drop-glue.rs        |  2 +-
 src/test/run-pass/generic-exterior-box.rs     |  2 +-
 src/test/run-pass/generic-fn-box.rs           |  2 +-
 src/test/run-pass/generic-fn.rs               |  2 +-
 src/test/run-pass/generic-ivec.rs             |  2 +-
 src/test/run-pass/generic-recursive-tag.rs    |  2 +-
 src/test/run-pass/generic-tag-match.rs        |  2 +-
 src/test/run-pass/generic-tag.rs              |  6 +--
 src/test/run-pass/hashmap-memory.rs           |  2 +-
 src/test/run-pass/html-literals.rs            |  2 +-
 src/test/run-pass/hygienic-labels-in-let.rs   |  2 +-
 src/test/run-pass/hygienic-labels.rs          |  2 +-
 src/test/run-pass/ifmt.rs                     |  6 +--
 src/test/run-pass/import-glob-crate.rs        |  2 +-
 src/test/run-pass/import3.rs                  |  2 +-
 src/test/run-pass/import6.rs                  |  2 +-
 src/test/run-pass/import7.rs                  |  2 +-
 src/test/run-pass/init-res-into-things.rs     |  2 +-
 src/test/run-pass/inner-attrs-on-impl.rs      |  4 +-
 src/test/run-pass/intrinsics-math.rs          |  2 +-
 src/test/run-pass/issue-10853.rs              |  6 +--
 src/test/run-pass/issue-11085.rs              |  2 +-
 src/test/run-pass/issue-11577.rs              |  2 +-
 src/test/run-pass/issue-1251.rs               |  2 +-
 src/test/run-pass/issue-1451.rs               |  2 +-
 src/test/run-pass/issue-2074.rs               |  2 +-
 src/test/run-pass/issue-2526-a.rs             |  2 +-
 src/test/run-pass/issue-2631-b.rs             |  2 +-
 src/test/run-pass/issue-2708.rs               |  2 +-
 src/test/run-pass/issue-2735-2.rs             |  2 +-
 src/test/run-pass/issue-2735-3.rs             |  2 +-
 src/test/run-pass/issue-2904.rs               |  2 +-
 src/test/run-pass/issue-3012-2.rs             |  2 +-
 src/test/run-pass/issue-3121.rs               |  2 +-
 src/test/run-pass/issue-3447.rs               |  2 +-
 src/test/run-pass/issue-3556.rs               |  2 +-
 src/test/run-pass/issue-3574.rs               |  2 +-
 src/test/run-pass/issue-3878.rs               |  2 +-
 src/test/run-pass/issue-5060.rs               |  2 +-
 src/test/run-pass/issue-5521.rs               |  2 +-
 src/test/run-pass/issue-5530.rs               |  2 +-
 src/test/run-pass/issue-5550.rs               |  2 +-
 src/test/run-pass/issue-5554.rs               |  2 +-
 src/test/run-pass/issue-5741.rs               |  2 +-
 src/test/run-pass/issue-5884.rs               |  2 +-
 src/test/run-pass/issue-6117.rs               |  2 +-
 src/test/run-pass/issue-6130.rs               |  2 +-
 src/test/run-pass/issue-6919.rs               |  2 +-
 src/test/run-pass/issue-7344.rs               |  2 +-
 src/test/run-pass/issue-7911.rs               |  4 +-
 src/test/run-pass/issue-8351-1.rs             |  2 +-
 src/test/run-pass/issue-8351-2.rs             |  2 +-
 src/test/run-pass/issue-8506.rs               |  2 +-
 src/test/run-pass/issue-8851.rs               |  2 +-
 src/test/run-pass/issue-8898.rs               |  2 +-
 src/test/run-pass/issue-9110.rs               |  2 +-
 src/test/run-pass/issue-9129.rs               |  2 +-
 src/test/run-pass/issue-9382.rs               |  4 +-
 src/test/run-pass/issue-979.rs                |  2 +-
 src/test/run-pass/issue-980.rs                |  2 +-
 src/test/run-pass/item-attributes.rs          | 38 +++++++++----------
 src/test/run-pass/leak-box-as-tydesc.rs       |  2 +-
 src/test/run-pass/leak-tag-copy.rs            |  6 +--
 src/test/run-pass/let-var-hygiene.rs          |  2 +-
 ...ase-types-non-uppercase-statics-unicode.rs |  6 +--
 ...uppercase-statics-lowercase-mut-statics.rs |  4 +-
 src/test/run-pass/list.rs                     |  2 +-
 .../liveness-assign-imm-local-after-loop.rs   |  6 +--
 .../liveness-assign-imm-local-after-ret.rs    |  2 +-
 src/test/run-pass/long-while.rs               |  2 +-
 src/test/run-pass/macro-2.rs                  |  2 +-
 src/test/run-pass/macro-attributes.rs         |  2 +-
 src/test/run-pass/macro-interpolation.rs      |  2 +-
 src/test/run-pass/macro-multiple-items.rs     |  2 +-
 src/test/run-pass/macro-path.rs               |  2 +-
 src/test/run-pass/macro-stmt.rs               |  2 +-
 src/test/run-pass/macro-with-attrs1.rs        |  2 +-
 src/test/run-pass/macro-with-attrs2.rs        |  2 +-
 .../macro-with-braces-in-expr-position.rs     |  2 +-
 src/test/run-pass/match-borrowed_str.rs       |  2 +-
 src/test/run-pass/match-enum-struct-0.rs      |  2 +-
 src/test/run-pass/match-enum-struct-1.rs      |  2 +-
 src/test/run-pass/match-in-macro.rs           |  2 +-
 src/test/run-pass/match-phi.rs                |  4 +-
 .../run-pass/match-static-const-rename.rs     |  2 +-
 src/test/run-pass/mlist.rs                    |  2 +-
 ...nomorphized-callees-with-ty-params-3314.rs |  2 +-
 src/test/run-pass/move-1.rs                   |  2 +-
 src/test/run-pass/move-2.rs                   |  2 +-
 src/test/run-pass/move-3.rs                   |  2 +-
 src/test/run-pass/move-4.rs                   |  2 +-
 src/test/run-pass/move-arg-2.rs               |  2 +-
 src/test/run-pass/mutable-vec-drop.rs         |  4 +-
 src/test/run-pass/mutual-recursion-group.rs   |  2 +-
 src/test/run-pass/newtype-struct-drop-run.rs  |  2 +-
 src/test/run-pass/no-std-xcrate2.rs           |  2 +-
 .../nullable-pointer-iotareduction.rs         |  2 +-
 src/test/run-pass/nullable-pointer-size.rs    |  2 +-
 ...cts-owned-object-borrowed-method-header.rs |  2 +-
 src/test/run-pass/once-move-out-on-heap.rs    |  2 +-
 src/test/run-pass/option-unwrap.rs            |  2 +-
 src/test/run-pass/output-slot-variants.rs     |  6 +--
 src/test/run-pass/packed-struct-size.rs       |  2 +-
 src/test/run-pass/packed-tuple-struct-size.rs |  2 +-
 .../parameterized-trait-with-bounds.rs        |  2 +-
 src/test/run-pass/parse-fail.rs               |  2 +-
 src/test/run-pass/pass-by-copy.rs             |  2 +-
 src/test/run-pass/privacy-ns.rs               |  4 +-
 src/test/run-pass/pub_use_mods_xcrate_exe.rs  |  2 +-
 src/test/run-pass/rcvr-borrowed-to-region.rs  |  2 +-
 src/test/run-pass/reflect-visit-type.rs       |  2 +-
 .../run-pass/regions-appearance-constraint.rs |  2 +-
 src/test/run-pass/regions-borrow-at.rs        |  2 +-
 .../run-pass/regions-escape-into-other-fn.rs  |  2 +-
 src/test/run-pass/regions-fn-subtyping.rs     |  4 +-
 ...gions-infer-borrow-scope-within-loop-ok.rs |  2 +-
 .../run-pass/regions-infer-borrow-scope.rs    |  2 +-
 src/test/run-pass/repeated-vector-syntax.rs   |  2 +-
 .../run-pass/resource-assign-is-not-copy.rs   |  2 +-
 src/test/run-pass/resource-destruct.rs        |  2 +-
 src/test/run-pass/resource-in-struct.rs       |  2 +-
 .../run-pass/shape_intrinsic_tag_then_rec.rs  |  2 +-
 src/test/run-pass/small-enums-with-fields.rs  |  2 +-
 src/test/run-pass/smallest-hello-world.rs     |  2 +-
 .../run-pass/struct-field-assignability.rs    |  2 +-
 .../run-pass/struct-like-variant-construct.rs |  2 +-
 .../run-pass/struct-like-variant-match.rs     |  2 +-
 .../run-pass/syntax-extension-source-utils.rs |  2 +-
 src/test/run-pass/task-comm-4.rs              |  2 +-
 src/test/run-pass/task-comm-6.rs              |  2 +-
 src/test/run-pass/task-comm-7.rs              |  2 +-
 src/test/run-pass/terminate-in-initializer.rs |  2 +-
 src/test/run-pass/trait-cast-generic.rs       |  2 +-
 src/test/run-pass/trait-cast.rs               |  2 +-
 .../run-pass/traits-default-method-mut.rs     |  4 +-
 src/test/run-pass/type-param-constraints.rs   |  2 +-
 .../typeck-macro-interaction-issue-8852.rs    |  2 +-
 .../run-pass/typeclasses-eq-example-static.rs |  2 +-
 src/test/run-pass/typeclasses-eq-example.rs   |  2 +-
 src/test/run-pass/typestate-cfg-nesting.rs    |  4 +-
 src/test/run-pass/uniq-cc-generic.rs          |  2 +-
 src/test/run-pass/uniq-cc.rs                  |  2 +-
 src/test/run-pass/unique-assign-drop.rs       |  2 +-
 src/test/run-pass/unique-assign-generic.rs    |  2 +-
 src/test/run-pass/unique-move-drop.rs         |  2 +-
 src/test/run-pass/unit.rs                     |  4 +-
 src/test/run-pass/unreachable-code-1.rs       |  4 +-
 src/test/run-pass/unreachable-code.rs         |  6 +--
 src/test/run-pass/unused-move.rs              |  2 +-
 src/test/run-pass/unwind-box.rs               |  2 +-
 src/test/run-pass/unwind-resource2.rs         |  2 +-
 src/test/run-pass/use.rs                      |  4 +-
 src/test/run-pass/utf8_idents.rs              |  2 +-
 src/test/run-pass/variant-structs-trivial.rs  |  2 +-
 src/test/run-pass/vec-drop.rs                 |  2 +-
 src/test/run-pass/vec-slice-drop.rs           |  2 +-
 src/test/run-pass/vector-no-ann-2.rs          |  2 +-
 src/test/run-pass/weird-exprs.rs              |  2 +-
 src/test/run-pass/while-loop-constraints-2.rs |  4 +-
 473 files changed, 607 insertions(+), 607 deletions(-)

diff --git a/src/etc/generate-deriving-span-tests.py b/src/etc/generate-deriving-span-tests.py
index df8d33882c1..51bec8f4c24 100755
--- a/src/etc/generate-deriving-span-tests.py
+++ b/src/etc/generate-deriving-span-tests.py
@@ -37,7 +37,7 @@ TEMPLATE = """// Copyright {year} The Rust Project Developers. See the COPYRIGHT
 
 // This file was auto-generated using 'src/etc/generate-keyword-span-tests.py'
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 extern crate rand;
 
 {error_deriving}
diff --git a/src/etc/unicode.py b/src/etc/unicode.py
index 1ab705d7ece..d5c74e36734 100755
--- a/src/etc/unicode.py
+++ b/src/etc/unicode.py
@@ -411,8 +411,8 @@ rf.write('''// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGH
 
 // The following code was generated by "src/etc/unicode.py"
 
-#[allow(missing_doc)];
-#[allow(non_uppercase_statics)];
+#![allow(missing_doc)]
+#![allow(non_uppercase_statics)]
 
 ''')
 
diff --git a/src/librustc/front/std_inject.rs b/src/librustc/front/std_inject.rs
index 895abe17470..0ff2098e6f2 100644
--- a/src/librustc/front/std_inject.rs
+++ b/src/librustc/front/std_inject.rs
@@ -126,7 +126,7 @@ impl<'a> fold::Folder for PreludeInjector<'a> {
     fn fold_crate(&mut self, krate: ast::Crate) -> ast::Crate {
         if !no_prelude(krate.attrs.as_slice()) {
             // only add `use std::prelude::*;` if there wasn't a
-            // `#[no_implicit_prelude];` at the crate level.
+            // `#![no_implicit_prelude]` at the crate level.
             ast::Crate {
                 module: self.fold_mod(&krate.module),
                 ..krate
@@ -138,7 +138,7 @@ impl<'a> fold::Folder for PreludeInjector<'a> {
 
     fn fold_item(&mut self, item: @ast::Item) -> SmallVector<@ast::Item> {
         if !no_prelude(item.attrs.as_slice()) {
-            // only recur if there wasn't `#[no_implicit_prelude];`
+            // only recur if there wasn't `#![no_implicit_prelude]`
             // on this item, i.e. this means that the prelude is not
             // implicitly imported though the whole subtree
             fold::noop_fold_item(item, self)
diff --git a/src/librustc/middle/typeck/check/regionmanip.rs b/src/librustc/middle/typeck/check/regionmanip.rs
index 44478376fd5..58a0a5859f9 100644
--- a/src/librustc/middle/typeck/check/regionmanip.rs
+++ b/src/librustc/middle/typeck/check/regionmanip.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// #[warn(deprecated_mode)];
+// #![warn(deprecated_mode)]
 
 use middle::ty;
 use middle::ty_fold;
diff --git a/src/libstd/fmt/mod.rs b/src/libstd/fmt/mod.rs
index 3289475b184..f4f4be7172c 100644
--- a/src/libstd/fmt/mod.rs
+++ b/src/libstd/fmt/mod.rs
@@ -250,7 +250,7 @@ strings and instead directly write the output. Under the hood, this function is
 actually invoking the `write` function defined in this module. Example usage is:
 
 ```rust
-# #[allow(unused_must_use)];
+# #![allow(unused_must_use)]
 use std::io;
 
 let mut w = io::MemWriter::new();
@@ -699,7 +699,7 @@ uniform_fn_call_workaround! {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::fmt;
 /// use std::io;
 ///
diff --git a/src/libstd/io/buffered.rs b/src/libstd/io/buffered.rs
index 8fe7f0ca595..e7d0c03551f 100644
--- a/src/libstd/io/buffered.rs
+++ b/src/libstd/io/buffered.rs
@@ -125,7 +125,7 @@ impl<R: Reader> Reader for BufferedReader<R> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::{BufferedWriter, File};
 ///
 /// let file = File::open(&Path::new("message.txt"));
@@ -287,7 +287,7 @@ impl<W: Reader> Reader for InternalBufferedWriter<W> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::{BufferedStream, File};
 ///
 /// let file = File::open(&Path::new("message.txt"));
diff --git a/src/libstd/io/comm_adapters.rs b/src/libstd/io/comm_adapters.rs
index aa7371944da..11271d71cbe 100644
--- a/src/libstd/io/comm_adapters.rs
+++ b/src/libstd/io/comm_adapters.rs
@@ -89,7 +89,7 @@ impl Reader for ChanReader {
 /// # Example
 ///
 /// ```
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::ChanWriter;
 ///
 /// let (tx, rx) = channel();
diff --git a/src/libstd/io/fs.rs b/src/libstd/io/fs.rs
index b8a58c5cf10..c24d67f18cf 100644
--- a/src/libstd/io/fs.rs
+++ b/src/libstd/io/fs.rs
@@ -28,7 +28,7 @@ particular bits of it, etc.
 # Example
 
 ```rust
-# #[allow(unused_must_use)];
+# #![allow(unused_must_use)]
 use std::io::{File, fs};
 
 let path = Path::new("foo.txt");
@@ -162,7 +162,7 @@ impl File {
     /// # Example
     ///
     /// ```rust
-    /// # #[allow(unused_must_use)];
+    /// # #![allow(unused_must_use)]
     /// use std::io::File;
     ///
     /// let mut f = File::create(&Path::new("foo.txt"));
@@ -220,7 +220,7 @@ impl File {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::fs;
 ///
 /// let p = Path::new("/some/file/path.txt");
@@ -290,7 +290,7 @@ pub fn lstat(path: &Path) -> IoResult<FileStat> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::fs;
 ///
 /// fs::rename(&Path::new("foo"), &Path::new("bar"));
@@ -314,7 +314,7 @@ pub fn rename(from: &Path, to: &Path) -> IoResult<()> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::fs;
 ///
 /// fs::copy(&Path::new("foo.txt"), &Path::new("bar.txt"));
@@ -364,7 +364,7 @@ pub fn copy(from: &Path, to: &Path) -> IoResult<()> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io;
 /// use std::io::fs;
 ///
@@ -416,7 +416,7 @@ pub fn readlink(path: &Path) -> IoResult<Path> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io;
 /// use std::io::fs;
 ///
@@ -437,7 +437,7 @@ pub fn mkdir(path: &Path, mode: FilePermission) -> IoResult<()> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::fs;
 ///
 /// let p = Path::new("/some/dir");
diff --git a/src/libstd/io/mem.rs b/src/libstd/io/mem.rs
index b6d1b627b70..36e29700c5d 100644
--- a/src/libstd/io/mem.rs
+++ b/src/libstd/io/mem.rs
@@ -44,7 +44,7 @@ fn combine(seek: SeekStyle, cur: uint, end: uint, offset: i64) -> IoResult<u64>
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::MemWriter;
 ///
 /// let mut w = MemWriter::new();
@@ -125,7 +125,7 @@ impl Seek for MemWriter {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::MemReader;
 ///
 /// let mut r = MemReader::new(vec!(0, 1, 2));
@@ -209,7 +209,7 @@ impl Buffer for MemReader {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::BufWriter;
 ///
 /// let mut buf = [0, ..4];
@@ -267,7 +267,7 @@ impl<'a> Seek for BufWriter<'a> {
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::BufReader;
 ///
 /// let mut buf = [0, 1, 2, 3];
diff --git a/src/libstd/io/mod.rs b/src/libstd/io/mod.rs
index ccff857f606..0ee2da7bb70 100644
--- a/src/libstd/io/mod.rs
+++ b/src/libstd/io/mod.rs
@@ -46,7 +46,7 @@ Some examples of obvious things you might want to do
 * Write a line to a file
 
     ```rust
-    # #[allow(unused_must_use)];
+    # #![allow(unused_must_use)]
     use std::io::File;
 
     let mut file = File::create(&Path::new("message.txt"));
@@ -82,7 +82,7 @@ Some examples of obvious things you might want to do
 * Make a simple TCP client connection and request
 
     ```rust,should_fail
-    # #[allow(unused_must_use)];
+    # #![allow(unused_must_use)]
     use std::io::net::ip::SocketAddr;
     use std::io::net::tcp::TcpStream;
 
@@ -159,7 +159,7 @@ be an error.
 If you wanted to handle the error though you might write:
 
 ```rust
-# #[allow(unused_must_use)];
+# #![allow(unused_must_use)]
 use std::io::File;
 
 match File::create(&Path::new("diary.txt")).write(bytes!("Met a girl.\n")) {
diff --git a/src/libstd/io/net/tcp.rs b/src/libstd/io/net/tcp.rs
index 2253b22796f..49e6bcff8eb 100644
--- a/src/libstd/io/net/tcp.rs
+++ b/src/libstd/io/net/tcp.rs
@@ -31,7 +31,7 @@ use rt::rtio::{RtioTcpAcceptor, RtioTcpStream};
 /// # Example
 ///
 /// ```rust
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::net::tcp::TcpStream;
 /// use std::io::net::ip::{Ipv4Addr, SocketAddr};
 ///
diff --git a/src/libstd/io/net/udp.rs b/src/libstd/io/net/udp.rs
index cd2c81d284a..86d8be49401 100644
--- a/src/libstd/io/net/udp.rs
+++ b/src/libstd/io/net/udp.rs
@@ -31,7 +31,7 @@ use rt::rtio::{RtioSocket, RtioUdpSocket, IoFactory, LocalIo};
 /// # Example
 ///
 /// ```rust,no_run
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::net::udp::UdpSocket;
 /// use std::io::net::ip::{Ipv4Addr, SocketAddr};
 ///
diff --git a/src/libstd/io/net/unix.rs b/src/libstd/io/net/unix.rs
index a58cdbdba44..6f48abb31c7 100644
--- a/src/libstd/io/net/unix.rs
+++ b/src/libstd/io/net/unix.rs
@@ -52,7 +52,7 @@ impl UnixStream {
     /// # Example
     ///
     /// ```rust
-    /// # #[allow(unused_must_use)];
+    /// # #![allow(unused_must_use)]
     /// use std::io::net::unix::UnixStream;
     ///
     /// let server = Path::new("path/to/my/socket");
@@ -98,7 +98,7 @@ impl UnixListener {
     /// ```
     /// # fn main() {}
     /// # fn foo() {
-    /// # #[allow(unused_must_use)];
+    /// # #![allow(unused_must_use)]
     /// use std::io::net::unix::UnixListener;
     /// use std::io::{Listener, Acceptor};
     ///
diff --git a/src/libstd/io/pipe.rs b/src/libstd/io/pipe.rs
index 6eff453b60d..77a97f4e259 100644
--- a/src/libstd/io/pipe.rs
+++ b/src/libstd/io/pipe.rs
@@ -37,7 +37,7 @@ impl PipeStream {
     /// # Example
     ///
     /// ```rust
-    /// # #[allow(unused_must_use)];
+    /// # #![allow(unused_must_use)]
     /// extern crate libc;
     ///
     /// use std::io::pipe::PipeStream;
diff --git a/src/libstd/io/stdio.rs b/src/libstd/io/stdio.rs
index 33306dba8de..5f47e227901 100644
--- a/src/libstd/io/stdio.rs
+++ b/src/libstd/io/stdio.rs
@@ -18,7 +18,7 @@ about the stream or terminal to which it is attached.
 # Example
 
 ```rust
-# #[allow(unused_must_use)];
+# #![allow(unused_must_use)]
 use std::io;
 
 let mut out = io::stdout();
diff --git a/src/libstd/macros.rs b/src/libstd/macros.rs
index 9d06e38dd8e..06a6a6da796 100644
--- a/src/libstd/macros.rs
+++ b/src/libstd/macros.rs
@@ -29,7 +29,7 @@
 /// # Example
 ///
 /// ```should_fail
-/// # #[allow(unreachable_code)];
+/// # #![allow(unreachable_code)]
 /// fail!();
 /// fail!("this is a terrible mistake!");
 /// fail!(4); // fail with the value of 4 to be collected elsewhere
@@ -188,7 +188,7 @@ macro_rules! format(
 /// # Example
 ///
 /// ```
-/// # #[allow(unused_must_use)];
+/// # #![allow(unused_must_use)]
 /// use std::io::MemWriter;
 ///
 /// let mut w = MemWriter::new();
diff --git a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
index fe4a397b786..fd5319d7e6d 100644
--- a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="anonexternmod#0.1"];
+#![crate_id="anonexternmod#0.1"]
 
 extern crate libc;
 
diff --git a/src/test/auxiliary/cci_impl_lib.rs b/src/test/auxiliary/cci_impl_lib.rs
index 6301158714a..ec48862ff39 100644
--- a/src/test/auxiliary/cci_impl_lib.rs
+++ b/src/test/auxiliary/cci_impl_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="cci_impl_lib"];
+#![crate_id="cci_impl_lib"]
 
 pub trait uint_helpers {
     fn to(&self, v: uint, f: |uint|);
diff --git a/src/test/auxiliary/cci_iter_lib.rs b/src/test/auxiliary/cci_iter_lib.rs
index 937f1bb3386..2619ac71d99 100644
--- a/src/test/auxiliary/cci_iter_lib.rs
+++ b/src/test/auxiliary/cci_iter_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="cci_iter_lib"];
+#![crate_id="cci_iter_lib"]
 
 #[inline]
 pub fn iter<T>(v: &[T], f: |&T|) {
diff --git a/src/test/auxiliary/cci_nested_lib.rs b/src/test/auxiliary/cci_nested_lib.rs
index 146ed261811..e66e89f3480 100644
--- a/src/test/auxiliary/cci_nested_lib.rs
+++ b/src/test/auxiliary/cci_nested_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::RefCell;
 
diff --git a/src/test/auxiliary/cci_no_inline_lib.rs b/src/test/auxiliary/cci_no_inline_lib.rs
index 913921e75a4..e9f82ef9413 100644
--- a/src/test/auxiliary/cci_no_inline_lib.rs
+++ b/src/test/auxiliary/cci_no_inline_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="cci_no_inline_lib"];
+#![crate_id="cci_no_inline_lib"]
 
 
 // same as cci_iter_lib, more-or-less, but not marked inline
diff --git a/src/test/auxiliary/changing-crates-a1.rs b/src/test/auxiliary/changing-crates-a1.rs
index c0bdbf81772..360ab79c5b4 100644
--- a/src/test/auxiliary/changing-crates-a1.rs
+++ b/src/test/auxiliary/changing-crates-a1.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "a"];
+#![crate_id = "a"]
 
 pub fn foo<T>() {}
diff --git a/src/test/auxiliary/changing-crates-a2.rs b/src/test/auxiliary/changing-crates-a2.rs
index cc123c0f65d..650b3ac7dca 100644
--- a/src/test/auxiliary/changing-crates-a2.rs
+++ b/src/test/auxiliary/changing-crates-a2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "a"];
+#![crate_id = "a"]
 
 pub fn foo<T>() { println!("hello!"); }
 
diff --git a/src/test/auxiliary/changing-crates-b.rs b/src/test/auxiliary/changing-crates-b.rs
index 9b80583bb84..63bdb889fd0 100644
--- a/src/test/auxiliary/changing-crates-b.rs
+++ b/src/test/auxiliary/changing-crates-b.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "b"];
+#![crate_id = "b"]
 
 extern crate a;
 
diff --git a/src/test/auxiliary/crate-method-reexport-grrrrrrr2.rs b/src/test/auxiliary/crate-method-reexport-grrrrrrr2.rs
index 5fd0a5b31ee..f7b42e05d7f 100644
--- a/src/test/auxiliary/crate-method-reexport-grrrrrrr2.rs
+++ b/src/test/auxiliary/crate-method-reexport-grrrrrrr2.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[crate_id="crate_method_reexport_grrrrrrr2"];
+#![feature(managed_boxes)]
+#![crate_id="crate_method_reexport_grrrrrrr2"]
 
 pub use name_pool::add;
 
diff --git a/src/test/auxiliary/crateresolve1-1.rs b/src/test/auxiliary/crateresolve1-1.rs
index 11324f4a21b..eddedfa36bb 100644
--- a/src/test/auxiliary/crateresolve1-1.rs
+++ b/src/test/auxiliary/crateresolve1-1.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve1#0.1"];
+#![crate_id="crateresolve1#0.1"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 10 }
diff --git a/src/test/auxiliary/crateresolve1-2.rs b/src/test/auxiliary/crateresolve1-2.rs
index d1edbf5d681..48042de0bad 100644
--- a/src/test/auxiliary/crateresolve1-2.rs
+++ b/src/test/auxiliary/crateresolve1-2.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve1#0.2"];
+#![crate_id="crateresolve1#0.2"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 20 }
diff --git a/src/test/auxiliary/crateresolve1-3.rs b/src/test/auxiliary/crateresolve1-3.rs
index 0d1e9eab62b..c126560fe3e 100644
--- a/src/test/auxiliary/crateresolve1-3.rs
+++ b/src/test/auxiliary/crateresolve1-3.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve1#0.3"];
+#![crate_id="crateresolve1#0.3"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 30 }
diff --git a/src/test/auxiliary/crateresolve2-1.rs b/src/test/auxiliary/crateresolve2-1.rs
index 6a5e988dcdf..f436e7c95d1 100644
--- a/src/test/auxiliary/crateresolve2-1.rs
+++ b/src/test/auxiliary/crateresolve2-1.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve2#0.1"];
+#![crate_id="crateresolve2#0.1"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 10 }
diff --git a/src/test/auxiliary/crateresolve2-2.rs b/src/test/auxiliary/crateresolve2-2.rs
index fa10154eb64..1f92ce5943c 100644
--- a/src/test/auxiliary/crateresolve2-2.rs
+++ b/src/test/auxiliary/crateresolve2-2.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve2#0.2"];
+#![crate_id="crateresolve2#0.2"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 20 }
diff --git a/src/test/auxiliary/crateresolve2-3.rs b/src/test/auxiliary/crateresolve2-3.rs
index f93ca930be5..fe064b7e5e6 100644
--- a/src/test/auxiliary/crateresolve2-3.rs
+++ b/src/test/auxiliary/crateresolve2-3.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve2#0.3"];
+#![crate_id="crateresolve2#0.3"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 30 }
diff --git a/src/test/auxiliary/crateresolve3-1.rs b/src/test/auxiliary/crateresolve3-1.rs
index a5d30ea2891..9d00b92182e 100644
--- a/src/test/auxiliary/crateresolve3-1.rs
+++ b/src/test/auxiliary/crateresolve3-1.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve3#0.1"];
+#![crate_id="crateresolve3#0.1"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 10 }
diff --git a/src/test/auxiliary/crateresolve3-2.rs b/src/test/auxiliary/crateresolve3-2.rs
index f9a2b45b4a3..117e585e9ad 100644
--- a/src/test/auxiliary/crateresolve3-2.rs
+++ b/src/test/auxiliary/crateresolve3-2.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve3#0.2"];
+#![crate_id="crateresolve3#0.2"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn g() -> int { 20 }
diff --git a/src/test/auxiliary/crateresolve4a-1.rs b/src/test/auxiliary/crateresolve4a-1.rs
index ad48aea3c2a..dfe1d92c593 100644
--- a/src/test/auxiliary/crateresolve4a-1.rs
+++ b/src/test/auxiliary/crateresolve4a-1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve4a#0.1"];
-#[crate_type = "lib"];
+#![crate_id="crateresolve4a#0.1"]
+#![crate_type = "lib"]
 
 pub fn f() -> int { 10 }
diff --git a/src/test/auxiliary/crateresolve4a-2.rs b/src/test/auxiliary/crateresolve4a-2.rs
index cee5e9711d4..196751e99fa 100644
--- a/src/test/auxiliary/crateresolve4a-2.rs
+++ b/src/test/auxiliary/crateresolve4a-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve4a#0.2"];
-#[crate_type = "lib"];
+#![crate_id="crateresolve4a#0.2"]
+#![crate_type = "lib"]
 
 pub fn g() -> int { 20 }
diff --git a/src/test/auxiliary/crateresolve4b-1.rs b/src/test/auxiliary/crateresolve4b-1.rs
index aa263f34841..41eb0d604bd 100644
--- a/src/test/auxiliary/crateresolve4b-1.rs
+++ b/src/test/auxiliary/crateresolve4b-1.rs
@@ -10,8 +10,8 @@
 
 // aux-build:crateresolve4a-1.rs
 // aux-build:crateresolve4a-2.rs
-#[crate_id="crateresolve4b#0.1"];
-#[crate_type = "lib"];
+#![crate_id="crateresolve4b#0.1"]
+#![crate_type = "lib"]
 
 extern crate crateresolve4a = "crateresolve4a#0.2";
 
diff --git a/src/test/auxiliary/crateresolve4b-2.rs b/src/test/auxiliary/crateresolve4b-2.rs
index e72a6cb163f..51541c8764c 100644
--- a/src/test/auxiliary/crateresolve4b-2.rs
+++ b/src/test/auxiliary/crateresolve4b-2.rs
@@ -10,8 +10,8 @@
 
 // aux-build:crateresolve4a-1.rs
 // aux-build:crateresolve4a-2.rs
-#[crate_id="crateresolve4b#0.2"];
-#[crate_type = "lib"];
+#![crate_id="crateresolve4b#0.2"]
+#![crate_type = "lib"]
 
 extern crate crateresolve4a = "crateresolve4a#0.1";
 
diff --git a/src/test/auxiliary/crateresolve5-1.rs b/src/test/auxiliary/crateresolve5-1.rs
index 4a1a4810919..1d3704ba23d 100644
--- a/src/test/auxiliary/crateresolve5-1.rs
+++ b/src/test/auxiliary/crateresolve5-1.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve5#0.1"];
+#![crate_id="crateresolve5#0.1"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub struct NameVal { pub name: ~str, pub val: int }
 
diff --git a/src/test/auxiliary/crateresolve5-2.rs b/src/test/auxiliary/crateresolve5-2.rs
index f2896ec6ecb..be0032b9e01 100644
--- a/src/test/auxiliary/crateresolve5-2.rs
+++ b/src/test/auxiliary/crateresolve5-2.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve5#0.2"];
+#![crate_id="crateresolve5#0.2"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub struct NameVal { pub name: ~str, pub val: int }
 pub fn struct_nameval() -> NameVal {
diff --git a/src/test/auxiliary/crateresolve8-1.rs b/src/test/auxiliary/crateresolve8-1.rs
index b28ac5295a6..062d606a4c1 100644
--- a/src/test/auxiliary/crateresolve8-1.rs
+++ b/src/test/auxiliary/crateresolve8-1.rs
@@ -9,8 +9,8 @@
 // except according to those terms.
 
 // default link meta for 'package_id' will be equal to filestem
-#[crate_id="crateresolve8#0.1"];
+#![crate_id="crateresolve8#0.1"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub fn f() -> int { 20 }
diff --git a/src/test/auxiliary/crateresolve_calories-1.rs b/src/test/auxiliary/crateresolve_calories-1.rs
index 54219de8107..a0d7ae7cd2f 100644
--- a/src/test/auxiliary/crateresolve_calories-1.rs
+++ b/src/test/auxiliary/crateresolve_calories-1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve_calories#0.1"];
-#[crate_type = "lib"];
+#![crate_id="crateresolve_calories#0.1"]
+#![crate_type = "lib"]
 
 pub fn f() -> int { 100 }
diff --git a/src/test/auxiliary/crateresolve_calories-2.rs b/src/test/auxiliary/crateresolve_calories-2.rs
index 3b949b48613..bbad91625cc 100644
--- a/src/test/auxiliary/crateresolve_calories-2.rs
+++ b/src/test/auxiliary/crateresolve_calories-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="crateresolve_calories#0.1"];
-#[crate_type = "lib"];
+#![crate_id="crateresolve_calories#0.1"]
+#![crate_type = "lib"]
 
 pub fn f() -> int { 200 }
diff --git a/src/test/auxiliary/default_type_params_xc.rs b/src/test/auxiliary/default_type_params_xc.rs
index b2df2c43c85..0e0a2065008 100644
--- a/src/test/auxiliary/default_type_params_xc.rs
+++ b/src/test/auxiliary/default_type_params_xc.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(default_type_params)];
+#![feature(default_type_params)]
 
 pub struct Heap;
 
diff --git a/src/test/auxiliary/extern-crosscrate-source.rs b/src/test/auxiliary/extern-crosscrate-source.rs
index 7185ac413c5..32c963f3287 100644
--- a/src/test/auxiliary/extern-crosscrate-source.rs
+++ b/src/test/auxiliary/extern-crosscrate-source.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="externcallback#0.1"];
-#[crate_type = "lib"];
+#![crate_id="externcallback#0.1"]
+#![crate_type = "lib"]
 
 extern crate libc;
 
diff --git a/src/test/auxiliary/extern_mod_ordering_lib.rs b/src/test/auxiliary/extern_mod_ordering_lib.rs
index cf00f077e07..0fb6adfcda1 100644
--- a/src/test/auxiliary/extern_mod_ordering_lib.rs
+++ b/src/test/auxiliary/extern_mod_ordering_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type="lib"];
+#![crate_type="lib"]
 
 pub mod extern_mod_ordering_lib {
     pub fn f() {}
diff --git a/src/test/auxiliary/foreign_lib.rs b/src/test/auxiliary/foreign_lib.rs
index 396e136f6f0..8ef80662136 100644
--- a/src/test/auxiliary/foreign_lib.rs
+++ b/src/test/auxiliary/foreign_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="foreign_lib"];
+#![crate_id="foreign_lib"]
 
 pub mod rustrt {
     extern crate libc;
diff --git a/src/test/auxiliary/impl_privacy_xc_2.rs b/src/test/auxiliary/impl_privacy_xc_2.rs
index b98e86fc3b0..9b9379e19e5 100644
--- a/src/test/auxiliary/impl_privacy_xc_2.rs
+++ b/src/test/auxiliary/impl_privacy_xc_2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub struct Fish {
     pub x: int
diff --git a/src/test/auxiliary/inline_dtor.rs b/src/test/auxiliary/inline_dtor.rs
index 3dc1b4cc237..fa0d447a8ed 100644
--- a/src/test/auxiliary/inline_dtor.rs
+++ b/src/test/auxiliary/inline_dtor.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="inline_dtor#0.1"];
+#![crate_id="inline_dtor#0.1"]
 
 pub struct Foo;
 
diff --git a/src/test/auxiliary/iss.rs b/src/test/auxiliary/iss.rs
index 96cb6c3273a..095cc3ec1a0 100644
--- a/src/test/auxiliary/iss.rs
+++ b/src/test/auxiliary/iss.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="issue6919_3#0.1"];
+#![crate_id="issue6919_3#0.1"]
 
 // part of issue-6919.rs
 
diff --git a/src/test/auxiliary/issue-11224.rs b/src/test/auxiliary/issue-11224.rs
index 448ef8ef818..560844332a1 100644
--- a/src/test/auxiliary/issue-11224.rs
+++ b/src/test/auxiliary/issue-11224.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deny(dead_code)];
+#![deny(dead_code)]
 
 mod inner {
     pub trait Trait {
diff --git a/src/test/auxiliary/issue-11908-1.rs b/src/test/auxiliary/issue-11908-1.rs
index b0abde795a8..5a59a8d6ee9 100644
--- a/src/test/auxiliary/issue-11908-1.rs
+++ b/src/test/auxiliary/issue-11908-1.rs
@@ -10,5 +10,5 @@
 
 // no-prefer-dynamic
 
-#[crate_id = "collections#0.11-pre"];
-#[crate_type = "dylib"];
+#![crate_id = "collections#0.11-pre"]
+#![crate_type = "dylib"]
diff --git a/src/test/auxiliary/issue-11908-2.rs b/src/test/auxiliary/issue-11908-2.rs
index 612ee3608e9..01e7af0af71 100644
--- a/src/test/auxiliary/issue-11908-2.rs
+++ b/src/test/auxiliary/issue-11908-2.rs
@@ -10,5 +10,5 @@
 
 // no-prefer-dynamic
 
-#[crate_id = "collections#0.11-pre"];
-#[crate_type = "rlib"];
+#![crate_id = "collections#0.11-pre"]
+#![crate_type = "rlib"]
diff --git a/src/test/auxiliary/issue-12133-dylib.rs b/src/test/auxiliary/issue-12133-dylib.rs
index 57ae3f0851d..858d7269cd8 100644
--- a/src/test/auxiliary/issue-12133-dylib.rs
+++ b/src/test/auxiliary/issue-12133-dylib.rs
@@ -10,4 +10,4 @@
 
 // no-prefer-dynamic
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
diff --git a/src/test/auxiliary/issue-12133-rlib.rs b/src/test/auxiliary/issue-12133-rlib.rs
index e5d109bb17e..8e46acca124 100644
--- a/src/test/auxiliary/issue-12133-rlib.rs
+++ b/src/test/auxiliary/issue-12133-rlib.rs
@@ -10,4 +10,4 @@
 
 // no-prefer-dynamic
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
diff --git a/src/test/auxiliary/issue-2380.rs b/src/test/auxiliary/issue-2380.rs
index cb0eac704d9..a34ec980bda 100644
--- a/src/test/auxiliary/issue-2380.rs
+++ b/src/test/auxiliary/issue-2380.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="a"];
-#[crate_type = "lib"];
+#![crate_id="a"]
+#![crate_type = "lib"]
 
 pub trait i<T> { }
 
diff --git a/src/test/auxiliary/issue-2414-a.rs b/src/test/auxiliary/issue-2414-a.rs
index 305dece1ae1..0e444a43c7c 100644
--- a/src/test/auxiliary/issue-2414-a.rs
+++ b/src/test/auxiliary/issue-2414-a.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="a#0.1"];
-#[crate_type = "lib"];
+#![crate_id="a#0.1"]
+#![crate_type = "lib"]
 
 type t1 = uint;
 
diff --git a/src/test/auxiliary/issue-2414-b.rs b/src/test/auxiliary/issue-2414-b.rs
index 0a1587cd7cb..51fd979f961 100644
--- a/src/test/auxiliary/issue-2414-b.rs
+++ b/src/test/auxiliary/issue-2414-b.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[crate_id="b#0.1"];
-#[crate_type = "lib"];
+#![crate_id="b#0.1"]
+#![crate_type = "lib"]
 
 extern crate a;
diff --git a/src/test/auxiliary/issue-2526.rs b/src/test/auxiliary/issue-2526.rs
index 51bbb59b77e..8d096a9b7e7 100644
--- a/src/test/auxiliary/issue-2526.rs
+++ b/src/test/auxiliary/issue-2526.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="issue_2526#0.2"];
-#[crate_type = "lib"];
+#![crate_id="issue_2526#0.2"]
+#![crate_type = "lib"]
 
 struct arc_destruct<T> {
   _data: int,
diff --git a/src/test/auxiliary/issue-2631-a.rs b/src/test/auxiliary/issue-2631-a.rs
index e61510f2ef2..3e76d9e4c6c 100644
--- a/src/test/auxiliary/issue-2631-a.rs
+++ b/src/test/auxiliary/issue-2631-a.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[crate_id="req"];
-#[crate_type = "lib"];
+#![feature(managed_boxes)]
+#![crate_id="req"]
+#![crate_type = "lib"]
 
 extern crate collections;
 
diff --git a/src/test/auxiliary/issue-3012-1.rs b/src/test/auxiliary/issue-3012-1.rs
index 9bb47fcfad3..dbb863da90a 100644
--- a/src/test/auxiliary/issue-3012-1.rs
+++ b/src/test/auxiliary/issue-3012-1.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="socketlib"];
-#[crate_type = "lib"];
+#![crate_id="socketlib"]
+#![crate_type = "lib"]
 
 pub mod socket {
     extern crate libc;
diff --git a/src/test/auxiliary/issue-4208-cc.rs b/src/test/auxiliary/issue-4208-cc.rs
index 8a95f3effb6..cc75ca6f3af 100644
--- a/src/test/auxiliary/issue-4208-cc.rs
+++ b/src/test/auxiliary/issue-4208-cc.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="numeric#0.1"];
-#[crate_type = "lib"];
+#![crate_id="numeric#0.1"]
+#![crate_type = "lib"]
 
 pub trait Trig<T> {
     fn sin(&self) -> T;
diff --git a/src/test/auxiliary/issue-5521.rs b/src/test/auxiliary/issue-5521.rs
index 6f964d0824c..64282d590be 100644
--- a/src/test/auxiliary/issue-5521.rs
+++ b/src/test/auxiliary/issue-5521.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate collections;
 
diff --git a/src/test/auxiliary/issue-8044.rs b/src/test/auxiliary/issue-8044.rs
index 12b871b566b..c0c884f5480 100644
--- a/src/test/auxiliary/issue-8044.rs
+++ b/src/test/auxiliary/issue-8044.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 pub struct BTree<V> {
     pub node: TreeItem<V>,
diff --git a/src/test/auxiliary/issue2378a.rs b/src/test/auxiliary/issue2378a.rs
index d254a275ea6..934c4f52af0 100644
--- a/src/test/auxiliary/issue2378a.rs
+++ b/src/test/auxiliary/issue2378a.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub enum maybe<T> { just(T), nothing }
 
diff --git a/src/test/auxiliary/issue2378b.rs b/src/test/auxiliary/issue2378b.rs
index 72fe2bcec97..03f685c949a 100644
--- a/src/test/auxiliary/issue2378b.rs
+++ b/src/test/auxiliary/issue2378b.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 extern crate issue2378a;
 
diff --git a/src/test/auxiliary/issue_2242_a.rs b/src/test/auxiliary/issue_2242_a.rs
index 413d57c6fd4..e51624dec38 100644
--- a/src/test/auxiliary/issue_2242_a.rs
+++ b/src/test/auxiliary/issue_2242_a.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="a#0.1"];
-#[crate_type = "lib"];
+#![crate_id="a#0.1"]
+#![crate_type = "lib"]
 
 trait to_strz {
     fn to_strz() -> ~str;
diff --git a/src/test/auxiliary/issue_2242_c.rs b/src/test/auxiliary/issue_2242_c.rs
index 077f3950217..4beb8118e21 100644
--- a/src/test/auxiliary/issue_2242_c.rs
+++ b/src/test/auxiliary/issue_2242_c.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="c#0.1"];
-#[crate_type = "lib"];
+#![crate_id="c#0.1"]
+#![crate_type = "lib"]
 
 extern crate a;
 
diff --git a/src/test/auxiliary/issue_2316_b.rs b/src/test/auxiliary/issue_2316_b.rs
index 4530fa4bc25..8a9fa4dbc4a 100644
--- a/src/test/auxiliary/issue_2316_b.rs
+++ b/src/test/auxiliary/issue_2316_b.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 #![feature(globs)]
 
 extern crate issue_2316_a;
diff --git a/src/test/auxiliary/issue_3136_a.rc b/src/test/auxiliary/issue_3136_a.rc
index 0daff0296f5..320e0ceed0f 100644
--- a/src/test/auxiliary/issue_3136_a.rc
+++ b/src/test/auxiliary/issue_3136_a.rc
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub mod issue_3136_a;
diff --git a/src/test/auxiliary/issue_3979_traits.rs b/src/test/auxiliary/issue_3979_traits.rs
index 7b8d7e0d4d9..ef7e4d0fc09 100644
--- a/src/test/auxiliary/issue_3979_traits.rs
+++ b/src/test/auxiliary/issue_3979_traits.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="issue_3979_traits#0.1"];
+#![crate_id="issue_3979_traits#0.1"]
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub trait Positioned {
   fn SetX(&mut self, int);
diff --git a/src/test/auxiliary/issue_9123.rs b/src/test/auxiliary/issue_9123.rs
index 066909d42b8..000cc100a12 100644
--- a/src/test/auxiliary/issue_9123.rs
+++ b/src/test/auxiliary/issue_9123.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 pub trait X {
     fn x() {
diff --git a/src/test/auxiliary/kinds_in_metadata.rs b/src/test/auxiliary/kinds_in_metadata.rs
index 7ca11c8925f..7e090523984 100644
--- a/src/test/auxiliary/kinds_in_metadata.rs
+++ b/src/test/auxiliary/kinds_in_metadata.rs
@@ -13,7 +13,7 @@
 
 // Tests that metadata serialization works for the `Copy` kind.
 
-#[crate_type="lib"];
+#![crate_type="lib"]
 
 pub fn f<T:Copy>() {}
 
diff --git a/src/test/auxiliary/lint_stability.rs b/src/test/auxiliary/lint_stability.rs
index 5afbf4492b3..b63aa18b75d 100644
--- a/src/test/auxiliary/lint_stability.rs
+++ b/src/test/auxiliary/lint_stability.rs
@@ -7,8 +7,8 @@
 // <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.
-#[crate_id="lint_stability#0.1"];
-#[crate_type = "lib"];
+#![crate_id="lint_stability#0.1"]
+#![crate_type = "lib"]
 
 #[deprecated]
 pub fn deprecated() {}
diff --git a/src/test/auxiliary/macro_crate_def_only.rs b/src/test/auxiliary/macro_crate_def_only.rs
index 145212bcc8c..56053a0cd75 100644
--- a/src/test/auxiliary/macro_crate_def_only.rs
+++ b/src/test/auxiliary/macro_crate_def_only.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 #[macro_export]
 macro_rules! make_a_5(
diff --git a/src/test/auxiliary/macro_crate_outlive_expansion_phase.rs b/src/test/auxiliary/macro_crate_outlive_expansion_phase.rs
index 6dc62932de2..4e933be5092 100644
--- a/src/test/auxiliary/macro_crate_outlive_expansion_phase.rs
+++ b/src/test/auxiliary/macro_crate_outlive_expansion_phase.rs
@@ -10,7 +10,7 @@
 
 // force-host
 
-#[feature(macro_registrar)];
+#![feature(macro_registrar)]
 
 extern crate syntax;
 
diff --git a/src/test/auxiliary/macro_crate_test.rs b/src/test/auxiliary/macro_crate_test.rs
index b473ca3264e..5864f839352 100644
--- a/src/test/auxiliary/macro_crate_test.rs
+++ b/src/test/auxiliary/macro_crate_test.rs
@@ -10,7 +10,7 @@
 
 // force-host
 
-#[feature(globs, macro_registrar, macro_rules, quote, managed_boxes)];
+#![feature(globs, macro_registrar, macro_rules, quote, managed_boxes)]
 
 extern crate syntax;
 
diff --git a/src/test/auxiliary/macro_export_inner_module.rs b/src/test/auxiliary/macro_export_inner_module.rs
index a3b7904f423..1e8c15f6b44 100644
--- a/src/test/auxiliary/macro_export_inner_module.rs
+++ b/src/test/auxiliary/macro_export_inner_module.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 pub mod inner {
     #[macro_export]
diff --git a/src/test/auxiliary/moves_based_on_type_lib.rs b/src/test/auxiliary/moves_based_on_type_lib.rs
index d2d36f03698..6ff6da716a9 100644
--- a/src/test/auxiliary/moves_based_on_type_lib.rs
+++ b/src/test/auxiliary/moves_based_on_type_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type="lib"];
+#![crate_type="lib"]
 
 pub struct S {
     x: int,
diff --git a/src/test/auxiliary/newtype_struct_xc.rs b/src/test/auxiliary/newtype_struct_xc.rs
index 60c64842c71..acd5ef0953e 100644
--- a/src/test/auxiliary/newtype_struct_xc.rs
+++ b/src/test/auxiliary/newtype_struct_xc.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type="lib"];
+#![crate_type="lib"]
 
 pub struct Au(pub int);
diff --git a/src/test/auxiliary/no_std_crate.rs b/src/test/auxiliary/no_std_crate.rs
index 0160c7d3cb3..7cfae6d121d 100644
--- a/src/test/auxiliary/no_std_crate.rs
+++ b/src/test/auxiliary/no_std_crate.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[no_std];
+#![no_std]
 
 pub fn foo() {}
diff --git a/src/test/auxiliary/static-function-pointer-aux.rs b/src/test/auxiliary/static-function-pointer-aux.rs
index b2e6548890d..c08f725ff0a 100644
--- a/src/test/auxiliary/static-function-pointer-aux.rs
+++ b/src/test/auxiliary/static-function-pointer-aux.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="static-function-pointer-aux"];
+#![crate_id="static-function-pointer-aux"]
 
 pub fn f(x: int) -> int { -x }
 
diff --git a/src/test/auxiliary/static-methods-crate.rs b/src/test/auxiliary/static-methods-crate.rs
index 79d18596bf2..4e0489b0685 100644
--- a/src/test/auxiliary/static-methods-crate.rs
+++ b/src/test/auxiliary/static-methods-crate.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="static_methods_crate#0.1"];
-#[crate_type = "lib"];
+#![crate_id="static_methods_crate#0.1"]
+#![crate_type = "lib"]
 
 use std::int;
 
diff --git a/src/test/auxiliary/static_priv_by_default.rs b/src/test/auxiliary/static_priv_by_default.rs
index e6fe8615a96..0216e7c5854 100644
--- a/src/test/auxiliary/static_priv_by_default.rs
+++ b/src/test/auxiliary/static_priv_by_default.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 static private: int = 0;
 pub static public: int = 0;
diff --git a/src/test/auxiliary/struct_destructuring_cross_crate.rs b/src/test/auxiliary/struct_destructuring_cross_crate.rs
index 32838331363..3f386ab55d5 100644
--- a/src/test/auxiliary/struct_destructuring_cross_crate.rs
+++ b/src/test/auxiliary/struct_destructuring_cross_crate.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type="lib"];
+#![crate_type="lib"]
 
 pub struct S {
     pub x: int,
diff --git a/src/test/auxiliary/trait_default_method_xc_aux.rs b/src/test/auxiliary/trait_default_method_xc_aux.rs
index 535ebebc722..159ecdcb42a 100644
--- a/src/test/auxiliary/trait_default_method_xc_aux.rs
+++ b/src/test/auxiliary/trait_default_method_xc_aux.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="trait_default_method_xc_aux"];
+#![crate_id="trait_default_method_xc_aux"]
 
 pub struct Something { pub x: int }
 
diff --git a/src/test/auxiliary/trait_superkinds_in_metadata.rs b/src/test/auxiliary/trait_superkinds_in_metadata.rs
index 40ae0ad4583..2efb8a17239 100644
--- a/src/test/auxiliary/trait_superkinds_in_metadata.rs
+++ b/src/test/auxiliary/trait_superkinds_in_metadata.rs
@@ -11,7 +11,7 @@
 // Test library crate for cross-crate usages of traits inheriting
 // from the builtin kinds. Mostly tests metadata correctness.
 
-#[crate_type="lib"];
+#![crate_type="lib"]
 
 pub trait RequiresShare : Share { }
 pub trait RequiresRequiresShareAndSend : RequiresShare + Send { }
diff --git a/src/test/auxiliary/xc_private_method_lib.rs b/src/test/auxiliary/xc_private_method_lib.rs
index b9f15f1c54e..ddab6836bb8 100644
--- a/src/test/auxiliary/xc_private_method_lib.rs
+++ b/src/test/auxiliary/xc_private_method_lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type="lib"];
+#![crate_type="lib"]
 
 pub struct Struct {
     pub x: int
diff --git a/src/test/auxiliary/xcrate_unit_struct.rs b/src/test/auxiliary/xcrate_unit_struct.rs
index a72bf307e5d..7619513a2a6 100644
--- a/src/test/auxiliary/xcrate_unit_struct.rs
+++ b/src/test/auxiliary/xcrate_unit_struct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "lib"];
+#![crate_type = "lib"]
 
 // used by the rpass test
 
diff --git a/src/test/bench/core-std.rs b/src/test/bench/core-std.rs
index 730078b01a2..10a000f118e 100644
--- a/src/test/bench/core-std.rs
+++ b/src/test/bench/core-std.rs
@@ -10,7 +10,7 @@
 
 // Microbenchmarks for various functions in std and extra
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 extern crate rand;
 extern crate time;
diff --git a/src/test/bench/sudoku.rs b/src/test/bench/sudoku.rs
index 0df92afd494..80fea6d4932 100644
--- a/src/test/bench/sudoku.rs
+++ b/src/test/bench/sudoku.rs
@@ -10,7 +10,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::io;
 use std::io::stdio::StdReader;
diff --git a/src/test/bench/task-perf-alloc-unwind.rs b/src/test/bench/task-perf-alloc-unwind.rs
index 4ebe885246d..813a75cfb4d 100644
--- a/src/test/bench/task-perf-alloc-unwind.rs
+++ b/src/test/bench/task-perf-alloc-unwind.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate collections;
 extern crate time;
diff --git a/src/test/compile-fail/dead-code-ret.rs b/src/test/compile-fail/dead-code-ret.rs
index c09938b2f7d..250d22db374 100644
--- a/src/test/compile-fail/dead-code-ret.rs
+++ b/src/test/compile-fail/dead-code-ret.rs
@@ -10,7 +10,7 @@
 
 // error-pattern: unreachable statement
 
-#[deny(unreachable_code)];
+#![deny(unreachable_code)]
 
 fn main() {
     return;
diff --git a/src/test/compile-fail/issue-10656.rs b/src/test/compile-fail/issue-10656.rs
index ca88c260e93..5a4ed1d3df8 100644
--- a/src/test/compile-fail/issue-10656.rs
+++ b/src/test/compile-fail/issue-10656.rs
@@ -10,5 +10,5 @@
 
 // error-pattern: missing documentation for crate
 
-#[deny(missing_doc)];
-#[crate_type="lib"];
+#![deny(missing_doc)]
+#![crate_type="lib"]
diff --git a/src/test/compile-fail/issue-12133-3.rs b/src/test/compile-fail/issue-12133-3.rs
index f97bb618e29..9b78130b703 100644
--- a/src/test/compile-fail/issue-12133-3.rs
+++ b/src/test/compile-fail/issue-12133-3.rs
@@ -14,7 +14,7 @@
 
 // error-pattern: dylib output requested, but some depenencies could not
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 
 extern crate a = "issue-12133-rlib";
 extern crate b = "issue-12133-dylib";
diff --git a/src/test/compile-fail/issue-6596.rs b/src/test/compile-fail/issue-6596.rs
index 235a8003958..54bcf415d2e 100644
--- a/src/test/compile-fail/issue-6596.rs
+++ b/src/test/compile-fail/issue-6596.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 // error-pattern: unknown macro variable `nonexistent`
 
diff --git a/src/test/compile-fail/issue-897.rs b/src/test/compile-fail/issue-897.rs
index 18e25de3eae..f3429b97cfc 100644
--- a/src/test/compile-fail/issue-897.rs
+++ b/src/test/compile-fail/issue-897.rs
@@ -10,7 +10,7 @@
 
 // error-pattern: unreachable statement
 
-#[deny(unreachable_code)];
+#![deny(unreachable_code)]
 
 fn f() -> ! {
     return fail!();
diff --git a/src/test/compile-fail/multiple-macro-registrars.rs b/src/test/compile-fail/multiple-macro-registrars.rs
index 82b1438d6fe..321c0ff0193 100644
--- a/src/test/compile-fail/multiple-macro-registrars.rs
+++ b/src/test/compile-fail/multiple-macro-registrars.rs
@@ -10,7 +10,7 @@
 
 // error-pattern: multiple macro registration functions found
 
-#[feature(macro_registrar)];
+#![feature(macro_registrar)]
 
 // the registration function isn't typechecked yet
 #[macro_registrar]
diff --git a/src/test/compile-fail/nolink-with-link-args.rs b/src/test/compile-fail/nolink-with-link-args.rs
index de929b8bfc9..c4c75bc760f 100644
--- a/src/test/compile-fail/nolink-with-link-args.rs
+++ b/src/test/compile-fail/nolink-with-link-args.rs
@@ -14,7 +14,7 @@
 So we try to compile with junk link_args and make sure they are visible in
 the compiler output. */
 
-#[feature(link_args)];
+#![feature(link_args)]
 
 #[link_args = "aFdEfSeVEEE"]
 extern {}
diff --git a/src/test/compile-fail/required-lang-item.rs b/src/test/compile-fail/required-lang-item.rs
index 2a564990c53..4921c130010 100644
--- a/src/test/compile-fail/required-lang-item.rs
+++ b/src/test/compile-fail/required-lang-item.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[no_std];
+#![no_std]
 
 // error-pattern:requires `start` lang_item
 
diff --git a/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs b/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs
index 15a94c72c02..72b4153be2c 100644
--- a/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs
+++ b/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs
@@ -11,7 +11,7 @@
 // error-pattern:mismatched types: expected `char` but found
 // Issue #876
 
-#[no_implicit_prelude];
+#![no_implicit_prelude]
 use std::vec::Vec;
 
 fn last<T>(v: Vec<&T> ) -> std::option::Option<T> {
diff --git a/src/test/debug-info/basic-types-globals.rs b/src/test/debug-info/basic-types-globals.rs
index 860a383468d..2a620e96892 100644
--- a/src/test/debug-info/basic-types-globals.rs
+++ b/src/test/debug-info/basic-types-globals.rs
@@ -51,7 +51,7 @@
 // check:$14 = 3.5
 // debugger:continue
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 static B: bool = false;
 static I: int = -1;
diff --git a/src/test/debug-info/basic-types-metadata.rs b/src/test/debug-info/basic-types-metadata.rs
index 95228343bda..e06af6445cc 100644
--- a/src/test/debug-info/basic-types-metadata.rs
+++ b/src/test/debug-info/basic-types-metadata.rs
@@ -48,7 +48,7 @@
 // check:[...]![...]_yyy([...])([...]);
 // debugger:continue
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn main() {
     let unit: () = ();
diff --git a/src/test/debug-info/basic-types-mut-globals.rs b/src/test/debug-info/basic-types-mut-globals.rs
index 54c2e786ac4..1580f734617 100644
--- a/src/test/debug-info/basic-types-mut-globals.rs
+++ b/src/test/debug-info/basic-types-mut-globals.rs
@@ -86,7 +86,7 @@
 // debugger:detach
 // debugger:quit
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 static mut B: bool = false;
 static mut I: int = -1;
diff --git a/src/test/debug-info/basic-types.rs b/src/test/debug-info/basic-types.rs
index 205e14ecb75..9c32fcfb945 100644
--- a/src/test/debug-info/basic-types.rs
+++ b/src/test/debug-info/basic-types.rs
@@ -49,7 +49,7 @@
 // debugger:print f64
 // check:$14 = 3.5
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn main() {
     let b: bool = false;
diff --git a/src/test/debug-info/borrowed-basic.rs b/src/test/debug-info/borrowed-basic.rs
index 6608b7a3fc7..3d0f6632e50 100644
--- a/src/test/debug-info/borrowed-basic.rs
+++ b/src/test/debug-info/borrowed-basic.rs
@@ -59,7 +59,7 @@
 // debugger:print *f64_ref
 // check:$14 = 3.5
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn main() {
     let bool_val: bool = true;
diff --git a/src/test/debug-info/borrowed-c-style-enum.rs b/src/test/debug-info/borrowed-c-style-enum.rs
index b0608a8d8b7..4007e35dec3 100644
--- a/src/test/debug-info/borrowed-c-style-enum.rs
+++ b/src/test/debug-info/borrowed-c-style-enum.rs
@@ -24,7 +24,7 @@
 // debugger:print *the_c_ref
 // check:$3 = TheC
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 enum ABC { TheA, TheB, TheC }
 
diff --git a/src/test/debug-info/borrowed-enum.rs b/src/test/debug-info/borrowed-enum.rs
index 397975ebd06..3512bc63395 100644
--- a/src/test/debug-info/borrowed-enum.rs
+++ b/src/test/debug-info/borrowed-enum.rs
@@ -24,8 +24,8 @@
 // debugger:print *univariant_ref
 // check:$3 = {4820353753753434}
 
-#[allow(unused_variable)];
-#[feature(struct_variant)];
+#![allow(unused_variable)]
+#![feature(struct_variant)]
 
 // The first element is to ensure proper alignment, irrespective of the machines word size. Since
 // the size of the discriminant value is machine dependent, this has be taken into account when
diff --git a/src/test/debug-info/borrowed-managed-basic.rs b/src/test/debug-info/borrowed-managed-basic.rs
index 8056706994e..e12ebe643a4 100644
--- a/src/test/debug-info/borrowed-managed-basic.rs
+++ b/src/test/debug-info/borrowed-managed-basic.rs
@@ -10,7 +10,7 @@
 
 // ignore-android: FIXME(#10381)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Gdb doesn't know about UTF-32 character encoding and will print a rust char as only
 // its numerical value.
@@ -61,7 +61,7 @@
 // debugger:print *f64_ref
 // check:$14 = 3.5
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn main() {
     let bool_box: @bool = @true;
diff --git a/src/test/debug-info/borrowed-struct.rs b/src/test/debug-info/borrowed-struct.rs
index 40bfc09b3f7..c5f4bf0ac62 100644
--- a/src/test/debug-info/borrowed-struct.rs
+++ b/src/test/debug-info/borrowed-struct.rs
@@ -45,8 +45,8 @@
 // debugger:print *unique_val_interior_ref_2
 // check:$10 = 26.5
 
-#[feature(managed_boxes)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(unused_variable)]
 
 struct SomeStruct {
     x: int,
diff --git a/src/test/debug-info/borrowed-tuple.rs b/src/test/debug-info/borrowed-tuple.rs
index bfc0333d18a..5cc69c94d59 100644
--- a/src/test/debug-info/borrowed-tuple.rs
+++ b/src/test/debug-info/borrowed-tuple.rs
@@ -10,7 +10,7 @@
 
 // ignore-android: FIXME(#10381)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // compile-flags:-g
 // debugger:rbreak zzz
@@ -29,7 +29,7 @@
 // debugger:print *unique_val_ref
 // check:$4 = {-17, -22}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn main() {
     let stack_val: (i16, f32) = (-14, -19f32);
diff --git a/src/test/debug-info/borrowed-unique-basic.rs b/src/test/debug-info/borrowed-unique-basic.rs
index 26d04d14b16..98cf0905f2a 100644
--- a/src/test/debug-info/borrowed-unique-basic.rs
+++ b/src/test/debug-info/borrowed-unique-basic.rs
@@ -59,7 +59,7 @@
 // debugger:print *f64_ref
 // check:$14 = 3.5
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 
 fn main() {
diff --git a/src/test/debug-info/box.rs b/src/test/debug-info/box.rs
index e02b2813c3c..208dd52f9ac 100644
--- a/src/test/debug-info/box.rs
+++ b/src/test/debug-info/box.rs
@@ -24,8 +24,8 @@
 // debugger:print d->val
 // check:$4 = false
 
-#[feature(managed_boxes)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(unused_variable)]
 
 fn main() {
     let a = ~1;
diff --git a/src/test/debug-info/boxed-struct.rs b/src/test/debug-info/boxed-struct.rs
index 2bb859be1dc..84b35134ad5 100644
--- a/src/test/debug-info/boxed-struct.rs
+++ b/src/test/debug-info/boxed-struct.rs
@@ -27,8 +27,8 @@
 // debugger:print managed_dtor->val
 // check:$4 = {x = 33, y = 333, z = 3333, w = 33333}
 
-#[feature(managed_boxes)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(unused_variable)]
 
 struct StructWithSomePadding {
     x: i16,
diff --git a/src/test/debug-info/by-value-non-immediate-argument.rs b/src/test/debug-info/by-value-non-immediate-argument.rs
index 891a03b4a13..ce876e9907f 100644
--- a/src/test/debug-info/by-value-non-immediate-argument.rs
+++ b/src/test/debug-info/by-value-non-immediate-argument.rs
@@ -43,7 +43,7 @@
 // check:$7 = {{Case1, x = 0, y = 8970181431921507452}, {Case1, 0, 2088533116, 2088533116}}
 // debugger:continue
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 #[deriving(Clone)]
 struct Struct {
diff --git a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs b/src/test/debug-info/by-value-self-argument-in-trait-impl.rs
index 9fd3c287531..f8973f79c5f 100644
--- a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs
+++ b/src/test/debug-info/by-value-self-argument-in-trait-impl.rs
@@ -10,7 +10,7 @@
 
 // ignore-android: FIXME(#10381)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // compile-flags:-g
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/c-style-enum-in-composite.rs b/src/test/debug-info/c-style-enum-in-composite.rs
index 100331bb9cf..08104c2341e 100644
--- a/src/test/debug-info/c-style-enum-in-composite.rs
+++ b/src/test/debug-info/c-style-enum-in-composite.rs
@@ -36,7 +36,7 @@
 // debugger:print struct_with_drop
 // check:$7 = {{a = OneHundred, b = Vienna}, 9}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 enum AnEnum {
     OneHundred = 100,
diff --git a/src/test/debug-info/destructured-fn-argument.rs b/src/test/debug-info/destructured-fn-argument.rs
index a4a16dac656..246857d345c 100644
--- a/src/test/debug-info/destructured-fn-argument.rs
+++ b/src/test/debug-info/destructured-fn-argument.rs
@@ -181,7 +181,7 @@
 // check:$49 = 62
 // debugger:continue
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct Struct {
     a: i64,
diff --git a/src/test/debug-info/destructured-local.rs b/src/test/debug-info/destructured-local.rs
index c2975504c5a..5aabf1fe82f 100644
--- a/src/test/debug-info/destructured-local.rs
+++ b/src/test/debug-info/destructured-local.rs
@@ -125,7 +125,7 @@
 // debugger:print *nn
 // check:$43 = 56
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct Struct {
     a: i64,
diff --git a/src/test/debug-info/evec-in-struct.rs b/src/test/debug-info/evec-in-struct.rs
index 59adaa0f936..bf4a4079ea8 100644
--- a/src/test/debug-info/evec-in-struct.rs
+++ b/src/test/debug-info/evec-in-struct.rs
@@ -30,7 +30,7 @@
 // debugger:print struct_padded_at_end
 // check:$5 = {x = {22, 23}, y = {24, 25}}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct NoPadding1 {
     x: [u32, ..3],
diff --git a/src/test/debug-info/function-arg-initialization.rs b/src/test/debug-info/function-arg-initialization.rs
index 9ceec631c00..a5e6732aaab 100644
--- a/src/test/debug-info/function-arg-initialization.rs
+++ b/src/test/debug-info/function-arg-initialization.rs
@@ -130,7 +130,7 @@
 // check:$32 = 45
 // debugger:continue
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 
 
diff --git a/src/test/debug-info/function-prologue-stepping-no-split-stack.rs b/src/test/debug-info/function-prologue-stepping-no-split-stack.rs
index 2c04e941bac..6f273057a1b 100644
--- a/src/test/debug-info/function-prologue-stepping-no-split-stack.rs
+++ b/src/test/debug-info/function-prologue-stepping-no-split-stack.rs
@@ -127,7 +127,7 @@
 // check:$32 = 45
 // debugger:continue
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 #[no_split_stack]
 fn immediate_args(a: int, b: bool, c: f64) {
diff --git a/src/test/debug-info/generic-static-method-on-struct-and-enum.rs b/src/test/debug-info/generic-static-method-on-struct-and-enum.rs
index 10efea76444..224e7aaed21 100644
--- a/src/test/debug-info/generic-static-method-on-struct-and-enum.rs
+++ b/src/test/debug-info/generic-static-method-on-struct-and-enum.rs
@@ -32,7 +32,7 @@
 // check:$5 = 5
 // debugger:continue
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 struct Struct {
     x: int
diff --git a/src/test/debug-info/generic-struct-style-enum.rs b/src/test/debug-info/generic-struct-style-enum.rs
index dc907046d21..e32110a41f4 100644
--- a/src/test/debug-info/generic-struct-style-enum.rs
+++ b/src/test/debug-info/generic-struct-style-enum.rs
@@ -29,7 +29,7 @@
 // debugger:print univariant
 // check:$4 = {a = -1}
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 // NOTE: This is a copy of the non-generic test case. The `Txx` type parameters have to be
 // substituted with something of size `xx` bits and the same alignment as an integer type of the
diff --git a/src/test/debug-info/include_string.rs b/src/test/debug-info/include_string.rs
index fbfa77741a7..6838af27728 100644
--- a/src/test/debug-info/include_string.rs
+++ b/src/test/debug-info/include_string.rs
@@ -22,7 +22,7 @@
 // check:$3 = 48
 // debugger:continue
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 // This test case makes sure that debug info does not ICE when include_str is
 // used multiple times (see issue #11322).
diff --git a/src/test/debug-info/lexical-scope-with-macro.rs b/src/test/debug-info/lexical-scope-with-macro.rs
index 07987926bd7..6cbaedfde65 100644
--- a/src/test/debug-info/lexical-scope-with-macro.rs
+++ b/src/test/debug-info/lexical-scope-with-macro.rs
@@ -65,7 +65,7 @@
 // check:$15 = 400
 // debugger:continue
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! trivial(
     ($e1:expr) => ($e1)
diff --git a/src/test/debug-info/limited-debuginfo.rs b/src/test/debug-info/limited-debuginfo.rs
index 9fb86881ab5..36ccc91e88b 100644
--- a/src/test/debug-info/limited-debuginfo.rs
+++ b/src/test/debug-info/limited-debuginfo.rs
@@ -29,7 +29,7 @@
 // debugger:continue
 
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct Struct {
     a: i64,
diff --git a/src/test/debug-info/managed-enum.rs b/src/test/debug-info/managed-enum.rs
index e31f0ccd074..a7fb3b3022e 100644
--- a/src/test/debug-info/managed-enum.rs
+++ b/src/test/debug-info/managed-enum.rs
@@ -24,8 +24,8 @@
 // debugger:print univariant->val
 // check:$3 = {-9747455}
 
-#[allow(unused_variable)];
-#[feature(struct_variant, managed_boxes)];
+#![allow(unused_variable)]
+#![feature(struct_variant, managed_boxes)]
 
 // The first element is to ensure proper alignment, irrespective of the machines word size. Since
 // the size of the discriminant value is machine dependent, this has be taken into account when
diff --git a/src/test/debug-info/managed-pointer-within-unique-vec.rs b/src/test/debug-info/managed-pointer-within-unique-vec.rs
index e585f9be4ed..45989fd0d2b 100644
--- a/src/test/debug-info/managed-pointer-within-unique-vec.rs
+++ b/src/test/debug-info/managed-pointer-within-unique-vec.rs
@@ -10,7 +10,7 @@
 
 // ignore-android: FIXME(#10381)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // compile-flags:-g
 // debugger:rbreak zzz
@@ -29,7 +29,7 @@
 // debugger:print unique.ptr[3]->val
 // check:$4 = 13
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn main() {
 
diff --git a/src/test/debug-info/managed-pointer-within-unique.rs b/src/test/debug-info/managed-pointer-within-unique.rs
index 2d6a618348a..79fb353ac4d 100644
--- a/src/test/debug-info/managed-pointer-within-unique.rs
+++ b/src/test/debug-info/managed-pointer-within-unique.rs
@@ -10,7 +10,7 @@
 
 // ignore-android: FIXME(#10381)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // compile-flags:-g
 // debugger:set print pretty off
@@ -27,7 +27,7 @@
 // debugger:print managed_within_unique->y->val
 // check:$3 = -4
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct ContainsManaged {
     x: int,
diff --git a/src/test/debug-info/method-on-enum.rs b/src/test/debug-info/method-on-enum.rs
index af0cb303e13..3ef78c49a54 100644
--- a/src/test/debug-info/method-on-enum.rs
+++ b/src/test/debug-info/method-on-enum.rs
@@ -64,7 +64,7 @@
 // check:$15 = -10
 // debugger:continue
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum Enum {
     Variant1 { x: u16, y: u16 },
diff --git a/src/test/debug-info/multiple-functions-equal-var-names.rs b/src/test/debug-info/multiple-functions-equal-var-names.rs
index e025b8dee2f..524974a0001 100644
--- a/src/test/debug-info/multiple-functions-equal-var-names.rs
+++ b/src/test/debug-info/multiple-functions-equal-var-names.rs
@@ -28,7 +28,7 @@
 // debugger:print abc
 // check:$3 = 30303
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn function_one() {
     let abc = 10101;
diff --git a/src/test/debug-info/multiple-functions.rs b/src/test/debug-info/multiple-functions.rs
index 5f74b0351bb..c93fc8b9cf2 100644
--- a/src/test/debug-info/multiple-functions.rs
+++ b/src/test/debug-info/multiple-functions.rs
@@ -28,7 +28,7 @@
 // debugger:print c
 // check:$3 = 30303
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn function_one() {
     let a = 10101;
diff --git a/src/test/debug-info/nil-enum.rs b/src/test/debug-info/nil-enum.rs
index 8adf937008e..31bfaded88a 100644
--- a/src/test/debug-info/nil-enum.rs
+++ b/src/test/debug-info/nil-enum.rs
@@ -21,7 +21,7 @@
 // debugger:print second
 // check:$2 = {<No data fields>}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 enum ANilEnum {}
 enum AnotherNilEnum {}
diff --git a/src/test/debug-info/option-like-enum.rs b/src/test/debug-info/option-like-enum.rs
index c05ce13ff3e..b025b3a4a55 100644
--- a/src/test/debug-info/option-like-enum.rs
+++ b/src/test/debug-info/option-like-enum.rs
@@ -35,7 +35,7 @@
 
 // debugger:continue
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 // If a struct has exactly two variants, one of them is empty, and the other one
 // contains a non-nullable pointer, then this value is used as the discriminator.
diff --git a/src/test/debug-info/packed-struct-with-destructor.rs b/src/test/debug-info/packed-struct-with-destructor.rs
index 010bc55fa7a..24216929101 100644
--- a/src/test/debug-info/packed-struct-with-destructor.rs
+++ b/src/test/debug-info/packed-struct-with-destructor.rs
@@ -42,7 +42,7 @@
 // debugger:print deeplyNested
 // check:$8 = {a = {a = 1, b = {x = 2, y = 3, z = 4}, c = 5, d = {x = 6, y = 7, z = 8}}, b = {a = 9, b = {x = 10, y = 11, z = 12}, c = {x = 13, y = 14, z = 15}, d = 16}, c = {a = 17, b = {x = 18, y = 19, z = 20}, c = 21, d = {x = 22, y = 23, z = 24}}, d = {a = 25, b = {x = 26, y = 27, z = 28}, c = 29, d = {x = 30, y = 31, z = 32}}, e = {a = 33, b = {x = 34, y = 35, z = 36}, c = {x = 37, y = 38, z = 39}, d = 40}, f = {a = 41, b = {x = 42, y = 43, z = 44}, c = 45, d = {x = 46, y = 47, z = 48}}}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 #[packed]
 struct Packed {
diff --git a/src/test/debug-info/packed-struct.rs b/src/test/debug-info/packed-struct.rs
index 78bc924387d..2b7df0083d6 100644
--- a/src/test/debug-info/packed-struct.rs
+++ b/src/test/debug-info/packed-struct.rs
@@ -35,7 +35,7 @@
 // debugger:print sizeof(packedInPacked)
 // check:$6 = 40
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 #[packed]
 struct Packed {
diff --git a/src/test/debug-info/recursive-enum.rs b/src/test/debug-info/recursive-enum.rs
index c02d3f0e076..aea8ab1b2b8 100644
--- a/src/test/debug-info/recursive-enum.rs
+++ b/src/test/debug-info/recursive-enum.rs
@@ -16,7 +16,7 @@
 // Test whether compiling a recursive enum definition crashes debug info generation. The test case
 // is taken from issue #11083.
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 pub struct Window<'a> {
     callbacks: WindowCallbacks<'a>
diff --git a/src/test/debug-info/recursive-struct.rs b/src/test/debug-info/recursive-struct.rs
index a4524f558c2..ca178468941 100644
--- a/src/test/debug-info/recursive-struct.rs
+++ b/src/test/debug-info/recursive-struct.rs
@@ -10,7 +10,7 @@
 
 // ignore-android: FIXME(#10381)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // compile-flags:-g
 // debugger:set print pretty off
@@ -102,8 +102,8 @@
 
 // debugger:continue
 
-#[allow(unused_variable)];
-#[feature(struct_variant)];
+#![allow(unused_variable)]
+#![feature(struct_variant)]
 
 enum Opt<T> {
     Empty,
diff --git a/src/test/debug-info/simd.rs b/src/test/debug-info/simd.rs
index 91d53339648..98397277416 100644
--- a/src/test/debug-info/simd.rs
+++ b/src/test/debug-info/simd.rs
@@ -41,7 +41,7 @@
 // debugger:continue
 
 #![allow(experimental)]
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 use std::unstable::simd::{i8x16, i16x8,i32x4,i64x2,u8x16,u16x8,u32x4,u64x2,f32x4,f64x2};
 
diff --git a/src/test/debug-info/simple-struct.rs b/src/test/debug-info/simple-struct.rs
index 2e1cdeccad2..736ab76f7db 100644
--- a/src/test/debug-info/simple-struct.rs
+++ b/src/test/debug-info/simple-struct.rs
@@ -72,8 +72,8 @@
 // debugger:print 'simple-struct::PADDING_AT_END'
 // check:$18 = {x = -27, y = 28}
 
-#[allow(unused_variable)];
-#[allow(dead_code)];
+#![allow(unused_variable)]
+#![allow(dead_code)]
 
 struct NoPadding16 {
     x: u16,
diff --git a/src/test/debug-info/simple-tuple.rs b/src/test/debug-info/simple-tuple.rs
index 16b0061f25e..256a34ff0ab 100644
--- a/src/test/debug-info/simple-tuple.rs
+++ b/src/test/debug-info/simple-tuple.rs
@@ -69,8 +69,8 @@
 // debugger:print 'simple-tuple::PADDING_AT_END'
 // check:$21 = {116, 117}
 
-#[allow(unused_variable)];
-#[allow(dead_code)];
+#![allow(unused_variable)]
+#![allow(dead_code)]
 
 static mut NO_PADDING_8: (i8, u8) = (-50, 50);
 static mut NO_PADDING_16: (i16, i16, u16) = (-1, 2, 3);
diff --git a/src/test/debug-info/static-method-on-struct-and-enum.rs b/src/test/debug-info/static-method-on-struct-and-enum.rs
index a07a3517db1..68bc470e6b1 100644
--- a/src/test/debug-info/static-method-on-struct-and-enum.rs
+++ b/src/test/debug-info/static-method-on-struct-and-enum.rs
@@ -32,7 +32,7 @@
 // check:$5 = 5
 // debugger:continue
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 struct Struct {
     x: int
diff --git a/src/test/debug-info/struct-in-enum.rs b/src/test/debug-info/struct-in-enum.rs
index 779a9dc2fe0..9b3931428bb 100644
--- a/src/test/debug-info/struct-in-enum.rs
+++ b/src/test/debug-info/struct-in-enum.rs
@@ -26,7 +26,7 @@
 // debugger:print univariant
 // check:$3 = {{x = 123, y = 456, z = 789}}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct Struct {
     x: u32,
diff --git a/src/test/debug-info/struct-in-struct.rs b/src/test/debug-info/struct-in-struct.rs
index 44eb3a83146..182fb3d0965 100644
--- a/src/test/debug-info/struct-in-struct.rs
+++ b/src/test/debug-info/struct-in-struct.rs
@@ -25,7 +25,7 @@
 // debugger:print padding_at_end_parent
 // check:$3 = {x = {x = 10, y = 11}, y = {x = 12, y = 13}, z = {x = 14, y = 15}}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct Simple {
     x: i32
diff --git a/src/test/debug-info/struct-style-enum.rs b/src/test/debug-info/struct-style-enum.rs
index f81501c7121..cb68245a48e 100644
--- a/src/test/debug-info/struct-style-enum.rs
+++ b/src/test/debug-info/struct-style-enum.rs
@@ -29,8 +29,8 @@
 // debugger:print univariant
 // check:$4 = {a = -1}
 
-#[allow(unused_variable)];
-#[feature(struct_variant)];
+#![allow(unused_variable)]
+#![feature(struct_variant)]
 
 // The first element is to ensure proper alignment, irrespective of the machines word size. Since
 // the size of the discriminant value is machine dependent, this has be taken into account when
diff --git a/src/test/debug-info/struct-with-destructor.rs b/src/test/debug-info/struct-with-destructor.rs
index 6a0f94e6e50..ae439611c40 100644
--- a/src/test/debug-info/struct-with-destructor.rs
+++ b/src/test/debug-info/struct-with-destructor.rs
@@ -26,7 +26,7 @@
 // debugger:print nested
 // check:$4 = {a = {a = {x = 7890, y = 9870}}}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct NoDestructor {
     x: i32,
diff --git a/src/test/debug-info/trait-pointers.rs b/src/test/debug-info/trait-pointers.rs
index 471a30330ac..8d114a3f8dd 100644
--- a/src/test/debug-info/trait-pointers.rs
+++ b/src/test/debug-info/trait-pointers.rs
@@ -13,7 +13,7 @@
 // compile-flags:-g
 // debugger:run
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 trait Trait {
     fn method(&self) -> int { 0 }
diff --git a/src/test/debug-info/tuple-in-struct.rs b/src/test/debug-info/tuple-in-struct.rs
index 458a5fb4097..242f59ad4de 100644
--- a/src/test/debug-info/tuple-in-struct.rs
+++ b/src/test/debug-info/tuple-in-struct.rs
@@ -41,7 +41,7 @@
 // debugger:print mixed_padding
 // check:$10 = {x = {{40, 41, 42}, {43, 44}}, y = {45, 46, 47, 48}}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct NoPadding1 {
     x: (i32, i32),
diff --git a/src/test/debug-info/tuple-in-tuple.rs b/src/test/debug-info/tuple-in-tuple.rs
index 7854d9aa9be..1008af246a0 100644
--- a/src/test/debug-info/tuple-in-tuple.rs
+++ b/src/test/debug-info/tuple-in-tuple.rs
@@ -33,7 +33,7 @@
 // debugger:print padding_at_end2
 // check:$7 = {{21, 22}, 23}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 fn main() {
     let no_padding1: ((u32, u32), u32, u32) = ((0, 1), 2, 3);
diff --git a/src/test/debug-info/tuple-style-enum.rs b/src/test/debug-info/tuple-style-enum.rs
index 45eceb6b509..176e4b0a69f 100644
--- a/src/test/debug-info/tuple-style-enum.rs
+++ b/src/test/debug-info/tuple-style-enum.rs
@@ -29,7 +29,7 @@
 // debugger:print univariant
 // check:$4 = {-1}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 // The first element is to ensure proper alignment, irrespective of the machines word size. Since
 // the size of the discriminant value is machine dependent, this has be taken into account when
diff --git a/src/test/debug-info/unique-enum.rs b/src/test/debug-info/unique-enum.rs
index a8374fe2cc8..1c2cc883285 100644
--- a/src/test/debug-info/unique-enum.rs
+++ b/src/test/debug-info/unique-enum.rs
@@ -24,8 +24,8 @@
 // debugger:print *univariant
 // check:$3 = {123234}
 
-#[allow(unused_variable)];
-#[feature(struct_variant)];
+#![allow(unused_variable)]
+#![feature(struct_variant)]
 
 // The first element is to ensure proper alignment, irrespective of the machines word size. Since
 // the size of the discriminant value is machine dependent, this has be taken into account when
diff --git a/src/test/debug-info/var-captured-in-nested-closure.rs b/src/test/debug-info/var-captured-in-nested-closure.rs
index 3bf26ae8053..8dd22e60617 100644
--- a/src/test/debug-info/var-captured-in-nested-closure.rs
+++ b/src/test/debug-info/var-captured-in-nested-closure.rs
@@ -48,8 +48,8 @@
 // check:$14 = 8
 // debugger:continue
 
-#[feature(managed_boxes)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(unused_variable)]
 
 struct Struct {
     a: int,
diff --git a/src/test/debug-info/var-captured-in-sendable-closure.rs b/src/test/debug-info/var-captured-in-sendable-closure.rs
index 6a1c086b30c..83b26e08975 100644
--- a/src/test/debug-info/var-captured-in-sendable-closure.rs
+++ b/src/test/debug-info/var-captured-in-sendable-closure.rs
@@ -22,7 +22,7 @@
 // debugger:print *owned
 // check:$3 = 5
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct Struct {
     a: int,
diff --git a/src/test/debug-info/var-captured-in-stack-closure.rs b/src/test/debug-info/var-captured-in-stack-closure.rs
index 0a2a9b74729..4daaf8f7a0e 100644
--- a/src/test/debug-info/var-captured-in-stack-closure.rs
+++ b/src/test/debug-info/var-captured-in-stack-closure.rs
@@ -28,8 +28,8 @@
 // debugger:print managed->val
 // check:$6 = 7
 
-#[feature(managed_boxes)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(unused_variable)]
 
 struct Struct {
     a: int,
diff --git a/src/test/debug-info/vec-slices.rs b/src/test/debug-info/vec-slices.rs
index 0c7e2740cd7..6171facc42b 100644
--- a/src/test/debug-info/vec-slices.rs
+++ b/src/test/debug-info/vec-slices.rs
@@ -53,7 +53,7 @@
 // debugger:print *((int64_t[2]*)('vec-slices::MUT_VECT_SLICE'.data_ptr))
 // check:$15 = {64, 65}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct AStruct {
     x: i16,
diff --git a/src/test/debug-info/vec.rs b/src/test/debug-info/vec.rs
index 635a42d443e..e1ee1ae0212 100644
--- a/src/test/debug-info/vec.rs
+++ b/src/test/debug-info/vec.rs
@@ -21,7 +21,7 @@
 // debugger:print vec::VECT
 // check:$2 = {4, 5, 6}
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 static mut VECT: [i32, ..3] = [1, 2, 3];
 
diff --git a/src/test/pretty/block-disambig.rs b/src/test/pretty/block-disambig.rs
index bc489209446..3ab23beaeb9 100644
--- a/src/test/pretty/block-disambig.rs
+++ b/src/test/pretty/block-disambig.rs
@@ -12,7 +12,7 @@
 // previously ambiguous (e.g. 'if true { } *val;' gets parsed as a
 // binop)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-fail/args-fail.rs b/src/test/run-fail/args-fail.rs
index dbcaf10ea6b..a0a11e00295 100644
--- a/src/test/run-fail/args-fail.rs
+++ b/src/test/run-fail/args-fail.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:meep
 fn f(_a: int, _b: int, _c: @int) { fail!("moop"); }
diff --git a/src/test/run-fail/doublefail.rs b/src/test/run-fail/doublefail.rs
index 1ceeee1b6ed..4f3dfaa80b9 100644
--- a/src/test/run-fail/doublefail.rs
+++ b/src/test/run-fail/doublefail.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unreachable_code)];
+#![allow(unreachable_code)]
 
 //error-pattern:One
 fn main() {
diff --git a/src/test/run-fail/explicit-fail-msg.rs b/src/test/run-fail/explicit-fail-msg.rs
index ab8cea0a305..64e779de047 100644
--- a/src/test/run-fail/explicit-fail-msg.rs
+++ b/src/test/run-fail/explicit-fail-msg.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 // error-pattern:wooooo
 fn main() {
diff --git a/src/test/run-fail/issue-2272.rs b/src/test/run-fail/issue-2272.rs
index 21ebf06ca04..c27ddef8711 100644
--- a/src/test/run-fail/issue-2272.rs
+++ b/src/test/run-fail/issue-2272.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:explicit failure
 // Issue #2272 - unwind this without leaking the unique pointer
diff --git a/src/test/run-fail/issue-3029.rs b/src/test/run-fail/issue-3029.rs
index 7e8a8867a7c..0385059736c 100644
--- a/src/test/run-fail/issue-3029.rs
+++ b/src/test/run-fail/issue-3029.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unnecessary_allocation)];
-#[allow(unreachable_code)];
-#[allow(unused_variable)];
+#![allow(unnecessary_allocation)]
+#![allow(unreachable_code)]
+#![allow(unused_variable)]
 
 
 // error-pattern:so long
diff --git a/src/test/run-fail/issue-948.rs b/src/test/run-fail/issue-948.rs
index db954bc5946..5669131aeee 100644
--- a/src/test/run-fail/issue-948.rs
+++ b/src/test/run-fail/issue-948.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:beep boop
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct Point { x: int, y: int }
 
diff --git a/src/test/run-fail/match-bot-fail.rs b/src/test/run-fail/match-bot-fail.rs
index a54422ef8f5..9728c84b900 100644
--- a/src/test/run-fail/match-bot-fail.rs
+++ b/src/test/run-fail/match-bot-fail.rs
@@ -10,8 +10,8 @@
 
 // error-pattern:explicit failure
 
-#[allow(unreachable_code)];
-#[allow(unused_variable)];
+#![allow(unreachable_code)]
+#![allow(unused_variable)]
 
 fn foo(s: ~str) { }
 
diff --git a/src/test/run-fail/rhs-type.rs b/src/test/run-fail/rhs-type.rs
index ca267608025..584be2d89b7 100644
--- a/src/test/run-fail/rhs-type.rs
+++ b/src/test/run-fail/rhs-type.rs
@@ -12,8 +12,8 @@
 // as a _|_-typed thing, not a str-typed thing
 // error-pattern:bye
 
-#[allow(unreachable_code)];
-#[allow(unused_variable)];
+#![allow(unreachable_code)]
+#![allow(unused_variable)]
 
 struct T { t: ~str }
 
diff --git a/src/test/run-fail/unwind-assert.rs b/src/test/run-fail/unwind-assert.rs
index 4ed79147947..02c9c6a44ef 100644
--- a/src/test/run-fail/unwind-assert.rs
+++ b/src/test/run-fail/unwind-assert.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn main() {
     let _a = @0;
diff --git a/src/test/run-fail/unwind-box-fn-unique.rs b/src/test/run-fail/unwind-box-fn-unique.rs
index da4210b9fa8..3fabbdff9b3 100644
--- a/src/test/run-fail/unwind-box-fn-unique.rs
+++ b/src/test/run-fail/unwind-box-fn-unique.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:fail
 
diff --git a/src/test/run-fail/unwind-box-res.rs b/src/test/run-fail/unwind-box-res.rs
index 49bcde75594..2e4ebf5ea34 100644
--- a/src/test/run-fail/unwind-box-res.rs
+++ b/src/test/run-fail/unwind-box-res.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cast;
 
diff --git a/src/test/run-fail/unwind-box-str.rs b/src/test/run-fail/unwind-box-str.rs
index 6343b81fd2a..44d69cb516b 100644
--- a/src/test/run-fail/unwind-box-str.rs
+++ b/src/test/run-fail/unwind-box-str.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn failfn() {
     fail!();
diff --git a/src/test/run-fail/unwind-box-unique-unique.rs b/src/test/run-fail/unwind-box-unique-unique.rs
index d9f425403eb..dcfaccf5ab7 100644
--- a/src/test/run-fail/unwind-box-unique-unique.rs
+++ b/src/test/run-fail/unwind-box-unique-unique.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn failfn() {
     fail!();
diff --git a/src/test/run-fail/unwind-box-unique.rs b/src/test/run-fail/unwind-box-unique.rs
index 045ffea0fcd..bfe72835f45 100644
--- a/src/test/run-fail/unwind-box-unique.rs
+++ b/src/test/run-fail/unwind-box-unique.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn failfn() {
     fail!();
diff --git a/src/test/run-fail/unwind-box-vec.rs b/src/test/run-fail/unwind-box-vec.rs
index e66b188fac6..07d978a191d 100644
--- a/src/test/run-fail/unwind-box-vec.rs
+++ b/src/test/run-fail/unwind-box-vec.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn failfn() {
     fail!();
diff --git a/src/test/run-fail/unwind-box.rs b/src/test/run-fail/unwind-box.rs
index 6cbccfb29f9..9d7a9d11399 100644
--- a/src/test/run-fail/unwind-box.rs
+++ b/src/test/run-fail/unwind-box.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn failfn() {
     fail!();
diff --git a/src/test/run-fail/unwind-fail.rs b/src/test/run-fail/unwind-fail.rs
index 4acd1ba6b1b..97570ec552e 100644
--- a/src/test/run-fail/unwind-fail.rs
+++ b/src/test/run-fail/unwind-fail.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn main() {
     @0;
diff --git a/src/test/run-fail/unwind-initializer-indirect.rs b/src/test/run-fail/unwind-initializer-indirect.rs
index 0ecc6765b8e..acb211e597f 100644
--- a/src/test/run-fail/unwind-initializer-indirect.rs
+++ b/src/test/run-fail/unwind-initializer-indirect.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:fail
 
diff --git a/src/test/run-fail/unwind-initializer.rs b/src/test/run-fail/unwind-initializer.rs
index d0e5c7a7d02..6e854919641 100644
--- a/src/test/run-fail/unwind-initializer.rs
+++ b/src/test/run-fail/unwind-initializer.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:fail
 
diff --git a/src/test/run-fail/unwind-iter.rs b/src/test/run-fail/unwind-iter.rs
index 9b5b9be3415..1b4eebae2d5 100644
--- a/src/test/run-fail/unwind-iter.rs
+++ b/src/test/run-fail/unwind-iter.rs
@@ -10,9 +10,9 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
-#[allow(unreachable_code)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(unreachable_code)]
+#![allow(unused_variable)]
 
 fn x(it: |int|) {
     fail!();
diff --git a/src/test/run-fail/unwind-iter2.rs b/src/test/run-fail/unwind-iter2.rs
index 0ac8b2b26e9..b0ec375a5cb 100644
--- a/src/test/run-fail/unwind-iter2.rs
+++ b/src/test/run-fail/unwind-iter2.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn x(it: |int|) {
     let _a = @0;
diff --git a/src/test/run-fail/unwind-lambda.rs b/src/test/run-fail/unwind-lambda.rs
index f544d474c4f..74f3e97cbba 100644
--- a/src/test/run-fail/unwind-lambda.rs
+++ b/src/test/run-fail/unwind-lambda.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:fail
 
diff --git a/src/test/run-fail/unwind-match.rs b/src/test/run-fail/unwind-match.rs
index 44cc3145c44..ef8ffd2df43 100644
--- a/src/test/run-fail/unwind-match.rs
+++ b/src/test/run-fail/unwind-match.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Issue #945
 // error-pattern:non-exhaustive match failure
diff --git a/src/test/run-fail/unwind-misc-1.rs b/src/test/run-fail/unwind-misc-1.rs
index 5bcf5b054c1..59aaa7addcc 100644
--- a/src/test/run-fail/unwind-misc-1.rs
+++ b/src/test/run-fail/unwind-misc-1.rs
@@ -11,7 +11,7 @@
 // exec-env:RUST_NEWRT=1
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate collections;
 
diff --git a/src/test/run-fail/unwind-move.rs b/src/test/run-fail/unwind-move.rs
index 69d2e1a1162..99e01391f20 100644
--- a/src/test/run-fail/unwind-move.rs
+++ b/src/test/run-fail/unwind-move.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:fail
 fn f(_a: @int) {
diff --git a/src/test/run-fail/unwind-nested.rs b/src/test/run-fail/unwind-nested.rs
index 3805f955d73..c52cb3a1ebf 100644
--- a/src/test/run-fail/unwind-nested.rs
+++ b/src/test/run-fail/unwind-nested.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn main() {
     let _a = @0;
diff --git a/src/test/run-fail/unwind-partial-box.rs b/src/test/run-fail/unwind-partial-box.rs
index e77f95c22b2..62b4c1c98cb 100644
--- a/src/test/run-fail/unwind-partial-box.rs
+++ b/src/test/run-fail/unwind-partial-box.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 fn f() -> Vec<int> { fail!(); }
diff --git a/src/test/run-fail/unwind-partial-unique.rs b/src/test/run-fail/unwind-partial-unique.rs
index c6d75aa8713..f265655e0ef 100644
--- a/src/test/run-fail/unwind-partial-unique.rs
+++ b/src/test/run-fail/unwind-partial-unique.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 fn f() -> Vec<int> { fail!(); }
diff --git a/src/test/run-fail/unwind-partial-vec.rs b/src/test/run-fail/unwind-partial-vec.rs
index afa3b3fb7ee..92093a90cfd 100644
--- a/src/test/run-fail/unwind-partial-vec.rs
+++ b/src/test/run-fail/unwind-partial-vec.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 fn f() -> Vec<int> { fail!(); }
diff --git a/src/test/run-fail/unwind-resource-fail.rs b/src/test/run-fail/unwind-resource-fail.rs
index acba75aeef1..1a7d7d84763 100644
--- a/src/test/run-fail/unwind-resource-fail.rs
+++ b/src/test/run-fail/unwind-resource-fail.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:squirrel
 
diff --git a/src/test/run-fail/unwind-resource-fail3.rs b/src/test/run-fail/unwind-resource-fail3.rs
index 39b0d67dc38..15db0fbd5cb 100644
--- a/src/test/run-fail/unwind-resource-fail3.rs
+++ b/src/test/run-fail/unwind-resource-fail3.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // error-pattern:quux
 
diff --git a/src/test/run-fail/unwind-stacked.rs b/src/test/run-fail/unwind-stacked.rs
index bd875ada18e..eb0e69fe877 100644
--- a/src/test/run-fail/unwind-stacked.rs
+++ b/src/test/run-fail/unwind-stacked.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn f() {
     let _a = @0;
diff --git a/src/test/run-fail/unwind-tup.rs b/src/test/run-fail/unwind-tup.rs
index bb7a2e21bb9..7108d4df54f 100644
--- a/src/test/run-fail/unwind-tup.rs
+++ b/src/test/run-fail/unwind-tup.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 // error-pattern:fail
diff --git a/src/test/run-fail/unwind-tup2.rs b/src/test/run-fail/unwind-tup2.rs
index 6b6f8172a17..ca77f692533 100644
--- a/src/test/run-fail/unwind-tup2.rs
+++ b/src/test/run-fail/unwind-tup2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 // error-pattern:fail
diff --git a/src/test/run-fail/unwind-uninitialized.rs b/src/test/run-fail/unwind-uninitialized.rs
index 265a616f3de..a70585d6b1d 100644
--- a/src/test/run-fail/unwind-uninitialized.rs
+++ b/src/test/run-fail/unwind-uninitialized.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn f() {
     fail!();
diff --git a/src/test/run-fail/while-body-fails.rs b/src/test/run-fail/while-body-fails.rs
index 32e1425b28c..0a0b2608357 100644
--- a/src/test/run-fail/while-body-fails.rs
+++ b/src/test/run-fail/while-body-fails.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(while_true)];
+#![allow(while_true)]
 
 // error-pattern:quux
 fn main() { let _x: int = { while true { fail!("quux"); } ; 8 } ; }
diff --git a/src/test/run-fail/while-fail.rs b/src/test/run-fail/while-fail.rs
index a0b437814fd..24058c4fb93 100644
--- a/src/test/run-fail/while-fail.rs
+++ b/src/test/run-fail/while-fail.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(while_true)];
+#![allow(while_true)]
 
 // error-pattern:giraffe
 fn main() {
diff --git a/src/test/run-make/bootstrap-from-c-with-green/lib.rs b/src/test/run-make/bootstrap-from-c-with-green/lib.rs
index 36b92e127f9..bb68ba49168 100644
--- a/src/test/run-make/bootstrap-from-c-with-green/lib.rs
+++ b/src/test/run-make/bootstrap-from-c-with-green/lib.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="boot#0.1"];
-#[crate_type="dylib"];
+#![crate_id="boot#0.1"]
+#![crate_type="dylib"]
 
 extern crate rustuv;
 extern crate green;
diff --git a/src/test/run-make/bootstrap-from-c-with-native/lib.rs b/src/test/run-make/bootstrap-from-c-with-native/lib.rs
index 33c8d4ffab7..7a78ec29a82 100644
--- a/src/test/run-make/bootstrap-from-c-with-native/lib.rs
+++ b/src/test/run-make/bootstrap-from-c-with-native/lib.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="boot#0.1"];
-#[crate_type="dylib"];
+#![crate_id="boot#0.1"]
+#![crate_type="dylib"]
 
 extern crate native;
 
diff --git a/src/test/run-make/c-dynamic-dylib/foo.rs b/src/test/run-make/c-dynamic-dylib/foo.rs
index 5c24e69d79f..04253be71d4 100644
--- a/src/test/run-make/c-dynamic-dylib/foo.rs
+++ b/src/test/run-make/c-dynamic-dylib/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 
 #[link(name = "cfoo")]
 extern {
diff --git a/src/test/run-make/c-dynamic-rlib/foo.rs b/src/test/run-make/c-dynamic-rlib/foo.rs
index 1f13d610144..a1f01bd2b62 100644
--- a/src/test/run-make/c-dynamic-rlib/foo.rs
+++ b/src/test/run-make/c-dynamic-rlib/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 
 #[link(name = "cfoo")]
 extern {
diff --git a/src/test/run-make/c-link-to-rust-dylib/foo.rs b/src/test/run-make/c-link-to-rust-dylib/foo.rs
index 0f8ca1e6ef1..32675bcba1e 100644
--- a/src/test/run-make/c-link-to-rust-dylib/foo.rs
+++ b/src/test/run-make/c-link-to-rust-dylib/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 
 #[no_mangle]
 pub extern "C" fn foo() {}
diff --git a/src/test/run-make/c-link-to-rust-staticlib/foo.rs b/src/test/run-make/c-link-to-rust-staticlib/foo.rs
index 4cb7a749385..1bb19016700 100644
--- a/src/test/run-make/c-link-to-rust-staticlib/foo.rs
+++ b/src/test/run-make/c-link-to-rust-staticlib/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "staticlib"];
+#![crate_type = "staticlib"]
 
 #[no_mangle]
 pub extern "C" fn foo() {}
diff --git a/src/test/run-make/c-static-dylib/foo.rs b/src/test/run-make/c-static-dylib/foo.rs
index 5c24e69d79f..04253be71d4 100644
--- a/src/test/run-make/c-static-dylib/foo.rs
+++ b/src/test/run-make/c-static-dylib/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 
 #[link(name = "cfoo")]
 extern {
diff --git a/src/test/run-make/c-static-rlib/foo.rs b/src/test/run-make/c-static-rlib/foo.rs
index 1f13d610144..a1f01bd2b62 100644
--- a/src/test/run-make/c-static-rlib/foo.rs
+++ b/src/test/run-make/c-static-rlib/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 
 #[link(name = "cfoo")]
 extern {
diff --git a/src/test/run-make/crate-data-smoke/crate.rs b/src/test/run-make/crate-data-smoke/crate.rs
index b6587aec0ad..db3759036d8 100644
--- a/src/test/run-make/crate-data-smoke/crate.rs
+++ b/src/test/run-make/crate-data-smoke/crate.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "foo#0.11-pre"];
+#![crate_id = "foo#0.11-pre"]
 
 // Querying about the crate metadata should *not* parse the entire crate, it
 // only needs the crate attributes (which are guaranteed to be at the top) be
diff --git a/src/test/run-make/crate-data-smoke/lib.rs b/src/test/run-make/crate-data-smoke/lib.rs
index 546d987b90c..b40e055b3cb 100644
--- a/src/test/run-make/crate-data-smoke/lib.rs
+++ b/src/test/run-make/crate-data-smoke/lib.rs
@@ -8,5 +8,5 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "mylib"];
-#[crate_type = "lib"];
+#![crate_id = "mylib"]
+#![crate_type = "lib"]
diff --git a/src/test/run-make/crate-data-smoke/rlib.rs b/src/test/run-make/crate-data-smoke/rlib.rs
index c94f7df4c92..94b8371e537 100644
--- a/src/test/run-make/crate-data-smoke/rlib.rs
+++ b/src/test/run-make/crate-data-smoke/rlib.rs
@@ -8,5 +8,5 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "mylib"];
-#[crate_type = "rlib"];
+#![crate_id = "mylib"]
+#![crate_type = "rlib"]
diff --git a/src/test/run-make/dep-info-custom/lib.rs b/src/test/run-make/dep-info-custom/lib.rs
index b8868771130..4255b1d934d 100644
--- a/src/test/run-make/dep-info-custom/lib.rs
+++ b/src/test/run-make/dep-info-custom/lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="foo#0.1"];
+#![crate_id="foo#0.1"]
 
 pub mod foo;
 pub mod bar;
diff --git a/src/test/run-make/dep-info/lib.rs b/src/test/run-make/dep-info/lib.rs
index b8868771130..4255b1d934d 100644
--- a/src/test/run-make/dep-info/lib.rs
+++ b/src/test/run-make/dep-info/lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="foo#0.1"];
+#![crate_id="foo#0.1"]
 
 pub mod foo;
 pub mod bar;
diff --git a/src/test/run-make/duplicate-output-flavors/foo.rs b/src/test/run-make/duplicate-output-flavors/foo.rs
index fbe967786e2..04d3ae67207 100644
--- a/src/test/run-make/duplicate-output-flavors/foo.rs
+++ b/src/test/run-make/duplicate-output-flavors/foo.rs
@@ -8,4 +8,4 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
diff --git a/src/test/run-make/dylib-chain/m1.rs b/src/test/run-make/dylib-chain/m1.rs
index dd7f5f14e40..5437c935c4e 100644
--- a/src/test/run-make/dylib-chain/m1.rs
+++ b/src/test/run-make/dylib-chain/m1.rs
@@ -8,5 +8,5 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 pub fn m1() {}
diff --git a/src/test/run-make/dylib-chain/m2.rs b/src/test/run-make/dylib-chain/m2.rs
index 9adeaa1a20a..b464f32eae2 100644
--- a/src/test/run-make/dylib-chain/m2.rs
+++ b/src/test/run-make/dylib-chain/m2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 extern crate m1;
 
 pub fn m2() { m1::m1() }
diff --git a/src/test/run-make/dylib-chain/m3.rs b/src/test/run-make/dylib-chain/m3.rs
index 0a284e52445..bf431cc827b 100644
--- a/src/test/run-make/dylib-chain/m3.rs
+++ b/src/test/run-make/dylib-chain/m3.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 extern crate m2;
 
 pub fn m3() { m2::m2() }
diff --git a/src/test/run-make/issue-12446/foo.rs b/src/test/run-make/issue-12446/foo.rs
index f16dd5e1d5c..11c61169de9 100644
--- a/src/test/run-make/issue-12446/foo.rs
+++ b/src/test/run-make/issue-12446/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 
 extern {
     fn some_c_symbol();
diff --git a/src/test/run-make/lto-smoke/lib.rs b/src/test/run-make/lto-smoke/lib.rs
index fbe967786e2..04d3ae67207 100644
--- a/src/test/run-make/lto-smoke/lib.rs
+++ b/src/test/run-make/lto-smoke/lib.rs
@@ -8,4 +8,4 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
diff --git a/src/test/run-make/mixing-deps/both.rs b/src/test/run-make/mixing-deps/both.rs
index 358b6512ae5..7696c27ad71 100644
--- a/src/test/run-make/mixing-deps/both.rs
+++ b/src/test/run-make/mixing-deps/both.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
-#[crate_type = "dylib"];
+#![crate_type = "rlib"]
+#![crate_type = "dylib"]
 
 pub static foo: int = 4;
diff --git a/src/test/run-make/mixing-deps/dylib.rs b/src/test/run-make/mixing-deps/dylib.rs
index ae5cce02245..cb74a5eb240 100644
--- a/src/test/run-make/mixing-deps/dylib.rs
+++ b/src/test/run-make/mixing-deps/dylib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 extern crate both;
 
 use std::cast;
diff --git a/src/test/run-make/mixing-libs/dylib.rs b/src/test/run-make/mixing-libs/dylib.rs
index 08a972ef8e6..1a5bd658cd9 100644
--- a/src/test/run-make/mixing-libs/dylib.rs
+++ b/src/test/run-make/mixing-libs/dylib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 extern crate rlib;
 
 pub fn dylib() { rlib::rlib() }
diff --git a/src/test/run-make/mixing-libs/rlib.rs b/src/test/run-make/mixing-libs/rlib.rs
index 8ed6dbd865b..ad0ea67b9ab 100644
--- a/src/test/run-make/mixing-libs/rlib.rs
+++ b/src/test/run-make/mixing-libs/rlib.rs
@@ -8,5 +8,5 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 pub fn rlib() {}
diff --git a/src/test/run-make/output-type-permutations/foo.rs b/src/test/run-make/output-type-permutations/foo.rs
index 5565ae3186c..020fbc3299b 100644
--- a/src/test/run-make/output-type-permutations/foo.rs
+++ b/src/test/run-make/output-type-permutations/foo.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "bar"];
+#![crate_id = "bar"]
 
 fn main() {}
diff --git a/src/test/run-make/rlib-chain/m1.rs b/src/test/run-make/rlib-chain/m1.rs
index ddf90e9157b..e3afa352938 100644
--- a/src/test/run-make/rlib-chain/m1.rs
+++ b/src/test/run-make/rlib-chain/m1.rs
@@ -8,5 +8,5 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 pub fn m1() {}
diff --git a/src/test/run-make/rlib-chain/m2.rs b/src/test/run-make/rlib-chain/m2.rs
index 40c1575d069..2b4c181134b 100644
--- a/src/test/run-make/rlib-chain/m2.rs
+++ b/src/test/run-make/rlib-chain/m2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 extern crate m1;
 
 pub fn m2() { m1::m1() }
diff --git a/src/test/run-make/rlib-chain/m3.rs b/src/test/run-make/rlib-chain/m3.rs
index 3d3be554757..6323a9e65aa 100644
--- a/src/test/run-make/rlib-chain/m3.rs
+++ b/src/test/run-make/rlib-chain/m3.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 extern crate m2;
 
 pub fn m3() { m2::m2() }
diff --git a/src/test/run-make/rustdoc-hidden-line/foo.rs b/src/test/run-make/rustdoc-hidden-line/foo.rs
index d9b7810cc86..8128ba05885 100644
--- a/src/test/run-make/rustdoc-hidden-line/foo.rs
+++ b/src/test/run-make/rustdoc-hidden-line/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="foo#0.1"];
+#![crate_id="foo#0.1"]
 
 /// The '# ' lines should be removed from the output, but the #[deriving] should be
 /// retained.
diff --git a/src/test/run-make/rustdoc-json/foo.rs b/src/test/run-make/rustdoc-json/foo.rs
index 818ec1e5eb7..dda66f051bc 100644
--- a/src/test/run-make/rustdoc-json/foo.rs
+++ b/src/test/run-make/rustdoc-json/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "foo#0.1"];
+#![crate_id = "foo#0.1"]
 
 //! Very docs
 
diff --git a/src/test/run-make/rustdoc-smoke/foo.rs b/src/test/run-make/rustdoc-smoke/foo.rs
index 818ec1e5eb7..dda66f051bc 100644
--- a/src/test/run-make/rustdoc-smoke/foo.rs
+++ b/src/test/run-make/rustdoc-smoke/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id = "foo#0.1"];
+#![crate_id = "foo#0.1"]
 
 //! Very docs
 
diff --git a/src/test/run-make/static-unwinding/lib.rs b/src/test/run-make/static-unwinding/lib.rs
index 9fe2f947c70..5e75e1cd1cb 100644
--- a/src/test/run-make/static-unwinding/lib.rs
+++ b/src/test/run-make/static-unwinding/lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "rlib"];
+#![crate_type = "rlib"]
 
 pub static mut statik: int = 0;
 
diff --git a/src/test/run-make/staticlib-blank-lib/foo.rs b/src/test/run-make/staticlib-blank-lib/foo.rs
index b3d9c006976..6010e60e95c 100644
--- a/src/test/run-make/staticlib-blank-lib/foo.rs
+++ b/src/test/run-make/staticlib-blank-lib/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "staticlib"];
+#![crate_type = "staticlib"]
 
 #[link(name = "foo", kind = "static")]
 extern {}
diff --git a/src/test/run-make/suspicious-library/foo.rs b/src/test/run-make/suspicious-library/foo.rs
index 890fd3a7dd6..2ec6e3834a1 100644
--- a/src/test/run-make/suspicious-library/foo.rs
+++ b/src/test/run-make/suspicious-library/foo.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 
 pub fn foo() {}
diff --git a/src/test/run-make/symlinked-libraries/foo.rs b/src/test/run-make/symlinked-libraries/foo.rs
index 9fbe36f0376..fdb29974cd8 100644
--- a/src/test/run-make/symlinked-libraries/foo.rs
+++ b/src/test/run-make/symlinked-libraries/foo.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_type = "dylib"];
+#![crate_type = "dylib"]
 
 pub fn bar() {}
diff --git a/src/test/run-make/unicode-input/span_length.rs b/src/test/run-make/unicode-input/span_length.rs
index faa22962290..3b53af830e6 100644
--- a/src/test/run-make/unicode-input/span_length.rs
+++ b/src/test/run-make/unicode-input/span_length.rs
@@ -46,7 +46,7 @@ fn main() {
 
         {
             let _ = write!(&mut File::create(&main_file).unwrap(),
-                           r"\#[feature(non_ascii_idents)]; fn main() \{ {} \}",
+                           r"\#![feature(non_ascii_idents)] fn main() \{ {} \}",
                            // random string of length n
                            range(0, n).map(|_| random_char()).collect::<~str>());
         }
diff --git a/src/test/run-pass-fulldeps/quote-tokens.rs b/src/test/run-pass-fulldeps/quote-tokens.rs
index 5180ac68482..4243fcb05d5 100644
--- a/src/test/run-pass-fulldeps/quote-tokens.rs
+++ b/src/test/run-pass-fulldeps/quote-tokens.rs
@@ -11,7 +11,7 @@
 // ignore-test
 
 #![feature(quote)]
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate syntax;
 
diff --git a/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs b/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs
index e2b3781fbf9..5025cc12b4a 100644
--- a/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs
+++ b/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs
@@ -10,7 +10,7 @@
 
 // ignore-android
 #![feature(quote)]
-#[deny(unused_variable)];
+#![deny(unused_variable)]
 
 extern crate syntax;
 
diff --git a/src/test/run-pass/arith-unsigned.rs b/src/test/run-pass/arith-unsigned.rs
index ae94ad379d0..43288d9044e 100644
--- a/src/test/run-pass/arith-unsigned.rs
+++ b/src/test/run-pass/arith-unsigned.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(type_limits)];
+#![allow(type_limits)]
 
 // Unsigned integer operations
 pub fn main() {
diff --git a/src/test/run-pass/auto-encode.rs b/src/test/run-pass/auto-encode.rs
index a51439dceb8..304325906d7 100644
--- a/src/test/run-pass/auto-encode.rs
+++ b/src/test/run-pass/auto-encode.rs
@@ -10,7 +10,7 @@
 
 // ignore-test FIXME(#5121)
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate time;
 extern crate serialize;
diff --git a/src/test/run-pass/auto-ref-slice-plus-ref.rs b/src/test/run-pass/auto-ref-slice-plus-ref.rs
index 86e1b18a574..039df373d7a 100644
--- a/src/test/run-pass/auto-ref-slice-plus-ref.rs
+++ b/src/test/run-pass/auto-ref-slice-plus-ref.rs
@@ -11,7 +11,7 @@
 // Testing that method lookup automatically both borrows vectors to slices
 // and also references them to create the &self pointer
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 trait MyIter {
     fn test_imm(&self);
diff --git a/src/test/run-pass/autoderef-method-priority.rs b/src/test/run-pass/autoderef-method-priority.rs
index fa124a70627..a9bfd78794d 100644
--- a/src/test/run-pass/autoderef-method-priority.rs
+++ b/src/test/run-pass/autoderef-method-priority.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 trait double {
     fn double(self) -> uint;
diff --git a/src/test/run-pass/autoref-intermediate-types-issue-3585.rs b/src/test/run-pass/autoref-intermediate-types-issue-3585.rs
index bad594bf4e4..e9c57c2d7b0 100644
--- a/src/test/run-pass/autoref-intermediate-types-issue-3585.rs
+++ b/src/test/run-pass/autoref-intermediate-types-issue-3585.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 trait Foo {
     fn foo(&self) -> ~str;
diff --git a/src/test/run-pass/borrowck-borrow-from-expr-block.rs b/src/test/run-pass/borrowck-borrow-from-expr-block.rs
index 4aedb4e96cf..66b9d0430a1 100644
--- a/src/test/run-pass/borrowck-borrow-from-expr-block.rs
+++ b/src/test/run-pass/borrowck-borrow-from-expr-block.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn borrow(x: &int, f: |x: &int|) {
     f(x)
diff --git a/src/test/run-pass/borrowck-macro-interaction-issue-6304.rs b/src/test/run-pass/borrowck-macro-interaction-issue-6304.rs
index 88e0d24ffe1..881a5b4d3f6 100644
--- a/src/test/run-pass/borrowck-macro-interaction-issue-6304.rs
+++ b/src/test/run-pass/borrowck-macro-interaction-issue-6304.rs
@@ -11,7 +11,7 @@
 // Check that we do not ICE when compiling this
 // macro, which reuses the expression `$id`
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 struct Foo {
   a: int
diff --git a/src/test/run-pass/borrowck-preserve-box-in-field.rs b/src/test/run-pass/borrowck-preserve-box-in-field.rs
index e9248864c02..f05b8c67d77 100644
--- a/src/test/run-pass/borrowck-preserve-box-in-field.rs
+++ b/src/test/run-pass/borrowck-preserve-box-in-field.rs
@@ -12,7 +12,7 @@
 
 // exec-env:RUST_POISON_ON_FREE=1
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn borrow(x: &int, f: |x: &int|) {
     let before = *x;
diff --git a/src/test/run-pass/borrowck-preserve-box-in-moved-value.rs b/src/test/run-pass/borrowck-preserve-box-in-moved-value.rs
index 0650b03b485..b9ccda05e4b 100644
--- a/src/test/run-pass/borrowck-preserve-box-in-moved-value.rs
+++ b/src/test/run-pass/borrowck-preserve-box-in-moved-value.rs
@@ -13,7 +13,7 @@
 // Test that we root `x` even though it is found in immutable memory,
 // because it is moved.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn free<T>(x: @T) {}
 
diff --git a/src/test/run-pass/borrowck-preserve-box-in-uniq.rs b/src/test/run-pass/borrowck-preserve-box-in-uniq.rs
index 6f6d8eba9c0..0896d4de625 100644
--- a/src/test/run-pass/borrowck-preserve-box-in-uniq.rs
+++ b/src/test/run-pass/borrowck-preserve-box-in-uniq.rs
@@ -12,7 +12,7 @@
 
 // exec-env:RUST_POISON_ON_FREE=1
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn borrow(x: &int, f: |x: &int|) {
     let before = *x;
diff --git a/src/test/run-pass/borrowck-preserve-box.rs b/src/test/run-pass/borrowck-preserve-box.rs
index cd2bfee700a..cfb9a4b91df 100644
--- a/src/test/run-pass/borrowck-preserve-box.rs
+++ b/src/test/run-pass/borrowck-preserve-box.rs
@@ -12,7 +12,7 @@
 
 // exec-env:RUST_POISON_ON_FREE=1
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn borrow(x: &int, f: |x: &int|) {
     let before = *x;
diff --git a/src/test/run-pass/borrowck-preserve-cond-box.rs b/src/test/run-pass/borrowck-preserve-cond-box.rs
index 7c8008b1b3f..52ea474dbf5 100644
--- a/src/test/run-pass/borrowck-preserve-cond-box.rs
+++ b/src/test/run-pass/borrowck-preserve-cond-box.rs
@@ -10,7 +10,7 @@
 
 // exec-env:RUST_POISON_ON_FREE=1
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn testfn(cond: bool) {
     let mut x = @3;
diff --git a/src/test/run-pass/borrowck-preserve-expl-deref.rs b/src/test/run-pass/borrowck-preserve-expl-deref.rs
index fda6bcc90c9..749c8063950 100644
--- a/src/test/run-pass/borrowck-preserve-expl-deref.rs
+++ b/src/test/run-pass/borrowck-preserve-expl-deref.rs
@@ -12,7 +12,7 @@
 
 // exec-env:RUST_POISON_ON_FREE=1
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn borrow(x: &int, f: |x: &int|) {
     let before = *x;
diff --git a/src/test/run-pass/borrowck-root-while-cond-2.rs b/src/test/run-pass/borrowck-root-while-cond-2.rs
index d4ff09c5df4..aa0ff316239 100644
--- a/src/test/run-pass/borrowck-root-while-cond-2.rs
+++ b/src/test/run-pass/borrowck-root-while-cond-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 struct F { f: @G }
diff --git a/src/test/run-pass/borrowck-root-while-cond.rs b/src/test/run-pass/borrowck-root-while-cond.rs
index 4bb9a89fcc1..b9961f44c73 100644
--- a/src/test/run-pass/borrowck-root-while-cond.rs
+++ b/src/test/run-pass/borrowck-root-while-cond.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 fn borrow<'r,T>(x: &'r T) -> &'r T {x}
diff --git a/src/test/run-pass/borrowck-univariant-enum.rs b/src/test/run-pass/borrowck-univariant-enum.rs
index 97d92f421c1..7704d7eb262 100644
--- a/src/test/run-pass/borrowck-univariant-enum.rs
+++ b/src/test/run-pass/borrowck-univariant-enum.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/borrowed-ptr-pattern-infallible.rs b/src/test/run-pass/borrowed-ptr-pattern-infallible.rs
index 07a13e5395f..b5600cd7db2 100644
--- a/src/test/run-pass/borrowed-ptr-pattern-infallible.rs
+++ b/src/test/run-pass/borrowed-ptr-pattern-infallible.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 pub fn main() {
     let (&x, &y) = (&3, &'a');
diff --git a/src/test/run-pass/box-in-tup.rs b/src/test/run-pass/box-in-tup.rs
index 94faa9390cd..2934e86b3f7 100644
--- a/src/test/run-pass/box-in-tup.rs
+++ b/src/test/run-pass/box-in-tup.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 pub fn main() {
     let i: (@int, int) = (@10, 10);
diff --git a/src/test/run-pass/box-inside-if.rs b/src/test/run-pass/box-inside-if.rs
index 1e003e1cb9e..85284be3899 100644
--- a/src/test/run-pass/box-inside-if.rs
+++ b/src/test/run-pass/box-inside-if.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn some_box(x: int) -> @int { return @x; }
 
diff --git a/src/test/run-pass/box-inside-if2.rs b/src/test/run-pass/box-inside-if2.rs
index 8f3f254dfe9..fc7e0d5e722 100644
--- a/src/test/run-pass/box-inside-if2.rs
+++ b/src/test/run-pass/box-inside-if2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn some_box(x: int) -> @int { return @x; }
 
diff --git a/src/test/run-pass/box-unbox.rs b/src/test/run-pass/box-unbox.rs
index 59050a64f68..c78ea59c10d 100644
--- a/src/test/run-pass/box-unbox.rs
+++ b/src/test/run-pass/box-unbox.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Box<T> {c: @T}
 
diff --git a/src/test/run-pass/box.rs b/src/test/run-pass/box.rs
index f3acc127246..5f9b5a4b814 100644
--- a/src/test/run-pass/box.rs
+++ b/src/test/run-pass/box.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 pub fn main() { let x: @int = @10; assert!((*x == 10)); }
diff --git a/src/test/run-pass/boxed-class-type-substitution.rs b/src/test/run-pass/boxed-class-type-substitution.rs
index beaa51671c1..88823ba1105 100644
--- a/src/test/run-pass/boxed-class-type-substitution.rs
+++ b/src/test/run-pass/boxed-class-type-substitution.rs
@@ -11,7 +11,7 @@
 // Regression test that rustc doesn't recurse infinitely substituting
 // the boxed type parameter
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Tree<T> {
     parent: Option<T>
diff --git a/src/test/run-pass/can-copy-pod.rs b/src/test/run-pass/can-copy-pod.rs
index 8375aafb5b7..099374b5937 100644
--- a/src/test/run-pass/can-copy-pod.rs
+++ b/src/test/run-pass/can-copy-pod.rs
@@ -13,7 +13,7 @@
 
 // Tests that type parameters with the `Copy` are implicitly copyable.
 
-#[allow(dead_code)];
+#![allow(dead_code)]
 
 fn can_copy_copy<T:Copy>(v: T) {
     let _a = v;
diff --git a/src/test/run-pass/cci_borrow.rs b/src/test/run-pass/cci_borrow.rs
index bfc08502625..081a756af69 100644
--- a/src/test/run-pass/cci_borrow.rs
+++ b/src/test/run-pass/cci_borrow.rs
@@ -10,7 +10,7 @@
 
 // aux-build:cci_borrow_lib.rs
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate cci_borrow_lib;
 use cci_borrow_lib::foo;
diff --git a/src/test/run-pass/cci_nested_exe.rs b/src/test/run-pass/cci_nested_exe.rs
index 27ef4a19a53..5400053406c 100644
--- a/src/test/run-pass/cci_nested_exe.rs
+++ b/src/test/run-pass/cci_nested_exe.rs
@@ -10,7 +10,7 @@
 
 // aux-build:cci_nested_lib.rs
 
-#[feature(globs, managed_boxes)];
+#![feature(globs, managed_boxes)]
 
 extern crate cci_nested_lib;
 use cci_nested_lib::*;
diff --git a/src/test/run-pass/cfg-macros-foo.rs b/src/test/run-pass/cfg-macros-foo.rs
index 9eb44d510a9..ec9ef381501 100644
--- a/src/test/run-pass/cfg-macros-foo.rs
+++ b/src/test/run-pass/cfg-macros-foo.rs
@@ -13,7 +13,7 @@
 // check that cfg correctly chooses between the macro impls (see also
 // cfg-macros-notfoo.rs)
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 #[cfg(foo)]
 #[macro_escape]
diff --git a/src/test/run-pass/cfg-macros-notfoo.rs b/src/test/run-pass/cfg-macros-notfoo.rs
index 3084e087bd2..fb44176ec22 100644
--- a/src/test/run-pass/cfg-macros-notfoo.rs
+++ b/src/test/run-pass/cfg-macros-notfoo.rs
@@ -13,7 +13,7 @@
 // check that cfg correctly chooses between the macro impls (see also
 // cfg-macros-foo.rs)
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 #[cfg(foo)]
 #[macro_escape]
diff --git a/src/test/run-pass/class-cast-to-trait-multiple-types.rs b/src/test/run-pass/class-cast-to-trait-multiple-types.rs
index cdf235b113e..679d50e8a6e 100644
--- a/src/test/run-pass/class-cast-to-trait-multiple-types.rs
+++ b/src/test/run-pass/class-cast-to-trait-multiple-types.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 trait noisy {
   fn speak(&mut self) -> int;
diff --git a/src/test/run-pass/class-cast-to-trait.rs b/src/test/run-pass/class-cast-to-trait.rs
index 6750e43525f..276d02f48b4 100644
--- a/src/test/run-pass/class-cast-to-trait.rs
+++ b/src/test/run-pass/class-cast-to-trait.rs
@@ -10,7 +10,7 @@
 
 // ignore-freebsd FIXME fails on BSD
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 trait noisy {
   fn speak(&mut self);
diff --git a/src/test/run-pass/classes-self-referential.rs b/src/test/run-pass/classes-self-referential.rs
index 767581496c3..ca87d7b311a 100644
--- a/src/test/run-pass/classes-self-referential.rs
+++ b/src/test/run-pass/classes-self-referential.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct kitten {
     cat: Option<cat>,
diff --git a/src/test/run-pass/cleanup-copy-mode.rs b/src/test/run-pass/cleanup-copy-mode.rs
index 738878527bf..007349c6ec1 100644
--- a/src/test/run-pass/cleanup-copy-mode.rs
+++ b/src/test/run-pass/cleanup-copy-mode.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::task;
 
diff --git a/src/test/run-pass/cleanup-rvalue-for-scope.rs b/src/test/run-pass/cleanup-rvalue-for-scope.rs
index 68441a2d894..e352fc0be98 100644
--- a/src/test/run-pass/cleanup-rvalue-for-scope.rs
+++ b/src/test/run-pass/cleanup-rvalue-for-scope.rs
@@ -11,7 +11,7 @@
 // Test that the lifetime of rvalues in for loops is extended
 // to the for loop itself.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 use std::ops::Drop;
 
diff --git a/src/test/run-pass/cleanup-rvalue-scopes.rs b/src/test/run-pass/cleanup-rvalue-scopes.rs
index 3da8c041e27..f6f0da745ab 100644
--- a/src/test/run-pass/cleanup-rvalue-scopes.rs
+++ b/src/test/run-pass/cleanup-rvalue-scopes.rs
@@ -12,7 +12,7 @@
 // statement or end of block, as appropriate given the temporary
 // lifetime rules.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 use std::ops::Drop;
 
diff --git a/src/test/run-pass/colorful-write-macros.rs b/src/test/run-pass/colorful-write-macros.rs
index 55bac0a0e07..802417da2c2 100644
--- a/src/test/run-pass/colorful-write-macros.rs
+++ b/src/test/run-pass/colorful-write-macros.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_must_use, dead_code)];
+#![allow(unused_must_use, dead_code)]
 
 use std::io::MemWriter;
 
diff --git a/src/test/run-pass/const-binops.rs b/src/test/run-pass/const-binops.rs
index d89b81370f7..be186a95a77 100644
--- a/src/test/run-pass/const-binops.rs
+++ b/src/test/run-pass/const-binops.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! assert_approx_eq(
     ($a:expr, $b:expr) => ({
diff --git a/src/test/run-pass/const-enum-structlike.rs b/src/test/run-pass/const-enum-structlike.rs
index 8b5e98f6eba..56cfcfae7a6 100644
--- a/src/test/run-pass/const-enum-structlike.rs
+++ b/src/test/run-pass/const-enum-structlike.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum E {
     S0 { s: ~str },
diff --git a/src/test/run-pass/core-run-destroy.rs b/src/test/run-pass/core-run-destroy.rs
index c808534257a..c985eb6337e 100644
--- a/src/test/run-pass/core-run-destroy.rs
+++ b/src/test/run-pass/core-run-destroy.rs
@@ -15,7 +15,7 @@
 // memory, which makes for some *confusing* logs. That's why these are here
 // instead of in std.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 extern crate libc;
 
 extern crate native;
@@ -31,7 +31,7 @@ macro_rules! succeed( ($e:expr) => (
 macro_rules! iotest (
     { fn $name:ident() $b:block $($a:attr)* } => (
         mod $name {
-            #[allow(unused_imports)];
+            #![allow(unused_imports)]
 
             use std::io::timer;
             use libc;
diff --git a/src/test/run-pass/crate-method-reexport-grrrrrrr.rs b/src/test/run-pass/crate-method-reexport-grrrrrrr.rs
index e55508b4c15..9ccf3d2d6c3 100644
--- a/src/test/run-pass/crate-method-reexport-grrrrrrr.rs
+++ b/src/test/run-pass/crate-method-reexport-grrrrrrr.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // This is a regression test that the metadata for the
 // name_pool::methods impl in the other crate is reachable from this
diff --git a/src/test/run-pass/crateresolve8.rs b/src/test/run-pass/crateresolve8.rs
index 1ce8a8a7350..f04e383cb3d 100644
--- a/src/test/run-pass/crateresolve8.rs
+++ b/src/test/run-pass/crateresolve8.rs
@@ -10,7 +10,7 @@
 
 // aux-build:crateresolve8-1.rs
 
-#[crate_id="crateresolve8#0.1"];
+#![crate_id="crateresolve8#0.1"]
 
 extern crate crateresolve8 = "crateresolve8#0.1";
 //extern crate crateresolve8(vers = "0.1");
diff --git a/src/test/run-pass/cycle-collection.rs b/src/test/run-pass/cycle-collection.rs
index c6f353136ba..3737aa7cc86 100644
--- a/src/test/run-pass/cycle-collection.rs
+++ b/src/test/run-pass/cycle-collection.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::RefCell;
 
diff --git a/src/test/run-pass/deref-lval.rs b/src/test/run-pass/deref-lval.rs
index 6bac1511d55..15a8a2e9eac 100644
--- a/src/test/run-pass/deref-lval.rs
+++ b/src/test/run-pass/deref-lval.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/deref.rs b/src/test/run-pass/deref.rs
index 104d3302b83..fdc3a106e02 100644
--- a/src/test/run-pass/deref.rs
+++ b/src/test/run-pass/deref.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 pub fn main() {
     let x: @int = @10;
diff --git a/src/test/run-pass/deriving-cmp-generic-struct-enum.rs b/src/test/run-pass/deriving-cmp-generic-struct-enum.rs
index c2f0c269d62..9dc5bcc0f02 100644
--- a/src/test/run-pass/deriving-cmp-generic-struct-enum.rs
+++ b/src/test/run-pass/deriving-cmp-generic-struct-enum.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 #[deriving(Eq, TotalEq, Ord, TotalOrd)]
 enum ES<T> {
diff --git a/src/test/run-pass/deriving-encodable-decodable.rs b/src/test/run-pass/deriving-encodable-decodable.rs
index 2742696a74d..2e47940a26c 100644
--- a/src/test/run-pass/deriving-encodable-decodable.rs
+++ b/src/test/run-pass/deriving-encodable-decodable.rs
@@ -13,7 +13,7 @@
 
 // ignore-test FIXME(#5121)
 
-#[feature(struct_variant, managed_boxes)];
+#![feature(struct_variant, managed_boxes)]
 
 extern crate rand;
 extern crate serialize;
diff --git a/src/test/run-pass/deriving-in-macro.rs b/src/test/run-pass/deriving-in-macro.rs
index 71b5f269e34..b4ff97912a1 100644
--- a/src/test/run-pass/deriving-in-macro.rs
+++ b/src/test/run-pass/deriving-in-macro.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! define_vec (
     () => (
diff --git a/src/test/run-pass/deriving-rand.rs b/src/test/run-pass/deriving-rand.rs
index 9b295a57915..c455aebbe46 100644
--- a/src/test/run-pass/deriving-rand.rs
+++ b/src/test/run-pass/deriving-rand.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 extern crate rand;
 
diff --git a/src/test/run-pass/deriving-show-2.rs b/src/test/run-pass/deriving-show-2.rs
index a2451c39400..ed38cf5411e 100644
--- a/src/test/run-pass/deriving-show-2.rs
+++ b/src/test/run-pass/deriving-show-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 use std::fmt;
 
diff --git a/src/test/run-pass/deriving-show.rs b/src/test/run-pass/deriving-show.rs
index 40965615506..18800ac0438 100644
--- a/src/test/run-pass/deriving-show.rs
+++ b/src/test/run-pass/deriving-show.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant, macro_rules)];
+#![feature(struct_variant, macro_rules)]
 
 #[deriving(Show)]
 struct Unit;
diff --git a/src/test/run-pass/deriving-via-extension-struct-like-enum-variant.rs b/src/test/run-pass/deriving-via-extension-struct-like-enum-variant.rs
index 78768ca52b9..3e22db301d3 100644
--- a/src/test/run-pass/deriving-via-extension-struct-like-enum-variant.rs
+++ b/src/test/run-pass/deriving-via-extension-struct-like-enum-variant.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 #[deriving(Eq, Show)]
 enum S {
diff --git a/src/test/run-pass/deriving-zero.rs b/src/test/run-pass/deriving-zero.rs
index 9ae72038aa9..f782a9bb177 100644
--- a/src/test/run-pass/deriving-zero.rs
+++ b/src/test/run-pass/deriving-zero.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::num::Zero;
 
diff --git a/src/test/run-pass/die-macro.rs b/src/test/run-pass/die-macro.rs
index 0d58cae7036..df1e4132cb7 100644
--- a/src/test/run-pass/die-macro.rs
+++ b/src/test/run-pass/die-macro.rs
@@ -10,7 +10,7 @@
 
 // Just testing that fail!() type checks in statement or expr
 
-#[allow(unreachable_code)];
+#![allow(unreachable_code)]
 
 fn f() {
     fail!();
diff --git a/src/test/run-pass/double-unbox.rs b/src/test/run-pass/double-unbox.rs
index 2f2cd5c1863..9a3c38d45b4 100644
--- a/src/test/run-pass/double-unbox.rs
+++ b/src/test/run-pass/double-unbox.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Quux {
     bar: int
diff --git a/src/test/run-pass/drop-on-empty-block-exit.rs b/src/test/run-pass/drop-on-empty-block-exit.rs
index 1f13906110f..da23a1ebd07 100644
--- a/src/test/run-pass/drop-on-empty-block-exit.rs
+++ b/src/test/run-pass/drop-on-empty-block-exit.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum t { foo(@int), }
 
diff --git a/src/test/run-pass/empty-mutable-vec.rs b/src/test/run-pass/empty-mutable-vec.rs
index 84d3dd97e84..42a1e563285 100644
--- a/src/test/run-pass/empty-mutable-vec.rs
+++ b/src/test/run-pass/empty-mutable-vec.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_mut)];
+#![allow(unused_mut)]
 
 
 pub fn main() { let mut _v: Vec<int> = Vec::new(); }
diff --git a/src/test/run-pass/enum-discrim-width-stuff.rs b/src/test/run-pass/enum-discrim-width-stuff.rs
index 6a0110436b3..35d58cefe0d 100644
--- a/src/test/run-pass/enum-discrim-width-stuff.rs
+++ b/src/test/run-pass/enum-discrim-width-stuff.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! check {
     ($m:ident, $t:ty, $v:expr) => {{
diff --git a/src/test/run-pass/enum-nullable-simplifycfg-misopt.rs b/src/test/run-pass/enum-nullable-simplifycfg-misopt.rs
index 6a6f2ba0d53..acd1846407e 100644
--- a/src/test/run-pass/enum-nullable-simplifycfg-misopt.rs
+++ b/src/test/run-pass/enum-nullable-simplifycfg-misopt.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 /*!
  * This is a regression test for a bug in LLVM, fixed in upstream r179587,
diff --git a/src/test/run-pass/enum-variants.rs b/src/test/run-pass/enum-variants.rs
index 43bcd284dc2..df9f6b6a8a7 100644
--- a/src/test/run-pass/enum-variants.rs
+++ b/src/test/run-pass/enum-variants.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
-#[feature(struct_variant)];
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
+#![feature(struct_variant)]
 
 enum Animal {
     Dog (~str, f64),
diff --git a/src/test/run-pass/estr-uniq.rs b/src/test/run-pass/estr-uniq.rs
index 7935886d39b..80011daf560 100644
--- a/src/test/run-pass/estr-uniq.rs
+++ b/src/test/run-pass/estr-uniq.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 pub fn main() {
     let x : ~str = ~"hello";
diff --git a/src/test/run-pass/evec-internal-boxes.rs b/src/test/run-pass/evec-internal-boxes.rs
index 7ba8a3de244..5bf89ce7de2 100644
--- a/src/test/run-pass/evec-internal-boxes.rs
+++ b/src/test/run-pass/evec-internal-boxes.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[allow(dead_assignment)];
+#![feature(managed_boxes)]
+#![allow(dead_assignment)]
 
 pub fn main() {
     let x : [@int, ..5] = [@1,@2,@3,@4,@5];
diff --git a/src/test/run-pass/evec-slice.rs b/src/test/run-pass/evec-slice.rs
index aaa3e3529d4..f8e1dc27e32 100644
--- a/src/test/run-pass/evec-slice.rs
+++ b/src/test/run-pass/evec-slice.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 pub fn main() {
     let x : &[int] = &[1,2,3,4,5];
diff --git a/src/test/run-pass/exponential-notation.rs b/src/test/run-pass/exponential-notation.rs
index 254c093e703..f97afa2f3e0 100644
--- a/src/test/run-pass/exponential-notation.rs
+++ b/src/test/run-pass/exponential-notation.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 use s = std::num::strconv;
 use to_str = std::num::strconv::float_to_str_common;
diff --git a/src/test/run-pass/export-non-interference.rs b/src/test/run-pass/export-non-interference.rs
index 66c51910ed0..3e079af56eb 100644
--- a/src/test/run-pass/export-non-interference.rs
+++ b/src/test/run-pass/export-non-interference.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum list_cell<T> { cons(@list_cell<T>), nil }
 
diff --git a/src/test/run-pass/expr-block-box.rs b/src/test/run-pass/expr-block-box.rs
index 6d6a2a60af0..c9554246eba 100644
--- a/src/test/run-pass/expr-block-box.rs
+++ b/src/test/run-pass/expr-block-box.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 pub fn main() { let x = { @100 }; assert!((*x == 100)); }
diff --git a/src/test/run-pass/expr-block-generic-box1.rs b/src/test/run-pass/expr-block-generic-box1.rs
index 513dbf2eba8..623a93292c6 100644
--- a/src/test/run-pass/expr-block-generic-box1.rs
+++ b/src/test/run-pass/expr-block-generic-box1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 type compare<T> = |@T, @T|: 'static -> bool;
 
diff --git a/src/test/run-pass/expr-block-generic-box2.rs b/src/test/run-pass/expr-block-generic-box2.rs
index 7a5df556400..cb690a86f81 100644
--- a/src/test/run-pass/expr-block-generic-box2.rs
+++ b/src/test/run-pass/expr-block-generic-box2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 type compare<'a, T> = |T, T|: 'a -> bool;
diff --git a/src/test/run-pass/expr-block-ref.rs b/src/test/run-pass/expr-block-ref.rs
index 8ed2a9a6b3f..400c9f8023a 100644
--- a/src/test/run-pass/expr-block-ref.rs
+++ b/src/test/run-pass/expr-block-ref.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Regression test for issue #388
 pub fn main() { let _x = { { @10 } }; }
diff --git a/src/test/run-pass/expr-elseif-ref.rs b/src/test/run-pass/expr-elseif-ref.rs
index 105c2cc0805..f8ae245ee29 100644
--- a/src/test/run-pass/expr-elseif-ref.rs
+++ b/src/test/run-pass/expr-elseif-ref.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Make sure we drop the refs of the temporaries needed to return the
 // values from the else if branch
diff --git a/src/test/run-pass/expr-elseif-ref2.rs b/src/test/run-pass/expr-elseif-ref2.rs
index 3149ed49f7e..1b52235ef87 100644
--- a/src/test/run-pass/expr-elseif-ref2.rs
+++ b/src/test/run-pass/expr-elseif-ref2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Regression test for issue #388
 pub fn main() {
diff --git a/src/test/run-pass/expr-if-box.rs b/src/test/run-pass/expr-if-box.rs
index b83c7b8852c..5bef5d24bcb 100644
--- a/src/test/run-pass/expr-if-box.rs
+++ b/src/test/run-pass/expr-if-box.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Tests for if as expressions returning boxed types
 fn test_box() {
diff --git a/src/test/run-pass/expr-if-generic-box1.rs b/src/test/run-pass/expr-if-generic-box1.rs
index 78f42120ab7..fdb39b227e0 100644
--- a/src/test/run-pass/expr-if-generic-box1.rs
+++ b/src/test/run-pass/expr-if-generic-box1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 type compare<T> = |@T, @T|: 'static -> bool;
 
diff --git a/src/test/run-pass/expr-if-generic-box2.rs b/src/test/run-pass/expr-if-generic-box2.rs
index ffbb4764464..47c46442f0b 100644
--- a/src/test/run-pass/expr-if-generic-box2.rs
+++ b/src/test/run-pass/expr-if-generic-box2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 type compare<T> = |T, T|: 'static -> bool;
diff --git a/src/test/run-pass/expr-match-box.rs b/src/test/run-pass/expr-match-box.rs
index 8557f409b75..efb1b181930 100644
--- a/src/test/run-pass/expr-match-box.rs
+++ b/src/test/run-pass/expr-match-box.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Tests for match as expressions resulting in boxed types
 fn test_box() {
diff --git a/src/test/run-pass/expr-match-generic-box1.rs b/src/test/run-pass/expr-match-generic-box1.rs
index 287e0ea349d..3f107a0eb2f 100644
--- a/src/test/run-pass/expr-match-generic-box1.rs
+++ b/src/test/run-pass/expr-match-generic-box1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 type compare<T> = |@T, @T|: 'static -> bool;
 
diff --git a/src/test/run-pass/expr-match-generic-box2.rs b/src/test/run-pass/expr-match-generic-box2.rs
index f342c141541..802e96e840c 100644
--- a/src/test/run-pass/expr-match-generic-box2.rs
+++ b/src/test/run-pass/expr-match-generic-box2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 type compare<T> = |T, T|: 'static -> bool;
diff --git a/src/test/run-pass/exterior.rs b/src/test/run-pass/exterior.rs
index d9505e01de9..08bdeab4e2d 100644
--- a/src/test/run-pass/exterior.rs
+++ b/src/test/run-pass/exterior.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/extern-mod-syntax.rs b/src/test/run-pass/extern-mod-syntax.rs
index f6136b153a1..3e430b6e728 100644
--- a/src/test/run-pass/extern-mod-syntax.rs
+++ b/src/test/run-pass/extern-mod-syntax.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 
 extern crate serialize;
 use serialize::json::Object;
diff --git a/src/test/run-pass/fn-type-infer.rs b/src/test/run-pass/fn-type-infer.rs
index cf783ca141c..34417891197 100644
--- a/src/test/run-pass/fn-type-infer.rs
+++ b/src/test/run-pass/fn-type-infer.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 pub fn main() {
     // We should be able to type infer inside of ||s.
diff --git a/src/test/run-pass/format-no-uppercase-statics.rs b/src/test/run-pass/format-no-uppercase-statics.rs
index 585a61544ca..484b93ba098 100644
--- a/src/test/run-pass/format-no-uppercase-statics.rs
+++ b/src/test/run-pass/format-no-uppercase-statics.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deny(non_uppercase_statics)];
+#![deny(non_uppercase_statics)]
 
 pub fn main() {
     println!("I generate statics with {0, select, other{#}}", "weird names");
diff --git a/src/test/run-pass/generic-alias-box.rs b/src/test/run-pass/generic-alias-box.rs
index 9e7344a8dfc..1de3fcd202b 100644
--- a/src/test/run-pass/generic-alias-box.rs
+++ b/src/test/run-pass/generic-alias-box.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn id<T>(t: T) -> T { return t; }
 
diff --git a/src/test/run-pass/generic-box.rs b/src/test/run-pass/generic-box.rs
index a5f5d56fe06..bb2100a9c98 100644
--- a/src/test/run-pass/generic-box.rs
+++ b/src/test/run-pass/generic-box.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn box_it<T:'static>(x: Box<T>) -> @Box<T> { return @x; }
 
diff --git a/src/test/run-pass/generic-default-type-params-cross-crate.rs b/src/test/run-pass/generic-default-type-params-cross-crate.rs
index ae168cb17c6..bb956b9ed89 100644
--- a/src/test/run-pass/generic-default-type-params-cross-crate.rs
+++ b/src/test/run-pass/generic-default-type-params-cross-crate.rs
@@ -10,7 +10,7 @@
 
 // aux-build:default_type_params_xc.rs
 
-#[feature(default_type_params)];
+#![feature(default_type_params)]
 
 extern crate default_type_params_xc;
 
diff --git a/src/test/run-pass/generic-default-type-params.rs b/src/test/run-pass/generic-default-type-params.rs
index 360f0884575..4cf9ea3ee5a 100644
--- a/src/test/run-pass/generic-default-type-params.rs
+++ b/src/test/run-pass/generic-default-type-params.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(default_type_params)];
+#![feature(default_type_params)]
 
 struct Foo<A = (int, char)> {
     a: A
diff --git a/src/test/run-pass/generic-drop-glue.rs b/src/test/run-pass/generic-drop-glue.rs
index 6e097666bd5..0d05e620c6c 100644
--- a/src/test/run-pass/generic-drop-glue.rs
+++ b/src/test/run-pass/generic-drop-glue.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Pair { x: @int, y: @int }
 
diff --git a/src/test/run-pass/generic-exterior-box.rs b/src/test/run-pass/generic-exterior-box.rs
index 1382c019189..d7e5aa9b9f0 100644
--- a/src/test/run-pass/generic-exterior-box.rs
+++ b/src/test/run-pass/generic-exterior-box.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Recbox<T> {x: @T}
 
diff --git a/src/test/run-pass/generic-fn-box.rs b/src/test/run-pass/generic-fn-box.rs
index 9ee237e97f0..8314208ca24 100644
--- a/src/test/run-pass/generic-fn-box.rs
+++ b/src/test/run-pass/generic-fn-box.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn f<T>(x: @T) -> @T { return x; }
 
diff --git a/src/test/run-pass/generic-fn.rs b/src/test/run-pass/generic-fn.rs
index 13a9d57e578..89f342b4ee5 100644
--- a/src/test/run-pass/generic-fn.rs
+++ b/src/test/run-pass/generic-fn.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 fn id<T>(x: T) -> T { return x; }
 
diff --git a/src/test/run-pass/generic-ivec.rs b/src/test/run-pass/generic-ivec.rs
index c2eae064019..61279df68aa 100644
--- a/src/test/run-pass/generic-ivec.rs
+++ b/src/test/run-pass/generic-ivec.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn f<T>(_v: @T) { }
 pub fn main() { f(@vec!(1, 2, 3, 4, 5)); }
diff --git a/src/test/run-pass/generic-recursive-tag.rs b/src/test/run-pass/generic-recursive-tag.rs
index 84d15799fa5..f334159732d 100644
--- a/src/test/run-pass/generic-recursive-tag.rs
+++ b/src/test/run-pass/generic-recursive-tag.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum list<T> { cons(@T, @list<T>), nil, }
 
diff --git a/src/test/run-pass/generic-tag-match.rs b/src/test/run-pass/generic-tag-match.rs
index c20de257315..4975979d3e8 100644
--- a/src/test/run-pass/generic-tag-match.rs
+++ b/src/test/run-pass/generic-tag-match.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 enum foo<T> { arm(T), }
 
diff --git a/src/test/run-pass/generic-tag.rs b/src/test/run-pass/generic-tag.rs
index a0ba2a56d78..d765354aa59 100644
--- a/src/test/run-pass/generic-tag.rs
+++ b/src/test/run-pass/generic-tag.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 enum option<T> { some(@T), none, }
 
diff --git a/src/test/run-pass/hashmap-memory.rs b/src/test/run-pass/hashmap-memory.rs
index 94035ddc7bb..d0493d274cf 100644
--- a/src/test/run-pass/hashmap-memory.rs
+++ b/src/test/run-pass/hashmap-memory.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate collections;
 
diff --git a/src/test/run-pass/html-literals.rs b/src/test/run-pass/html-literals.rs
index 8e7a1347fd3..3f4eca6dd11 100644
--- a/src/test/run-pass/html-literals.rs
+++ b/src/test/run-pass/html-literals.rs
@@ -10,7 +10,7 @@
 
 // A test of the macro system. Can we do HTML literals?
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 
 /*
diff --git a/src/test/run-pass/hygienic-labels-in-let.rs b/src/test/run-pass/hygienic-labels-in-let.rs
index 125160c3685..22523f5e6cc 100644
--- a/src/test/run-pass/hygienic-labels-in-let.rs
+++ b/src/test/run-pass/hygienic-labels-in-let.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! loop_x {
     ($e: expr) => {
diff --git a/src/test/run-pass/hygienic-labels.rs b/src/test/run-pass/hygienic-labels.rs
index 7d341a67623..35799a4b1a8 100644
--- a/src/test/run-pass/hygienic-labels.rs
+++ b/src/test/run-pass/hygienic-labels.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! loop_x {
     ($e: expr) => {
diff --git a/src/test/run-pass/ifmt.rs b/src/test/run-pass/ifmt.rs
index 17c54780fa2..ba0d5c3ea44 100644
--- a/src/test/run-pass/ifmt.rs
+++ b/src/test/run-pass/ifmt.rs
@@ -9,10 +9,10 @@
 // except according to those terms.
 
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 #![deny(warnings)]
-#[allow(unused_must_use)];
-#[allow(deprecated_owned_vector)];
+#![allow(unused_must_use)]
+#![allow(deprecated_owned_vector)]
 
 use std::fmt;
 use std::io::MemWriter;
diff --git a/src/test/run-pass/import-glob-crate.rs b/src/test/run-pass/import-glob-crate.rs
index a154388b2c5..d8840041f29 100644
--- a/src/test/run-pass/import-glob-crate.rs
+++ b/src/test/run-pass/import-glob-crate.rs
@@ -10,7 +10,7 @@
 // except according to those terms.
 
 #![feature(globs)]
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 use std::mem::*;
 
diff --git a/src/test/run-pass/import3.rs b/src/test/run-pass/import3.rs
index 1bbe141eaff..4a3358488d8 100644
--- a/src/test/run-pass/import3.rs
+++ b/src/test/run-pass/import3.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 
 use baz::zed;
 use baz::zed::bar;
diff --git a/src/test/run-pass/import6.rs b/src/test/run-pass/import6.rs
index a6b3d90a4ee..802dfc1f2ed 100644
--- a/src/test/run-pass/import6.rs
+++ b/src/test/run-pass/import6.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 
 use foo::zed;
 use bar::baz;
diff --git a/src/test/run-pass/import7.rs b/src/test/run-pass/import7.rs
index d5c9bc23e2a..15e935c8f4f 100644
--- a/src/test/run-pass/import7.rs
+++ b/src/test/run-pass/import7.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 
 use foo::zed;
 use bar::baz;
diff --git a/src/test/run-pass/init-res-into-things.rs b/src/test/run-pass/init-res-into-things.rs
index ede67275ba9..4c1455e25cb 100644
--- a/src/test/run-pass/init-res-into-things.rs
+++ b/src/test/run-pass/init-res-into-things.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/inner-attrs-on-impl.rs b/src/test/run-pass/inner-attrs-on-impl.rs
index 69ae9d34385..afb2b21b04f 100644
--- a/src/test/run-pass/inner-attrs-on-impl.rs
+++ b/src/test/run-pass/inner-attrs-on-impl.rs
@@ -12,13 +12,13 @@
 struct Foo;
 
 impl Foo {
-    #[cfg(cfg_that_surely_doesnt_exist)];
+    #![cfg(cfg_that_surely_doesnt_exist)]
 
     fn method(&self) -> bool { false }
 }
 
 impl Foo {
-    #[cfg(not(cfg_that_surely_doesnt_exist))];
+    #![cfg(not(cfg_that_surely_doesnt_exist))]
 
     // check that we don't eat attributes too eagerly.
     #[cfg(cfg_that_surely_doesnt_exist)]
diff --git a/src/test/run-pass/intrinsics-math.rs b/src/test/run-pass/intrinsics-math.rs
index 5e1981fbcbc..94d53f139cf 100644
--- a/src/test/run-pass/intrinsics-math.rs
+++ b/src/test/run-pass/intrinsics-math.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(globs, macro_rules)];
+#![feature(globs, macro_rules)]
 
 macro_rules! assert_approx_eq(
     ($a:expr, $b:expr) => ({
diff --git a/src/test/run-pass/issue-10853.rs b/src/test/run-pass/issue-10853.rs
index d56396e11b4..a696e0dbbe2 100644
--- a/src/test/run-pass/issue-10853.rs
+++ b/src/test/run-pass/issue-10853.rs
@@ -8,14 +8,14 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deny(missing_doc)];
-#[doc="module"];
+#![deny(missing_doc)]
+#![doc="module"]
 
 #[doc="struct"]
 pub struct Foo;
 
 pub fn foo() {
-    #[doc="fn"];
+    #![doc="fn"]
 }
 
 #[doc="main"]
diff --git a/src/test/run-pass/issue-11085.rs b/src/test/run-pass/issue-11085.rs
index 3483bdd53b5..bdd6eece8a8 100644
--- a/src/test/run-pass/issue-11085.rs
+++ b/src/test/run-pass/issue-11085.rs
@@ -10,7 +10,7 @@
 
 // compile-flags: --cfg foo
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 struct Foo {
     #[cfg(fail)]
diff --git a/src/test/run-pass/issue-11577.rs b/src/test/run-pass/issue-11577.rs
index ca8fbe05edd..3d80180558c 100644
--- a/src/test/run-pass/issue-11577.rs
+++ b/src/test/run-pass/issue-11577.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 // Destructuring struct variants would ICE where regular structs wouldn't
 
diff --git a/src/test/run-pass/issue-1251.rs b/src/test/run-pass/issue-1251.rs
index 3befa4e7fb4..debb7df1125 100644
--- a/src/test/run-pass/issue-1251.rs
+++ b/src/test/run-pass/issue-1251.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[crate_id="rust_get_test_int"];
+#![crate_id="rust_get_test_int"]
 
 mod rustrt {
     extern crate libc;
diff --git a/src/test/run-pass/issue-1451.rs b/src/test/run-pass/issue-1451.rs
index a0c0275c193..027826e99cb 100644
--- a/src/test/run-pass/issue-1451.rs
+++ b/src/test/run-pass/issue-1451.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 struct T { f: extern "Rust" fn() }
 struct S { f: extern "Rust" fn() }
diff --git a/src/test/run-pass/issue-2074.rs b/src/test/run-pass/issue-2074.rs
index a8e3584364d..dd2734d296f 100644
--- a/src/test/run-pass/issue-2074.rs
+++ b/src/test/run-pass/issue-2074.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(non_camel_case_types)];
+#![allow(non_camel_case_types)]
 
 pub fn main() {
     let one: || -> uint = || {
diff --git a/src/test/run-pass/issue-2526-a.rs b/src/test/run-pass/issue-2526-a.rs
index 53c7f60ebb7..a8cbb0911b8 100644
--- a/src/test/run-pass/issue-2526-a.rs
+++ b/src/test/run-pass/issue-2526-a.rs
@@ -11,7 +11,7 @@
 // aux-build:issue-2526.rs
 
 #![feature(globs)]
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 
 extern crate issue_2526;
 use issue_2526::*;
diff --git a/src/test/run-pass/issue-2631-b.rs b/src/test/run-pass/issue-2631-b.rs
index 38923446598..fe6d3cee193 100644
--- a/src/test/run-pass/issue-2631-b.rs
+++ b/src/test/run-pass/issue-2631-b.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // aux-build:issue-2631-a.rs
 
diff --git a/src/test/run-pass/issue-2708.rs b/src/test/run-pass/issue-2708.rs
index e4d7483c5cf..ef0b5583b6b 100644
--- a/src/test/run-pass/issue-2708.rs
+++ b/src/test/run-pass/issue-2708.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Font {
     fontbuf: uint,
diff --git a/src/test/run-pass/issue-2735-2.rs b/src/test/run-pass/issue-2735-2.rs
index 44222315dcd..1c9cdfa6f50 100644
--- a/src/test/run-pass/issue-2735-2.rs
+++ b/src/test/run-pass/issue-2735-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/issue-2735-3.rs b/src/test/run-pass/issue-2735-3.rs
index f48e763966b..a54ceef0d36 100644
--- a/src/test/run-pass/issue-2735-3.rs
+++ b/src/test/run-pass/issue-2735-3.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/issue-2904.rs b/src/test/run-pass/issue-2904.rs
index 16133a762c5..52dc8096dc5 100644
--- a/src/test/run-pass/issue-2904.rs
+++ b/src/test/run-pass/issue-2904.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 /// Map representation
 
diff --git a/src/test/run-pass/issue-3012-2.rs b/src/test/run-pass/issue-3012-2.rs
index 9290e6200c5..7f630de45da 100644
--- a/src/test/run-pass/issue-3012-2.rs
+++ b/src/test/run-pass/issue-3012-2.rs
@@ -10,7 +10,7 @@
 
 // aux-build:issue-3012-1.rs
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate socketlib;
 extern crate libc;
diff --git a/src/test/run-pass/issue-3121.rs b/src/test/run-pass/issue-3121.rs
index 20e5b768d32..2c461119e87 100644
--- a/src/test/run-pass/issue-3121.rs
+++ b/src/test/run-pass/issue-3121.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum side { mayo, catsup, vinegar }
 enum order { hamburger, fries(side), shake }
diff --git a/src/test/run-pass/issue-3447.rs b/src/test/run-pass/issue-3447.rs
index a43445cd3aa..b34f25ce834 100644
--- a/src/test/run-pass/issue-3447.rs
+++ b/src/test/run-pass/issue-3447.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::RefCell;
 
diff --git a/src/test/run-pass/issue-3556.rs b/src/test/run-pass/issue-3556.rs
index bfdf623efda..3df91b4a812 100644
--- a/src/test/run-pass/issue-3556.rs
+++ b/src/test/run-pass/issue-3556.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum Token {
     Text(@~str),
diff --git a/src/test/run-pass/issue-3574.rs b/src/test/run-pass/issue-3574.rs
index b3b610b91a7..2c7477e21f0 100644
--- a/src/test/run-pass/issue-3574.rs
+++ b/src/test/run-pass/issue-3574.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unnecessary_allocation)];
+#![allow(unnecessary_allocation)]
 
 // rustc --test match_borrowed_str.rs.rs && ./match_borrowed_str.rs
 
diff --git a/src/test/run-pass/issue-3878.rs b/src/test/run-pass/issue-3878.rs
index 0db4e6eb244..4330663db25 100644
--- a/src/test/run-pass/issue-3878.rs
+++ b/src/test/run-pass/issue-3878.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(path_statement)];
+#![allow(path_statement)]
 
 pub fn main() {
     let y = ~1;
diff --git a/src/test/run-pass/issue-5060.rs b/src/test/run-pass/issue-5060.rs
index f02d2ad49c0..adf1d1e614a 100644
--- a/src/test/run-pass/issue-5060.rs
+++ b/src/test/run-pass/issue-5060.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! print_hd_tl (
     ($field_hd:ident, $($field_tl:ident),+) => ({
diff --git a/src/test/run-pass/issue-5521.rs b/src/test/run-pass/issue-5521.rs
index 8f66d96d50e..ffc86753345 100644
--- a/src/test/run-pass/issue-5521.rs
+++ b/src/test/run-pass/issue-5521.rs
@@ -10,7 +10,7 @@
 
 // aux-build:issue-5521.rs
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 extern crate foo = "issue-5521";
 
diff --git a/src/test/run-pass/issue-5530.rs b/src/test/run-pass/issue-5530.rs
index 68287a3a97e..f4e4cd9712d 100644
--- a/src/test/run-pass/issue-5530.rs
+++ b/src/test/run-pass/issue-5530.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum Enum {
     Foo { foo: uint },
diff --git a/src/test/run-pass/issue-5550.rs b/src/test/run-pass/issue-5550.rs
index d68766d5886..dc94570e5bf 100644
--- a/src/test/run-pass/issue-5550.rs
+++ b/src/test/run-pass/issue-5550.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 pub fn main() {
     let s: ~str = ~"foobar";
diff --git a/src/test/run-pass/issue-5554.rs b/src/test/run-pass/issue-5554.rs
index 25293c4dd1b..3ae4e9c6da4 100644
--- a/src/test/run-pass/issue-5554.rs
+++ b/src/test/run-pass/issue-5554.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 use std::default::Default;
 
diff --git a/src/test/run-pass/issue-5741.rs b/src/test/run-pass/issue-5741.rs
index 4282e7acf19..0aaa0c86241 100644
--- a/src/test/run-pass/issue-5741.rs
+++ b/src/test/run-pass/issue-5741.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unreachable_code)];
+#![allow(unreachable_code)]
 
 pub fn main() {
     return;
diff --git a/src/test/run-pass/issue-5884.rs b/src/test/run-pass/issue-5884.rs
index 593ca9de3af..4a4c8a4011c 100644
--- a/src/test/run-pass/issue-5884.rs
+++ b/src/test/run-pass/issue-5884.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 pub struct Foo {
     a: int,
diff --git a/src/test/run-pass/issue-6117.rs b/src/test/run-pass/issue-6117.rs
index 400486b2f22..ba8129f8882 100644
--- a/src/test/run-pass/issue-6117.rs
+++ b/src/test/run-pass/issue-6117.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum Either<T, U> { Left(T), Right(U) }
 
diff --git a/src/test/run-pass/issue-6130.rs b/src/test/run-pass/issue-6130.rs
index d88397499fe..f28a85eab3e 100644
--- a/src/test/run-pass/issue-6130.rs
+++ b/src/test/run-pass/issue-6130.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deny(type_limits)];
+#![deny(type_limits)]
 
 pub fn main() {
     let i: uint = 0;
diff --git a/src/test/run-pass/issue-6919.rs b/src/test/run-pass/issue-6919.rs
index 997bca42f7d..c684c4d897b 100644
--- a/src/test/run-pass/issue-6919.rs
+++ b/src/test/run-pass/issue-6919.rs
@@ -10,7 +10,7 @@
 
 // aux-build:iss.rs
 
-#[crate_id="issue-6919"];
+#![crate_id="issue-6919"]
 extern crate issue6919_3;
 
 pub fn main() {
diff --git a/src/test/run-pass/issue-7344.rs b/src/test/run-pass/issue-7344.rs
index 9b1643bb224..6e2ed27725c 100644
--- a/src/test/run-pass/issue-7344.rs
+++ b/src/test/run-pass/issue-7344.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unreachable_code)];
+#![allow(unreachable_code)]
 
 fn foo() -> bool { false }
 
diff --git a/src/test/run-pass/issue-7911.rs b/src/test/run-pass/issue-7911.rs
index 45f4b1127ae..9e43e3ef1aa 100644
--- a/src/test/run-pass/issue-7911.rs
+++ b/src/test/run-pass/issue-7911.rs
@@ -13,8 +13,8 @@
 // (Closes #7911) Test that we can use the same self expression
 // with different mutability in macro in two methods
 
-#[allow(unused_variable)]; // unused foobar_immut + foobar_mut
-#[feature(macro_rules)];
+#![allow(unused_variable)] // unused foobar_immut + foobar_mut
+#![feature(macro_rules)]
 
 trait FooBar {}
 struct Bar(i32);
diff --git a/src/test/run-pass/issue-8351-1.rs b/src/test/run-pass/issue-8351-1.rs
index e82a8a7313e..ac389c8e494 100644
--- a/src/test/run-pass/issue-8351-1.rs
+++ b/src/test/run-pass/issue-8351-1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum E {
     Foo{f: int},
diff --git a/src/test/run-pass/issue-8351-2.rs b/src/test/run-pass/issue-8351-2.rs
index 528303c8ad3..9ce24200d69 100644
--- a/src/test/run-pass/issue-8351-2.rs
+++ b/src/test/run-pass/issue-8351-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum E {
     Foo{f: int, b: bool},
diff --git a/src/test/run-pass/issue-8506.rs b/src/test/run-pass/issue-8506.rs
index b5e9141deef..1c3e0f36707 100644
--- a/src/test/run-pass/issue-8506.rs
+++ b/src/test/run-pass/issue-8506.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_code)];
+#![allow(dead_code)]
 
 enum Either {
     One,
diff --git a/src/test/run-pass/issue-8851.rs b/src/test/run-pass/issue-8851.rs
index 947331ed4b1..62970369579 100644
--- a/src/test/run-pass/issue-8851.rs
+++ b/src/test/run-pass/issue-8851.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 enum T {
     A(int),
diff --git a/src/test/run-pass/issue-8898.rs b/src/test/run-pass/issue-8898.rs
index 66ddc1118d0..b6ab9481425 100644
--- a/src/test/run-pass/issue-8898.rs
+++ b/src/test/run-pass/issue-8898.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn assert_repr_eq<T>(obj : T, expected : ~str) {
     assert_eq!(expected, format!("{:?}", obj));
diff --git a/src/test/run-pass/issue-9110.rs b/src/test/run-pass/issue-9110.rs
index dad9b53e019..ff086355f9d 100644
--- a/src/test/run-pass/issue-9110.rs
+++ b/src/test/run-pass/issue-9110.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! silly_macro(
     () => (
diff --git a/src/test/run-pass/issue-9129.rs b/src/test/run-pass/issue-9129.rs
index 3a690548a5e..52fc33d121d 100644
--- a/src/test/run-pass/issue-9129.rs
+++ b/src/test/run-pass/issue-9129.rs
@@ -10,7 +10,7 @@
 
 // ignore-pretty
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 pub trait bomb { fn boom(&self, Ident); }
 pub struct S;
diff --git a/src/test/run-pass/issue-9382.rs b/src/test/run-pass/issue-9382.rs
index af2211c00a5..3b79782878b 100644
--- a/src/test/run-pass/issue-9382.rs
+++ b/src/test/run-pass/issue-9382.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[allow(unnecessary_allocation)];
+#![feature(managed_boxes)]
+#![allow(unnecessary_allocation)]
 
 // Tests for a previous bug that occured due to an interaction
 // between struct field initialization and the auto-coercion
diff --git a/src/test/run-pass/issue-979.rs b/src/test/run-pass/issue-979.rs
index ca83e783268..a1c829c70bf 100644
--- a/src/test/run-pass/issue-979.rs
+++ b/src/test/run-pass/issue-979.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/issue-980.rs b/src/test/run-pass/issue-980.rs
index 06f95bae559..bc53ba7e48d 100644
--- a/src/test/run-pass/issue-980.rs
+++ b/src/test/run-pass/issue-980.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::RefCell;
 
diff --git a/src/test/run-pass/item-attributes.rs b/src/test/run-pass/item-attributes.rs
index e873221cf26..ef825826ea4 100644
--- a/src/test/run-pass/item-attributes.rs
+++ b/src/test/run-pass/item-attributes.rs
@@ -11,12 +11,12 @@
 // These are attributes of the implicit crate. Really this just needs to parse
 // for completeness since .rs files linked from .rc files support this
 // notation to specify their module's attributes
-#[attr1 = "val"];
-#[attr2 = "val"];
-#[attr3];
-#[attr4(attr5)];
+#![attr1 = "val"]
+#![attr2 = "val"]
+#![attr3]
+#![attr4(attr5)]
 
-#[crate_id="foobar#0.1"];
+#![crate_id="foobar#0.1"]
 
 // These are attributes of the following mod
 #[attr1 = "val"]
@@ -113,14 +113,14 @@ mod test_stmt_multi_attr_outer {
 mod test_attr_inner {
     pub mod m {
         // This is an attribute of mod m
-        #[attr = "val"];
+        #![attr = "val"]
     }
 }
 
 mod test_attr_inner_then_outer {
     pub mod m {
         // This is an attribute of mod m
-        #[attr = "val"];
+        #![attr = "val"]
         // This is an attribute of fn f
         #[attr = "val"]
         fn f() { }
@@ -130,8 +130,8 @@ mod test_attr_inner_then_outer {
 mod test_attr_inner_then_outer_multi {
     pub mod m {
         // This is an attribute of mod m
-        #[attr1 = "val"];
-        #[attr2 = "val"];
+        #![attr1 = "val"]
+        #![attr2 = "val"]
         // This is an attribute of fn f
         #[attr1 = "val"]
         #[attr2 = "val"]
@@ -171,20 +171,20 @@ mod test_foreign_items {
 
 // FIXME #623 - these aren't supported yet
 /*mod test_literals {
-    #[str = "s"];
-    #[char = 'c'];
-    #[int = 100];
-    #[uint = 100u];
-    #[mach_int = 100u32];
-    #[float = 1.0];
-    #[mach_float = 1.0f32];
-    #[nil = ()];
-    #[bool = true];
+    #![str = "s"]
+    #![char = 'c']
+    #![int = 100]
+    #![uint = 100u]
+    #![mach_int = 100u32]
+    #![float = 1.0]
+    #![mach_float = 1.0f32]
+    #![nil = ()]
+    #![bool = true]
     mod m {}
 }*/
 
 fn test_fn_inner() {
-    #[inner_fn_attr];
+    #![inner_fn_attr]
 }
 
 pub fn main() { }
diff --git a/src/test/run-pass/leak-box-as-tydesc.rs b/src/test/run-pass/leak-box-as-tydesc.rs
index e676160603a..c8d557fd35e 100644
--- a/src/test/run-pass/leak-box-as-tydesc.rs
+++ b/src/test/run-pass/leak-box-as-tydesc.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn leaky<T>(_t: T) { }
 
diff --git a/src/test/run-pass/leak-tag-copy.rs b/src/test/run-pass/leak-tag-copy.rs
index a3d2b69f868..6cd6bb38d3f 100644
--- a/src/test/run-pass/leak-tag-copy.rs
+++ b/src/test/run-pass/leak-tag-copy.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 enum t { a, b(@int), }
 
diff --git a/src/test/run-pass/let-var-hygiene.rs b/src/test/run-pass/let-var-hygiene.rs
index ce49492fee9..bc1bccf3bd8 100644
--- a/src/test/run-pass/let-var-hygiene.rs
+++ b/src/test/run-pass/let-var-hygiene.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 // shouldn't affect evaluation of $ex:
 macro_rules! bad_macro (($ex:expr) => ({let _x = 9; $ex}))
diff --git a/src/test/run-pass/lint-non-camel-case-types-non-uppercase-statics-unicode.rs b/src/test/run-pass/lint-non-camel-case-types-non-uppercase-statics-unicode.rs
index f755d85020f..d5e277b46e0 100644
--- a/src/test/run-pass/lint-non-camel-case-types-non-uppercase-statics-unicode.rs
+++ b/src/test/run-pass/lint-non-camel-case-types-non-uppercase-statics-unicode.rs
@@ -9,9 +9,9 @@
 // except according to those terms.
 
 
-#[forbid(non_camel_case_types)];
-#[forbid(non_uppercase_statics)];
-#[feature(non_ascii_idents)];
+#![forbid(non_camel_case_types)]
+#![forbid(non_uppercase_statics)]
+#![feature(non_ascii_idents)]
 
 // Some scripts (e.g. hiragana) don't have a concept of
 // upper/lowercase
diff --git a/src/test/run-pass/lint-non-uppercase-statics-lowercase-mut-statics.rs b/src/test/run-pass/lint-non-uppercase-statics-lowercase-mut-statics.rs
index cf6640275ed..0dae07d31e4 100644
--- a/src/test/run-pass/lint-non-uppercase-statics-lowercase-mut-statics.rs
+++ b/src/test/run-pass/lint-non-uppercase-statics-lowercase-mut-statics.rs
@@ -9,8 +9,8 @@
 // except according to those terms.
 
 
-#[forbid(non_camel_case_types)];
-#[forbid(non_uppercase_statics)];
+#![forbid(non_camel_case_types)]
+#![forbid(non_uppercase_statics)]
 
 static mut bar: int = 2;
 
diff --git a/src/test/run-pass/list.rs b/src/test/run-pass/list.rs
index e388aede84a..6803c31f097 100644
--- a/src/test/run-pass/list.rs
+++ b/src/test/run-pass/list.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum list { cons(int, @list), nil, }
 
diff --git a/src/test/run-pass/liveness-assign-imm-local-after-loop.rs b/src/test/run-pass/liveness-assign-imm-local-after-loop.rs
index a2f0c81f116..143972fe299 100644
--- a/src/test/run-pass/liveness-assign-imm-local-after-loop.rs
+++ b/src/test/run-pass/liveness-assign-imm-local-after-loop.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
-#[allow(unreachable_code)];
-#[allow(unused_variable)];
+#![allow(dead_assignment)]
+#![allow(unreachable_code)]
+#![allow(unused_variable)]
 
 fn test(_cond: bool) {
     let v: int;
diff --git a/src/test/run-pass/liveness-assign-imm-local-after-ret.rs b/src/test/run-pass/liveness-assign-imm-local-after-ret.rs
index fe70573744e..f13e2826c85 100644
--- a/src/test/run-pass/liveness-assign-imm-local-after-ret.rs
+++ b/src/test/run-pass/liveness-assign-imm-local-after-ret.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unreachable_code)];
+#![allow(unreachable_code)]
 
 fn test() {
     let _v: int;
diff --git a/src/test/run-pass/long-while.rs b/src/test/run-pass/long-while.rs
index 2b1fb3b779c..cbe26844708 100644
--- a/src/test/run-pass/long-while.rs
+++ b/src/test/run-pass/long-while.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 pub fn main() {
     let mut i: int = 0;
diff --git a/src/test/run-pass/macro-2.rs b/src/test/run-pass/macro-2.rs
index 1407c995c25..0daa405fc6b 100644
--- a/src/test/run-pass/macro-2.rs
+++ b/src/test/run-pass/macro-2.rs
@@ -10,7 +10,7 @@
 
 // ignore-pretty - token trees can't pretty print
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 pub fn main() {
 
diff --git a/src/test/run-pass/macro-attributes.rs b/src/test/run-pass/macro-attributes.rs
index 076305002e4..e09ca68f6d1 100644
--- a/src/test/run-pass/macro-attributes.rs
+++ b/src/test/run-pass/macro-attributes.rs
@@ -10,7 +10,7 @@
 
 // ignore-pretty - token trees can't pretty print
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! compiles_fine {
     (#[$at:meta]) => {
diff --git a/src/test/run-pass/macro-interpolation.rs b/src/test/run-pass/macro-interpolation.rs
index 4b89844194a..76fc05deb0e 100644
--- a/src/test/run-pass/macro-interpolation.rs
+++ b/src/test/run-pass/macro-interpolation.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! overly_complicated (
     ($fnname:ident, $arg:ident, $ty:ty, $body:block, $val:expr, $pat:pat, $res:path) =>
diff --git a/src/test/run-pass/macro-multiple-items.rs b/src/test/run-pass/macro-multiple-items.rs
index 9100ccfa9a5..d56d211b606 100644
--- a/src/test/run-pass/macro-multiple-items.rs
+++ b/src/test/run-pass/macro-multiple-items.rs
@@ -10,7 +10,7 @@
 
 // ignore-pretty - token trees can't pretty print
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! make_foo(
     () => (
diff --git a/src/test/run-pass/macro-path.rs b/src/test/run-pass/macro-path.rs
index 9740982e2c9..97f6e2b50d7 100644
--- a/src/test/run-pass/macro-path.rs
+++ b/src/test/run-pass/macro-path.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 mod m {
     pub type t = int;
diff --git a/src/test/run-pass/macro-stmt.rs b/src/test/run-pass/macro-stmt.rs
index 921e235aa9b..d8cde95a1dc 100644
--- a/src/test/run-pass/macro-stmt.rs
+++ b/src/test/run-pass/macro-stmt.rs
@@ -10,7 +10,7 @@
 
 // ignore-pretty - token trees can't pretty print
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! myfn(
     ( $f:ident, ( $( $x:ident ),* ), $body:block ) => (
diff --git a/src/test/run-pass/macro-with-attrs1.rs b/src/test/run-pass/macro-with-attrs1.rs
index 48e6b09a90a..3bd0aba8b6d 100644
--- a/src/test/run-pass/macro-with-attrs1.rs
+++ b/src/test/run-pass/macro-with-attrs1.rs
@@ -10,7 +10,7 @@
 
 // compile-flags: --cfg foo
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 #[cfg(foo)]
 macro_rules! foo( () => (1) )
diff --git a/src/test/run-pass/macro-with-attrs2.rs b/src/test/run-pass/macro-with-attrs2.rs
index 742769fa376..33b053c9dc7 100644
--- a/src/test/run-pass/macro-with-attrs2.rs
+++ b/src/test/run-pass/macro-with-attrs2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 #[cfg(foo)]
 macro_rules! foo( () => (1) )
diff --git a/src/test/run-pass/macro-with-braces-in-expr-position.rs b/src/test/run-pass/macro-with-braces-in-expr-position.rs
index fe1ef4817c6..f9b1b951cf0 100644
--- a/src/test/run-pass/macro-with-braces-in-expr-position.rs
+++ b/src/test/run-pass/macro-with-braces-in-expr-position.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 macro_rules! expr (($e: expr) => { $e })
 
diff --git a/src/test/run-pass/match-borrowed_str.rs b/src/test/run-pass/match-borrowed_str.rs
index b0f31f70f53..57748073e70 100644
--- a/src/test/run-pass/match-borrowed_str.rs
+++ b/src/test/run-pass/match-borrowed_str.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unnecessary_allocation)];
+#![allow(unnecessary_allocation)]
 
 fn f1(ref_string: &str) -> ~str {
     match ref_string {
diff --git a/src/test/run-pass/match-enum-struct-0.rs b/src/test/run-pass/match-enum-struct-0.rs
index 0e3ecba8a35..fef7555af5e 100644
--- a/src/test/run-pass/match-enum-struct-0.rs
+++ b/src/test/run-pass/match-enum-struct-0.rs
@@ -10,7 +10,7 @@
 
 // regression test for issue #5625
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum E {
     Foo{f : int},
diff --git a/src/test/run-pass/match-enum-struct-1.rs b/src/test/run-pass/match-enum-struct-1.rs
index a4d8296c872..12902fb738e 100644
--- a/src/test/run-pass/match-enum-struct-1.rs
+++ b/src/test/run-pass/match-enum-struct-1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum E {
     Foo{f : int},
diff --git a/src/test/run-pass/match-in-macro.rs b/src/test/run-pass/match-in-macro.rs
index b364c8dc59f..5772a2c437a 100644
--- a/src/test/run-pass/match-in-macro.rs
+++ b/src/test/run-pass/match-in-macro.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules, struct_variant)];
+#![feature(macro_rules, struct_variant)]
 
 enum Foo {
     B { b1: int, bb1: int},
diff --git a/src/test/run-pass/match-phi.rs b/src/test/run-pass/match-phi.rs
index fc851e444e8..122192667b5 100644
--- a/src/test/run-pass/match-phi.rs
+++ b/src/test/run-pass/match-phi.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 enum thing { a, b, c, }
 
diff --git a/src/test/run-pass/match-static-const-rename.rs b/src/test/run-pass/match-static-const-rename.rs
index df62ba7298d..06f6be82654 100644
--- a/src/test/run-pass/match-static-const-rename.rs
+++ b/src/test/run-pass/match-static-const-rename.rs
@@ -16,7 +16,7 @@
 // around this problem locally by renaming the constant in the `use`
 // form to an uppercase identifier that placates the lint.
 
-#[deny(non_uppercase_pattern_statics)];
+#![deny(non_uppercase_pattern_statics)]
 
 pub static A : int = 97;
 
diff --git a/src/test/run-pass/mlist.rs b/src/test/run-pass/mlist.rs
index 13b19a258f6..27073aa23ff 100644
--- a/src/test/run-pass/mlist.rs
+++ b/src/test/run-pass/mlist.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum mlist { cons(int, @mlist), nil, }
 
diff --git a/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs b/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs
index 60cd2941bec..dc165f63c9a 100644
--- a/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs
+++ b/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 trait Serializer {
 }
diff --git a/src/test/run-pass/move-1.rs b/src/test/run-pass/move-1.rs
index 983c701d820..084f979bf96 100644
--- a/src/test/run-pass/move-1.rs
+++ b/src/test/run-pass/move-1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Triple { x: int, y: int, z: int }
 
diff --git a/src/test/run-pass/move-2.rs b/src/test/run-pass/move-2.rs
index 14d4ea3ff35..41642920bdc 100644
--- a/src/test/run-pass/move-2.rs
+++ b/src/test/run-pass/move-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct X { x: int, y: int, z: int }
 
diff --git a/src/test/run-pass/move-3.rs b/src/test/run-pass/move-3.rs
index b065b612be5..cc5745d2750 100644
--- a/src/test/run-pass/move-3.rs
+++ b/src/test/run-pass/move-3.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Triple { x: int, y: int, z: int }
 
diff --git a/src/test/run-pass/move-4.rs b/src/test/run-pass/move-4.rs
index a7ff1bfb23e..2195c5855be 100644
--- a/src/test/run-pass/move-4.rs
+++ b/src/test/run-pass/move-4.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Triple { a: int, b: int, c: int }
 
diff --git a/src/test/run-pass/move-arg-2.rs b/src/test/run-pass/move-arg-2.rs
index 131a51a5467..c7dfb280326 100644
--- a/src/test/run-pass/move-arg-2.rs
+++ b/src/test/run-pass/move-arg-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 fn test(foo: @Vec<int> ) { assert!((*foo.get(0) == 10)); }
diff --git a/src/test/run-pass/mutable-vec-drop.rs b/src/test/run-pass/mutable-vec-drop.rs
index c00b7120054..c693cf9c48b 100644
--- a/src/test/run-pass/mutable-vec-drop.rs
+++ b/src/test/run-pass/mutable-vec-drop.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[allow(unused_mut)];
+#![feature(managed_boxes)]
+#![allow(unused_mut)]
 
 
 struct Pair { a: int, b: int}
diff --git a/src/test/run-pass/mutual-recursion-group.rs b/src/test/run-pass/mutual-recursion-group.rs
index 6698ed27fd7..e0c3146717a 100644
--- a/src/test/run-pass/mutual-recursion-group.rs
+++ b/src/test/run-pass/mutual-recursion-group.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 enum colour { red, green, blue, }
 
diff --git a/src/test/run-pass/newtype-struct-drop-run.rs b/src/test/run-pass/newtype-struct-drop-run.rs
index abd9c537fd2..fc008a625d8 100644
--- a/src/test/run-pass/newtype-struct-drop-run.rs
+++ b/src/test/run-pass/newtype-struct-drop-run.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Make sure the destructor is run for newtype structs.
 
diff --git a/src/test/run-pass/no-std-xcrate2.rs b/src/test/run-pass/no-std-xcrate2.rs
index 7e734a7d9e2..b19541a0b1a 100644
--- a/src/test/run-pass/no-std-xcrate2.rs
+++ b/src/test/run-pass/no-std-xcrate2.rs
@@ -16,7 +16,7 @@
 // This tests that libraries built with #[no_std] can be linked to crates with
 // #[no_std] and actually run.
 
-#[no_std];
+#![no_std]
 
 extern crate no_std_crate;
 
diff --git a/src/test/run-pass/nullable-pointer-iotareduction.rs b/src/test/run-pass/nullable-pointer-iotareduction.rs
index 117cd6d572e..de9ca643f07 100644
--- a/src/test/run-pass/nullable-pointer-iotareduction.rs
+++ b/src/test/run-pass/nullable-pointer-iotareduction.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 use std::{option, cast};
 
diff --git a/src/test/run-pass/nullable-pointer-size.rs b/src/test/run-pass/nullable-pointer-size.rs
index e02be3493e3..4e5627237fb 100644
--- a/src/test/run-pass/nullable-pointer-size.rs
+++ b/src/test/run-pass/nullable-pointer-size.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 use std::mem;
 
diff --git a/src/test/run-pass/objects-owned-object-borrowed-method-header.rs b/src/test/run-pass/objects-owned-object-borrowed-method-header.rs
index eefd8215eb4..c39e79e0528 100644
--- a/src/test/run-pass/objects-owned-object-borrowed-method-header.rs
+++ b/src/test/run-pass/objects-owned-object-borrowed-method-header.rs
@@ -10,7 +10,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 // Test invoked `&self` methods on owned objects where the values
diff --git a/src/test/run-pass/once-move-out-on-heap.rs b/src/test/run-pass/once-move-out-on-heap.rs
index 99580619a23..45986d84d28 100644
--- a/src/test/run-pass/once-move-out-on-heap.rs
+++ b/src/test/run-pass/once-move-out-on-heap.rs
@@ -11,7 +11,7 @@
 // Testing guarantees provided by once functions.
 
 
-#[feature(once_fns)];
+#![feature(once_fns)]
 extern crate sync;
 use sync::Arc;
 
diff --git a/src/test/run-pass/option-unwrap.rs b/src/test/run-pass/option-unwrap.rs
index 0806bcd185e..c7acb0b5915 100644
--- a/src/test/run-pass/option-unwrap.rs
+++ b/src/test/run-pass/option-unwrap.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/output-slot-variants.rs b/src/test/run-pass/output-slot-variants.rs
index 562a355b3b4..47bb905cac2 100644
--- a/src/test/run-pass/output-slot-variants.rs
+++ b/src/test/run-pass/output-slot-variants.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![feature(managed_boxes)]
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 struct A { a: int, b: int }
 struct Abox { a: @int, b: @int }
diff --git a/src/test/run-pass/packed-struct-size.rs b/src/test/run-pass/packed-struct-size.rs
index f694cc98ad3..fc081408229 100644
--- a/src/test/run-pass/packed-struct-size.rs
+++ b/src/test/run-pass/packed-struct-size.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::mem;
 
diff --git a/src/test/run-pass/packed-tuple-struct-size.rs b/src/test/run-pass/packed-tuple-struct-size.rs
index 7d2be73edc3..059d92b477c 100644
--- a/src/test/run-pass/packed-tuple-struct-size.rs
+++ b/src/test/run-pass/packed-tuple-struct-size.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::mem;
 
diff --git a/src/test/run-pass/parameterized-trait-with-bounds.rs b/src/test/run-pass/parameterized-trait-with-bounds.rs
index 6200d04c802..e22bc4247e0 100644
--- a/src/test/run-pass/parameterized-trait-with-bounds.rs
+++ b/src/test/run-pass/parameterized-trait-with-bounds.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_code)];
+#![allow(dead_code)]
 
 trait A<T> {}
 trait B<T, U> {}
diff --git a/src/test/run-pass/parse-fail.rs b/src/test/run-pass/parse-fail.rs
index 03f45900238..ffab2f295fa 100644
--- a/src/test/run-pass/parse-fail.rs
+++ b/src/test/run-pass/parse-fail.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unreachable_code)];
+#![allow(unreachable_code)]
 
 // ignore-test #12920
 
diff --git a/src/test/run-pass/pass-by-copy.rs b/src/test/run-pass/pass-by-copy.rs
index fed766b23d9..5b274ea079a 100644
--- a/src/test/run-pass/pass-by-copy.rs
+++ b/src/test/run-pass/pass-by-copy.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn magic(x: A) { println!("{:?}", x); }
 fn magic2(x: @int) { println!("{:?}", x); }
diff --git a/src/test/run-pass/privacy-ns.rs b/src/test/run-pass/privacy-ns.rs
index 6cdd0201a90..0756d8214a6 100644
--- a/src/test/run-pass/privacy-ns.rs
+++ b/src/test/run-pass/privacy-ns.rs
@@ -13,8 +13,8 @@
 // item with that name in both the value and type namespaces.
 
 #![feature(globs)]
-#[allow(dead_code)];
-#[allow(unused_imports)];
+#![allow(dead_code)]
+#![allow(unused_imports)]
 
 // public type, private value
 pub mod foo1 {
diff --git a/src/test/run-pass/pub_use_mods_xcrate_exe.rs b/src/test/run-pass/pub_use_mods_xcrate_exe.rs
index a973598228d..ceba89523b5 100644
--- a/src/test/run-pass/pub_use_mods_xcrate_exe.rs
+++ b/src/test/run-pass/pub_use_mods_xcrate_exe.rs
@@ -10,7 +10,7 @@
 
 // aux-build:pub_use_mods_xcrate.rs
 
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 
 extern crate pub_use_mods_xcrate;
 use pub_use_mods_xcrate::a::c;
diff --git a/src/test/run-pass/rcvr-borrowed-to-region.rs b/src/test/run-pass/rcvr-borrowed-to-region.rs
index 26e6f568ce2..4b54c32fbd3 100644
--- a/src/test/run-pass/rcvr-borrowed-to-region.rs
+++ b/src/test/run-pass/rcvr-borrowed-to-region.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 trait get {
     fn get(self) -> int;
diff --git a/src/test/run-pass/reflect-visit-type.rs b/src/test/run-pass/reflect-visit-type.rs
index ca0b5fd0703..00827e29fbf 100644
--- a/src/test/run-pass/reflect-visit-type.rs
+++ b/src/test/run-pass/reflect-visit-type.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::intrinsics::{TyDesc, get_tydesc, visit_tydesc, TyVisitor, Disr, Opaque};
 
diff --git a/src/test/run-pass/regions-appearance-constraint.rs b/src/test/run-pass/regions-appearance-constraint.rs
index 3b0a457559c..a65a878b3c7 100644
--- a/src/test/run-pass/regions-appearance-constraint.rs
+++ b/src/test/run-pass/regions-appearance-constraint.rs
@@ -10,7 +10,7 @@
 
 /* Tests conditional rooting of the box y */
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn testfn(cond: bool) {
     let mut x = @3;
diff --git a/src/test/run-pass/regions-borrow-at.rs b/src/test/run-pass/regions-borrow-at.rs
index 994140ee144..5447163a597 100644
--- a/src/test/run-pass/regions-borrow-at.rs
+++ b/src/test/run-pass/regions-borrow-at.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn foo(x: &uint) -> uint {
     *x
diff --git a/src/test/run-pass/regions-escape-into-other-fn.rs b/src/test/run-pass/regions-escape-into-other-fn.rs
index 8ccda6824bd..2377a60153b 100644
--- a/src/test/run-pass/regions-escape-into-other-fn.rs
+++ b/src/test/run-pass/regions-escape-into-other-fn.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn foo<'r>(x: &'r uint) -> &'r uint { x }
 fn bar(x: &uint) -> uint { *x }
diff --git a/src/test/run-pass/regions-fn-subtyping.rs b/src/test/run-pass/regions-fn-subtyping.rs
index 14e56bd6181..705a0e12852 100644
--- a/src/test/run-pass/regions-fn-subtyping.rs
+++ b/src/test/run-pass/regions-fn-subtyping.rs
@@ -10,8 +10,8 @@
 
 // Issue #2263.
 
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 // Should pass region checking.
 fn ok(f: |x: &uint|) {
diff --git a/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs b/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs
index 1f21ca9ef1b..a08b0cd998b 100644
--- a/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs
+++ b/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn borrow<'r, T>(x: &'r T) -> &'r T {x}
 
diff --git a/src/test/run-pass/regions-infer-borrow-scope.rs b/src/test/run-pass/regions-infer-borrow-scope.rs
index 7db4ce8caf2..adfad21d530 100644
--- a/src/test/run-pass/regions-infer-borrow-scope.rs
+++ b/src/test/run-pass/regions-infer-borrow-scope.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Point {x: int, y: int}
 
diff --git a/src/test/run-pass/repeated-vector-syntax.rs b/src/test/run-pass/repeated-vector-syntax.rs
index e091092b653..9538a097ab4 100644
--- a/src/test/run-pass/repeated-vector-syntax.rs
+++ b/src/test/run-pass/repeated-vector-syntax.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 #[deriving(Clone)]
 struct Foo {
diff --git a/src/test/run-pass/resource-assign-is-not-copy.rs b/src/test/run-pass/resource-assign-is-not-copy.rs
index 55d9a8bc63a..837ae68c85e 100644
--- a/src/test/run-pass/resource-assign-is-not-copy.rs
+++ b/src/test/run-pass/resource-assign-is-not-copy.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/resource-destruct.rs b/src/test/run-pass/resource-destruct.rs
index af0e9572f38..337908e8a84 100644
--- a/src/test/run-pass/resource-destruct.rs
+++ b/src/test/run-pass/resource-destruct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/resource-in-struct.rs b/src/test/run-pass/resource-in-struct.rs
index 1c5ad9ce525..740fe952c45 100644
--- a/src/test/run-pass/resource-in-struct.rs
+++ b/src/test/run-pass/resource-in-struct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Ensures that class dtors run if the object is inside an enum
 // variant
diff --git a/src/test/run-pass/shape_intrinsic_tag_then_rec.rs b/src/test/run-pass/shape_intrinsic_tag_then_rec.rs
index d2ee91e2270..53b4c6d1b2c 100644
--- a/src/test/run-pass/shape_intrinsic_tag_then_rec.rs
+++ b/src/test/run-pass/shape_intrinsic_tag_then_rec.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Exercises a bug in the shape code that was exposed
 // on x86_64: when there is a enum embedded in an
diff --git a/src/test/run-pass/small-enums-with-fields.rs b/src/test/run-pass/small-enums-with-fields.rs
index ef7319eca09..e9b87d1900c 100644
--- a/src/test/run-pass/small-enums-with-fields.rs
+++ b/src/test/run-pass/small-enums-with-fields.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 use std::mem::size_of;
 
diff --git a/src/test/run-pass/smallest-hello-world.rs b/src/test/run-pass/smallest-hello-world.rs
index d3c7a948e24..cd9afa0311b 100644
--- a/src/test/run-pass/smallest-hello-world.rs
+++ b/src/test/run-pass/smallest-hello-world.rs
@@ -12,7 +12,7 @@
 
 // Smallest hello world with no runtime
 
-#[no_std];
+#![no_std]
 
 // This is an unfortunate thing to have to do on linux :(
 #[cfg(target_os = "linux")]
diff --git a/src/test/run-pass/struct-field-assignability.rs b/src/test/run-pass/struct-field-assignability.rs
index e15a4f419ae..3469936c05b 100644
--- a/src/test/run-pass/struct-field-assignability.rs
+++ b/src/test/run-pass/struct-field-assignability.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 struct Foo<'a> {
     x: &'a int
diff --git a/src/test/run-pass/struct-like-variant-construct.rs b/src/test/run-pass/struct-like-variant-construct.rs
index a7c9e3b8f06..adb27e6afe6 100644
--- a/src/test/run-pass/struct-like-variant-construct.rs
+++ b/src/test/run-pass/struct-like-variant-construct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum Foo {
     Bar {
diff --git a/src/test/run-pass/struct-like-variant-match.rs b/src/test/run-pass/struct-like-variant-match.rs
index bb03f57be78..ba25fe11a3a 100644
--- a/src/test/run-pass/struct-like-variant-match.rs
+++ b/src/test/run-pass/struct-like-variant-match.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum Foo {
     Bar {
diff --git a/src/test/run-pass/syntax-extension-source-utils.rs b/src/test/run-pass/syntax-extension-source-utils.rs
index 276f792d659..190a6eccd94 100644
--- a/src/test/run-pass/syntax-extension-source-utils.rs
+++ b/src/test/run-pass/syntax-extension-source-utils.rs
@@ -11,7 +11,7 @@
 // This test is brittle!
 // ignore-pretty - the pretty tests lose path information, breaking include!
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 pub mod m1 {
     pub mod m2 {
diff --git a/src/test/run-pass/task-comm-4.rs b/src/test/run-pass/task-comm-4.rs
index 6418921172a..2e2b1fbff0f 100644
--- a/src/test/run-pass/task-comm-4.rs
+++ b/src/test/run-pass/task-comm-4.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 pub fn main() { test00(); }
 
diff --git a/src/test/run-pass/task-comm-6.rs b/src/test/run-pass/task-comm-6.rs
index 4db25856116..e783cd9b6be 100644
--- a/src/test/run-pass/task-comm-6.rs
+++ b/src/test/run-pass/task-comm-6.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 pub fn main() { test00(); }
 
diff --git a/src/test/run-pass/task-comm-7.rs b/src/test/run-pass/task-comm-7.rs
index 121740bb6a2..170e1e8597b 100644
--- a/src/test/run-pass/task-comm-7.rs
+++ b/src/test/run-pass/task-comm-7.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 use std::task;
 
diff --git a/src/test/run-pass/terminate-in-initializer.rs b/src/test/run-pass/terminate-in-initializer.rs
index 9f648b9a473..62a8bc075f7 100644
--- a/src/test/run-pass/terminate-in-initializer.rs
+++ b/src/test/run-pass/terminate-in-initializer.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Issue #787
 // Don't try to clean up uninitialized locals
diff --git a/src/test/run-pass/trait-cast-generic.rs b/src/test/run-pass/trait-cast-generic.rs
index af9633d679e..c48d6e243b9 100644
--- a/src/test/run-pass/trait-cast-generic.rs
+++ b/src/test/run-pass/trait-cast-generic.rs
@@ -10,7 +10,7 @@
 
 // Testing casting of a generic Struct to a Trait with a generic method.
 // This is test for issue 10955.
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 trait Foo {
     fn f<A>(a: A) -> A {
diff --git a/src/test/run-pass/trait-cast.rs b/src/test/run-pass/trait-cast.rs
index 7a53df8737c..8e83de66b5f 100644
--- a/src/test/run-pass/trait-cast.rs
+++ b/src/test/run-pass/trait-cast.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Test cyclic detector when using trait instances.
 
diff --git a/src/test/run-pass/traits-default-method-mut.rs b/src/test/run-pass/traits-default-method-mut.rs
index 4b217ba0ebb..a3a1076ecba 100644
--- a/src/test/run-pass/traits-default-method-mut.rs
+++ b/src/test/run-pass/traits-default-method-mut.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 trait Foo {
     fn foo(&self, mut v: int) { v = 1; }
diff --git a/src/test/run-pass/type-param-constraints.rs b/src/test/run-pass/type-param-constraints.rs
index 1f615dc6cec..408a727b6f1 100644
--- a/src/test/run-pass/type-param-constraints.rs
+++ b/src/test/run-pass/type-param-constraints.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn p_foo<T>(_pinned: T) { }
 fn s_foo<T>(_shared: T) { }
diff --git a/src/test/run-pass/typeck-macro-interaction-issue-8852.rs b/src/test/run-pass/typeck-macro-interaction-issue-8852.rs
index be9e5fcbdf3..50ef1922c8f 100644
--- a/src/test/run-pass/typeck-macro-interaction-issue-8852.rs
+++ b/src/test/run-pass/typeck-macro-interaction-issue-8852.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(macro_rules)];
+#![feature(macro_rules)]
 
 enum T {
     A(int),
diff --git a/src/test/run-pass/typeclasses-eq-example-static.rs b/src/test/run-pass/typeclasses-eq-example-static.rs
index 11d1b9ecbfe..13d8ea4002c 100644
--- a/src/test/run-pass/typeclasses-eq-example-static.rs
+++ b/src/test/run-pass/typeclasses-eq-example-static.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Example from lkuper's intern talk, August 2012 -- now with static
 // methods!
diff --git a/src/test/run-pass/typeclasses-eq-example.rs b/src/test/run-pass/typeclasses-eq-example.rs
index ed72a758c78..95bd093fcec 100644
--- a/src/test/run-pass/typeclasses-eq-example.rs
+++ b/src/test/run-pass/typeclasses-eq-example.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 // Example from lkuper's intern talk, August 2012.
 
diff --git a/src/test/run-pass/typestate-cfg-nesting.rs b/src/test/run-pass/typestate-cfg-nesting.rs
index 6a2757c6b30..37d06bf4f83 100644
--- a/src/test/run-pass/typestate-cfg-nesting.rs
+++ b/src/test/run-pass/typestate-cfg-nesting.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 fn f() {
     let x = 10; let mut y = 11;
diff --git a/src/test/run-pass/uniq-cc-generic.rs b/src/test/run-pass/uniq-cc-generic.rs
index 3c164d3e2da..197613ea555 100644
--- a/src/test/run-pass/uniq-cc-generic.rs
+++ b/src/test/run-pass/uniq-cc-generic.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::RefCell;
 
diff --git a/src/test/run-pass/uniq-cc.rs b/src/test/run-pass/uniq-cc.rs
index 6c273199c6f..1c7525f0754 100644
--- a/src/test/run-pass/uniq-cc.rs
+++ b/src/test/run-pass/uniq-cc.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::RefCell;
 
diff --git a/src/test/run-pass/unique-assign-drop.rs b/src/test/run-pass/unique-assign-drop.rs
index 9144ecc74f9..df8036451d8 100644
--- a/src/test/run-pass/unique-assign-drop.rs
+++ b/src/test/run-pass/unique-assign-drop.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
+#![allow(dead_assignment)]
 
 pub fn main() {
     let i = ~1;
diff --git a/src/test/run-pass/unique-assign-generic.rs b/src/test/run-pass/unique-assign-generic.rs
index 1af120df470..595c5fe82e7 100644
--- a/src/test/run-pass/unique-assign-generic.rs
+++ b/src/test/run-pass/unique-assign-generic.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 fn f<T>(t: T) -> T {
     let t1 = t;
diff --git a/src/test/run-pass/unique-move-drop.rs b/src/test/run-pass/unique-move-drop.rs
index cbef0044f8c..c757011f935 100644
--- a/src/test/run-pass/unique-move-drop.rs
+++ b/src/test/run-pass/unique-move-drop.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_variable)];
+#![allow(unused_variable)]
 
 pub fn main() {
     let i = ~100;
diff --git a/src/test/run-pass/unit.rs b/src/test/run-pass/unit.rs
index f42322799c1..3b52dcce4bf 100644
--- a/src/test/run-pass/unit.rs
+++ b/src/test/run-pass/unit.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unused_variable)];
-#[allow(dead_assignment)];
+#![allow(unused_variable)]
+#![allow(dead_assignment)]
 
 fn f(u: ()) { return u; }
 
diff --git a/src/test/run-pass/unreachable-code-1.rs b/src/test/run-pass/unreachable-code-1.rs
index d1896a258c6..fa24cc44f90 100644
--- a/src/test/run-pass/unreachable-code-1.rs
+++ b/src/test/run-pass/unreachable-code-1.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(unreachable_code)];
-#[allow(unused_variable)];
+#![allow(unreachable_code)]
+#![allow(unused_variable)]
 
 fn id(x: bool) -> bool { x }
 
diff --git a/src/test/run-pass/unreachable-code.rs b/src/test/run-pass/unreachable-code.rs
index 2c65e2283e8..2d74b3163d2 100644
--- a/src/test/run-pass/unreachable-code.rs
+++ b/src/test/run-pass/unreachable-code.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(path_statement)];
-#[allow(unreachable_code)];
-#[allow(unused_variable)];
+#![allow(path_statement)]
+#![allow(unreachable_code)]
+#![allow(unused_variable)]
 
 fn id(x: bool) -> bool { x }
 
diff --git a/src/test/run-pass/unused-move.rs b/src/test/run-pass/unused-move.rs
index 375e8664781..163726fd06a 100644
--- a/src/test/run-pass/unused-move.rs
+++ b/src/test/run-pass/unused-move.rs
@@ -12,7 +12,7 @@
 // Issue Name: Unused move causes a crash
 // Abstract: zero-fill to block after drop
 
-#[allow(path_statement)];
+#![allow(path_statement)]
 
 pub fn main()
 {
diff --git a/src/test/run-pass/unwind-box.rs b/src/test/run-pass/unwind-box.rs
index 53e92fc4abb..58d389e9133 100644
--- a/src/test/run-pass/unwind-box.rs
+++ b/src/test/run-pass/unwind-box.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::task;
 
diff --git a/src/test/run-pass/unwind-resource2.rs b/src/test/run-pass/unwind-resource2.rs
index 3331ee21814..85c4975b671 100644
--- a/src/test/run-pass/unwind-resource2.rs
+++ b/src/test/run-pass/unwind-resource2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::task;
 
diff --git a/src/test/run-pass/use.rs b/src/test/run-pass/use.rs
index 8b4e47a5562..ee67cc86ea3 100644
--- a/src/test/run-pass/use.rs
+++ b/src/test/run-pass/use.rs
@@ -10,9 +10,9 @@
 // except according to those terms.
 
 
-#[allow(unused_imports)];
+#![allow(unused_imports)]
 
-#[no_std];
+#![no_std]
 extern crate std;
 extern crate zed = "std";
 extern crate bar = "std#0.11-pre";
diff --git a/src/test/run-pass/utf8_idents.rs b/src/test/run-pass/utf8_idents.rs
index 640a02c1535..6cd95f1af36 100644
--- a/src/test/run-pass/utf8_idents.rs
+++ b/src/test/run-pass/utf8_idents.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[feature(non_ascii_idents)];
+#![feature(non_ascii_idents)]
 
 use std::num;
 
diff --git a/src/test/run-pass/variant-structs-trivial.rs b/src/test/run-pass/variant-structs-trivial.rs
index 66bdec453e6..a74f97825f4 100644
--- a/src/test/run-pass/variant-structs-trivial.rs
+++ b/src/test/run-pass/variant-structs-trivial.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(struct_variant)];
+#![feature(struct_variant)]
 
 enum Foo {
     Bar { x: int },
diff --git a/src/test/run-pass/vec-drop.rs b/src/test/run-pass/vec-drop.rs
index 007ed9ae85e..7638b7f6a3a 100644
--- a/src/test/run-pass/vec-drop.rs
+++ b/src/test/run-pass/vec-drop.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 struct Pair { x: int, y: int }
diff --git a/src/test/run-pass/vec-slice-drop.rs b/src/test/run-pass/vec-slice-drop.rs
index f8e28dc792c..a27498aad74 100644
--- a/src/test/run-pass/vec-slice-drop.rs
+++ b/src/test/run-pass/vec-slice-drop.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 
diff --git a/src/test/run-pass/vector-no-ann-2.rs b/src/test/run-pass/vector-no-ann-2.rs
index ec476a522e0..33679057310 100644
--- a/src/test/run-pass/vector-no-ann-2.rs
+++ b/src/test/run-pass/vector-no-ann-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 
 pub fn main() { let _quux: @Vec<uint> = @Vec::new(); }
diff --git a/src/test/run-pass/weird-exprs.rs b/src/test/run-pass/weird-exprs.rs
index 0e4f4194a54..3a2b1f7009d 100644
--- a/src/test/run-pass/weird-exprs.rs
+++ b/src/test/run-pass/weird-exprs.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[feature(managed_boxes)];
+#![feature(managed_boxes)]
 
 use std::cell::Cell;
 use std::mem::swap;
diff --git a/src/test/run-pass/while-loop-constraints-2.rs b/src/test/run-pass/while-loop-constraints-2.rs
index 8ef98901e9f..622b66d22a1 100644
--- a/src/test/run-pass/while-loop-constraints-2.rs
+++ b/src/test/run-pass/while-loop-constraints-2.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[allow(dead_assignment)];
-#[allow(unused_variable)];
+#![allow(dead_assignment)]
+#![allow(unused_variable)]
 
 pub fn main() {
     let mut y: int = 42;