about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/auxiliary/trait_inheritance_overloading_xc.rs2
-rw-r--r--src/test/bench/shootout-k-nucleotide.rs2
-rw-r--r--src/test/bench/task-perf-alloc-unwind.rs2
-rw-r--r--src/test/compile-fail/attr-before-eof.rs2
-rw-r--r--src/test/compile-fail/borrowck-init-in-fru.rs2
-rw-r--r--src/test/compile-fail/borrowck-loan-in-overloaded-op.rs2
-rw-r--r--src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs2
-rw-r--r--src/test/compile-fail/borrowck-move-out-of-vec-tail.rs2
-rw-r--r--src/test/compile-fail/coherence-blanket-conflicts-with-specific-multidispatch.rs2
-rw-r--r--src/test/compile-fail/copy-a-resource.rs2
-rw-r--r--src/test/compile-fail/deriving-bounds.rs4
-rw-r--r--src/test/compile-fail/deriving-meta-unknown-trait.rs2
-rw-r--r--src/test/compile-fail/deriving-no-inner-impl-error-message.rs4
-rw-r--r--src/test/compile-fail/deriving-non-type.rs18
-rw-r--r--src/test/compile-fail/deriving-primitive.rs8
-rw-r--r--src/test/compile-fail/deriving-span-Clone-enum-struct-variant.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Clone-enum.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Clone-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Clone-tuple-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Default-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Default-tuple-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Hash-enum-struct-variant.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Hash-enum.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Hash-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Hash-tuple-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-PartialEq-enum-struct-variant.rs2
-rw-r--r--src/test/compile-fail/deriving-span-PartialEq-enum.rs2
-rw-r--r--src/test/compile-fail/deriving-span-PartialEq-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-PartialEq-tuple-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-PartialOrd-enum-struct-variant.rs4
-rw-r--r--src/test/compile-fail/deriving-span-PartialOrd-enum.rs4
-rw-r--r--src/test/compile-fail/deriving-span-PartialOrd-struct.rs4
-rw-r--r--src/test/compile-fail/deriving-span-PartialOrd-tuple-struct.rs4
-rw-r--r--src/test/compile-fail/deriving-span-Rand-enum-struct-variant.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Rand-enum.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Rand-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Rand-tuple-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Show-enum-struct-variant.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Show-enum.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Show-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Show-tuple-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-TotalEq-enum-struct-variant.rs4
-rw-r--r--src/test/compile-fail/deriving-span-TotalEq-enum.rs4
-rw-r--r--src/test/compile-fail/deriving-span-TotalEq-struct.rs4
-rw-r--r--src/test/compile-fail/deriving-span-TotalEq-tuple-struct.rs4
-rw-r--r--src/test/compile-fail/deriving-span-TotalOrd-enum-struct-variant.rs4
-rw-r--r--src/test/compile-fail/deriving-span-TotalOrd-enum.rs4
-rw-r--r--src/test/compile-fail/deriving-span-TotalOrd-struct.rs4
-rw-r--r--src/test/compile-fail/deriving-span-TotalOrd-tuple-struct.rs4
-rw-r--r--src/test/compile-fail/deriving-span-Zero-struct.rs2
-rw-r--r--src/test/compile-fail/deriving-span-Zero-tuple-struct.rs2
-rw-r--r--src/test/compile-fail/doc-before-attr.rs2
-rw-r--r--src/test/compile-fail/dst-bad-assign-2.rs4
-rw-r--r--src/test/compile-fail/dst-bad-assign.rs4
-rw-r--r--src/test/compile-fail/issue-17728.rs2
-rw-r--r--src/test/compile-fail/issue-17905.rs2
-rw-r--r--src/test/compile-fail/issue-3344.rs2
-rw-r--r--src/test/compile-fail/issue-3521.rs2
-rw-r--r--src/test/compile-fail/lint-raw-ptr-deriving.rs20
-rw-r--r--src/test/compile-fail/lint-unnecessary-parens.rs2
-rw-r--r--src/test/compile-fail/liveness-use-after-send.rs2
-rw-r--r--src/test/compile-fail/macros-nonfatal-errors.rs2
-rw-r--r--src/test/compile-fail/no-send-res-ports.rs4
-rw-r--r--src/test/compile-fail/noncopyable-class.rs4
-rw-r--r--src/test/compile-fail/nonscalar-cast.rs2
-rw-r--r--src/test/compile-fail/packed-struct-transmute.rs2
-rw-r--r--src/test/compile-fail/unique-pinned-nocopy.rs2
-rw-r--r--src/test/compile-fail/unique-vec-res.rs2
-rw-r--r--src/test/compile-fail/vec-res-add.rs2
-rw-r--r--src/test/debuginfo/by-value-non-immediate-argument.rs4
-rw-r--r--src/test/debuginfo/c-style-enum.rs6
-rw-r--r--src/test/debuginfo/generic-function.rs2
-rw-r--r--src/test/run-make/extern-fn-with-packed-struct/test.rs2
-rw-r--r--src/test/run-make/pretty-expanded/input.rs12
-rw-r--r--src/test/run-make/rustdoc-hidden-line/foo.rs6
-rwxr-xr-xsrc/test/run-make/rustdoc-hidden-line/verify.sh2
-rw-r--r--src/test/run-pass-fulldeps/macro-crate.rs2
-rw-r--r--src/test/run-pass-fulldeps/quote-tokens.rs2
-rw-r--r--src/test/run-pass/assert-eq-macro-success.rs2
-rw-r--r--src/test/run-pass/auto-encode.rs12
-rw-r--r--src/test/run-pass/auto-instantiate.rs2
-rw-r--r--src/test/run-pass/binops.rs2
-rw-r--r--src/test/run-pass/borrowck-mut-uniq.rs2
-rw-r--r--src/test/run-pass/builtin-superkinds-capabilities-xc.rs2
-rw-r--r--src/test/run-pass/class-cast-to-trait-multiple-types.rs2
-rw-r--r--src/test/run-pass/class-impl-very-parameterized-trait.rs2
-rw-r--r--src/test/run-pass/class-implement-traits.rs2
-rw-r--r--src/test/run-pass/coerce-to-closure-and-proc.rs4
-rw-r--r--src/test/run-pass/coherence-where-clause.rs2
-rw-r--r--src/test/run-pass/const-struct.rs2
-rw-r--r--src/test/run-pass/deriving-bounds.rs2
-rw-r--r--src/test/run-pass/deriving-clone-enum.rs2
-rw-r--r--src/test/run-pass/deriving-clone-generic-enum.rs2
-rw-r--r--src/test/run-pass/deriving-clone-generic-struct.rs2
-rw-r--r--src/test/run-pass/deriving-clone-generic-tuple-struct.rs2
-rw-r--r--src/test/run-pass/deriving-clone-struct.rs2
-rw-r--r--src/test/run-pass/deriving-clone-tuple-struct.rs2
-rw-r--r--src/test/run-pass/deriving-cmp-generic-enum.rs2
-rw-r--r--src/test/run-pass/deriving-cmp-generic-struct-enum.rs2
-rw-r--r--src/test/run-pass/deriving-cmp-generic-struct.rs2
-rw-r--r--src/test/run-pass/deriving-cmp-generic-tuple-struct.rs2
-rw-r--r--src/test/run-pass/deriving-cmp-shortcircuit.rs2
-rw-r--r--src/test/run-pass/deriving-default-box.rs2
-rw-r--r--src/test/run-pass/deriving-encodable-decodable-box.rs2
-rw-r--r--src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs6
-rw-r--r--src/test/run-pass/deriving-encodable-decodable.rs14
-rw-r--r--src/test/run-pass/deriving-enum-single-variant.rs2
-rw-r--r--src/test/run-pass/deriving-eq-ord-boxed-slice.rs2
-rw-r--r--src/test/run-pass/deriving-global.rs6
-rw-r--r--src/test/run-pass/deriving-hash.rs2
-rw-r--r--src/test/run-pass/deriving-in-fn.rs2
-rw-r--r--src/test/run-pass/deriving-in-macro.rs2
-rw-r--r--src/test/run-pass/deriving-meta-empty-trait-list.rs4
-rw-r--r--src/test/run-pass/deriving-meta-multiple.rs6
-rw-r--r--src/test/run-pass/deriving-meta.rs2
-rw-r--r--src/test/run-pass/deriving-primitive.rs2
-rw-r--r--src/test/run-pass/deriving-rand.rs8
-rw-r--r--src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs2
-rw-r--r--src/test/run-pass/deriving-self-lifetime.rs2
-rw-r--r--src/test/run-pass/deriving-show-2.rs20
-rw-r--r--src/test/run-pass/deriving-show.rs8
-rw-r--r--src/test/run-pass/deriving-via-extension-c-enum.rs2
-rw-r--r--src/test/run-pass/deriving-via-extension-enum.rs2
-rw-r--r--src/test/run-pass/deriving-via-extension-hash-enum.rs4
-rw-r--r--src/test/run-pass/deriving-via-extension-hash-struct.rs2
-rw-r--r--src/test/run-pass/deriving-via-extension-struct-empty.rs2
-rw-r--r--src/test/run-pass/deriving-via-extension-struct-like-enum-variant.rs2
-rw-r--r--src/test/run-pass/deriving-via-extension-struct-tuple.rs2
-rw-r--r--src/test/run-pass/deriving-via-extension-struct.rs2
-rw-r--r--src/test/run-pass/deriving-via-extension-type-params.rs2
-rw-r--r--src/test/run-pass/deriving-zero.rs6
-rw-r--r--src/test/run-pass/drop-trait-enum.rs2
-rw-r--r--src/test/run-pass/dst-struct-sole.rs2
-rw-r--r--src/test/run-pass/dst-struct.rs2
-rw-r--r--src/test/run-pass/dst-trait.rs4
-rw-r--r--src/test/run-pass/empty-tag.rs2
-rw-r--r--src/test/run-pass/enum-discrim-width-stuff.rs2
-rw-r--r--src/test/run-pass/eq-multidispatch.rs2
-rw-r--r--src/test/run-pass/explicit-self.rs4
-rw-r--r--src/test/run-pass/expr-block-generic.rs2
-rw-r--r--src/test/run-pass/expr-if-generic.rs2
-rw-r--r--src/test/run-pass/expr-if-struct.rs2
-rw-r--r--src/test/run-pass/expr-match-generic.rs2
-rw-r--r--src/test/run-pass/expr-match-struct.rs2
-rw-r--r--src/test/run-pass/extern-pass-TwoU16s.rs2
-rw-r--r--src/test/run-pass/extern-pass-TwoU32s.rs2
-rw-r--r--src/test/run-pass/extern-pass-TwoU64s.rs2
-rw-r--r--src/test/run-pass/extern-pass-TwoU8s.rs2
-rw-r--r--src/test/run-pass/functional-struct-upd.rs2
-rw-r--r--src/test/run-pass/generic-default-type-params.rs4
-rw-r--r--src/test/run-pass/generic-derived-type.rs2
-rw-r--r--src/test/run-pass/hrtb-opt-in-copy.rs2
-rw-r--r--src/test/run-pass/issue-10396.rs2
-rw-r--r--src/test/run-pass/issue-11552.rs2
-rw-r--r--src/test/run-pass/issue-11881.rs4
-rw-r--r--src/test/run-pass/issue-12860.rs2
-rw-r--r--src/test/run-pass/issue-13264.rs2
-rw-r--r--src/test/run-pass/issue-13434.rs2
-rw-r--r--src/test/run-pass/issue-14021.rs2
-rw-r--r--src/test/run-pass/issue-14399.rs2
-rw-r--r--src/test/run-pass/issue-15689-1.rs2
-rw-r--r--src/test/run-pass/issue-15689-2.rs2
-rw-r--r--src/test/run-pass/issue-15763.rs4
-rw-r--r--src/test/run-pass/issue-18738.rs6
-rw-r--r--src/test/run-pass/issue-19037.rs2
-rw-r--r--src/test/run-pass/issue-19135.rs2
-rw-r--r--src/test/run-pass/issue-19358.rs4
-rw-r--r--src/test/run-pass/issue-2718.rs2
-rw-r--r--src/test/run-pass/issue-3556.rs2
-rw-r--r--src/test/run-pass/issue-3794.rs2
-rw-r--r--src/test/run-pass/issue-3935.rs2
-rw-r--r--src/test/run-pass/issue-4252.rs4
-rw-r--r--src/test/run-pass/issue-5008-borrowed-traitobject-method-call.rs2
-rw-r--r--src/test/run-pass/issue-6341.rs2
-rw-r--r--src/test/run-pass/issue-7563.rs4
-rw-r--r--src/test/run-pass/log-knows-the-names-of-variants-in-std.rs2
-rw-r--r--src/test/run-pass/log-knows-the-names-of-variants.rs4
-rw-r--r--src/test/run-pass/log-poly.rs2
-rw-r--r--src/test/run-pass/monomorphize-abi-alignment.rs4
-rw-r--r--src/test/run-pass/move-1-unique.rs2
-rw-r--r--src/test/run-pass/move-3-unique.rs2
-rw-r--r--src/test/run-pass/newtype-polymorphic.rs2
-rw-r--r--src/test/run-pass/newtype-temporary.rs2
-rw-r--r--src/test/run-pass/operator-multidispatch.rs2
-rw-r--r--src/test/run-pass/operator-overloading.rs2
-rw-r--r--src/test/run-pass/overloaded-autoderef-count.rs4
-rw-r--r--src/test/run-pass/overloaded-autoderef.rs2
-rw-r--r--src/test/run-pass/overloaded-deref.rs2
-rw-r--r--src/test/run-pass/overloaded-index-assoc-list.rs2
-rw-r--r--src/test/run-pass/packed-struct-vec.rs2
-rw-r--r--src/test/run-pass/rec-align-u32.rs4
-rw-r--r--src/test/run-pass/rec-align-u64.rs4
-rw-r--r--src/test/run-pass/regions-mock-tcx.rs4
-rw-r--r--src/test/run-pass/resource-assign-is-not-copy.rs2
-rw-r--r--src/test/run-pass/show-boxed-slice.rs2
-rw-r--r--src/test/run-pass/small-enums-with-fields.rs2
-rw-r--r--src/test/run-pass/struct-lit-functional-no-fields.rs2
-rw-r--r--src/test/run-pass/struct-partial-move-1.rs4
-rw-r--r--src/test/run-pass/struct-partial-move-2.rs4
-rw-r--r--src/test/run-pass/structured-compare.rs2
-rw-r--r--src/test/run-pass/tag-align-shape.rs4
-rw-r--r--src/test/run-pass/tag-disr-val-shape.rs2
-rw-r--r--src/test/run-pass/task-comm-16.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-overloading-simple.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-overloading.rs2
-rw-r--r--src/test/run-pass/tuple-struct-construct.rs2
-rw-r--r--src/test/run-pass/tuple-struct-constructor-pointer.rs4
-rw-r--r--src/test/run-pass/typeclasses-eq-example-static.rs4
-rw-r--r--src/test/run-pass/typeclasses-eq-example.rs4
-rw-r--r--src/test/run-pass/unboxed-closures-monomorphization.rs2
-rw-r--r--src/test/run-pass/uninit-empty-types.rs2
-rw-r--r--src/test/run-pass/vector-sort-panic-safe.rs2
-rw-r--r--src/test/run-pass/while-prelude-drop.rs2
213 files changed, 320 insertions, 320 deletions
diff --git a/src/test/auxiliary/trait_inheritance_overloading_xc.rs b/src/test/auxiliary/trait_inheritance_overloading_xc.rs
index 61854aba279..0e90db2835f 100644
--- a/src/test/auxiliary/trait_inheritance_overloading_xc.rs
+++ b/src/test/auxiliary/trait_inheritance_overloading_xc.rs
@@ -13,7 +13,7 @@ use std::cmp::PartialEq;
 pub trait MyNum : Add<Self,Self> + Sub<Self,Self> + Mul<Self,Self> + PartialEq + Clone {
 }
 
-#[deriving(Clone, Show)]
+#[derive(Clone, Show)]
 pub struct MyInt {
     pub val: int
 }
diff --git a/src/test/bench/shootout-k-nucleotide.rs b/src/test/bench/shootout-k-nucleotide.rs
index a0ef392ed3a..1408cfe6eee 100644
--- a/src/test/bench/shootout-k-nucleotide.rs
+++ b/src/test/bench/shootout-k-nucleotide.rs
@@ -60,7 +60,7 @@ static OCCURRENCES: [&'static str;5] = [
 
 // Code implementation
 
-#[deriving(PartialEq, PartialOrd, Ord, Eq)]
+#[derive(PartialEq, PartialOrd, Ord, Eq)]
 struct Code(u64);
 
 impl Copy for Code {}
diff --git a/src/test/bench/task-perf-alloc-unwind.rs b/src/test/bench/task-perf-alloc-unwind.rs
index 8bcf30b4859..b27a8710e32 100644
--- a/src/test/bench/task-perf-alloc-unwind.rs
+++ b/src/test/bench/task-perf-alloc-unwind.rs
@@ -14,7 +14,7 @@ use std::os;
 use std::task;
 use std::time::Duration;
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum List<T> {
     Nil, Cons(T, Box<List<T>>)
 }
diff --git a/src/test/compile-fail/attr-before-eof.rs b/src/test/compile-fail/attr-before-eof.rs
index 7e8f41ba217..5fe88cafacf 100644
--- a/src/test/compile-fail/attr-before-eof.rs
+++ b/src/test/compile-fail/attr-before-eof.rs
@@ -8,4 +8,4 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)] //~ERROR expected item after attributes
+#[derive(Show)] //~ERROR expected item after attributes
diff --git a/src/test/compile-fail/borrowck-init-in-fru.rs b/src/test/compile-fail/borrowck-init-in-fru.rs
index 6a42989b47b..ac90b7cb432 100644
--- a/src/test/compile-fail/borrowck-init-in-fru.rs
+++ b/src/test/compile-fail/borrowck-init-in-fru.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct point {
     x: int,
     y: int,
diff --git a/src/test/compile-fail/borrowck-loan-in-overloaded-op.rs b/src/test/compile-fail/borrowck-loan-in-overloaded-op.rs
index 692303fc1e4..3317295f88f 100644
--- a/src/test/compile-fail/borrowck-loan-in-overloaded-op.rs
+++ b/src/test/compile-fail/borrowck-loan-in-overloaded-op.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct foo(Box<uint>);
 
 impl Add<foo, foo> for foo {
diff --git a/src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs b/src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs
index b83e1544c96..3143da99f48 100644
--- a/src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs
+++ b/src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Copy)]
+#[derive(Copy)]
 struct Point {
     x: int,
     y: int,
diff --git a/src/test/compile-fail/borrowck-move-out-of-vec-tail.rs b/src/test/compile-fail/borrowck-move-out-of-vec-tail.rs
index 8d94b553f11..047ab93530b 100644
--- a/src/test/compile-fail/borrowck-move-out-of-vec-tail.rs
+++ b/src/test/compile-fail/borrowck-move-out-of-vec-tail.rs
@@ -10,7 +10,7 @@
 
 // Test that we do not permit moves from &[] matched by a vec pattern.
 
-#[deriving(Clone, Show)]
+#[derive(Clone, Show)]
 struct Foo {
     string: String
 }
diff --git a/src/test/compile-fail/coherence-blanket-conflicts-with-specific-multidispatch.rs b/src/test/compile-fail/coherence-blanket-conflicts-with-specific-multidispatch.rs
index da2e6200eb6..f3efca369b3 100644
--- a/src/test/compile-fail/coherence-blanket-conflicts-with-specific-multidispatch.rs
+++ b/src/test/compile-fail/coherence-blanket-conflicts-with-specific-multidispatch.rs
@@ -24,7 +24,7 @@ impl<T> MyTrait<T> for T { //~ ERROR E0119
     }
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct MyType {
     dummy: uint
 }
diff --git a/src/test/compile-fail/copy-a-resource.rs b/src/test/compile-fail/copy-a-resource.rs
index 67537464a33..98cf7009f0f 100644
--- a/src/test/compile-fail/copy-a-resource.rs
+++ b/src/test/compile-fail/copy-a-resource.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct foo {
   i: int,
 }
diff --git a/src/test/compile-fail/deriving-bounds.rs b/src/test/compile-fail/deriving-bounds.rs
index d61ad98ee1e..c0bcbb284a1 100644
--- a/src/test/compile-fail/deriving-bounds.rs
+++ b/src/test/compile-fail/deriving-bounds.rs
@@ -8,11 +8,11 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Copy(Bad))]
+#[derive(Copy(Bad))]
 //~^ ERROR unexpected value in deriving, expected a trait
 struct Test;
 
-#[deriving(Sync)]
+#[derive(Sync)]
 //~^ ERROR Sync is an unsafe trait and it should be implemented explicitly
 struct Test1;
 
diff --git a/src/test/compile-fail/deriving-meta-unknown-trait.rs b/src/test/compile-fail/deriving-meta-unknown-trait.rs
index 0b9f61dac9e..6b85656bdd9 100644
--- a/src/test/compile-fail/deriving-meta-unknown-trait.rs
+++ b/src/test/compile-fail/deriving-meta-unknown-trait.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Eqr)] //~ ERROR unknown `deriving` trait: `Eqr`
+#[derive(Eqr)] //~ ERROR unknown `derive` trait: `Eqr`
 struct Foo;
 
 pub fn main() {}
diff --git a/src/test/compile-fail/deriving-no-inner-impl-error-message.rs b/src/test/compile-fail/deriving-no-inner-impl-error-message.rs
index 18be03f97d9..ac63cc27da1 100644
--- a/src/test/compile-fail/deriving-no-inner-impl-error-message.rs
+++ b/src/test/compile-fail/deriving-no-inner-impl-error-message.rs
@@ -10,12 +10,12 @@
 
 struct NoCloneOrEq;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct E {
     x: NoCloneOrEq //~ ERROR binary operation `==` cannot be applied to type `NoCloneOrEq`
          //~^ ERROR binary operation `!=` cannot be applied to type `NoCloneOrEq`
 }
-#[deriving(Clone)]
+#[derive(Clone)]
 struct C {
     x: NoCloneOrEq
     //~^ ERROR the trait `core::clone::Clone` is not implemented for the type `NoCloneOrEq`
diff --git a/src/test/compile-fail/deriving-non-type.rs b/src/test/compile-fail/deriving-non-type.rs
index 8226bba42b0..717ce6e11ef 100644
--- a/src/test/compile-fail/deriving-non-type.rs
+++ b/src/test/compile-fail/deriving-non-type.rs
@@ -12,29 +12,29 @@
 
 struct S;
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 trait T { }
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 impl S { }
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 impl T for S { }
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 static s: uint = 0u;
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 const c: uint = 0u;
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 mod m { }
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 extern "C" { }
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 type A = uint;
 
-#[deriving(PartialEq)] //~ ERROR: `deriving` may only be applied to structs and enums
+#[derive(PartialEq)] //~ ERROR: `derive` may only be applied to structs and enums
 fn main() { }
diff --git a/src/test/compile-fail/deriving-primitive.rs b/src/test/compile-fail/deriving-primitive.rs
index 1af0193ca47..a3c6c8672c8 100644
--- a/src/test/compile-fail/deriving-primitive.rs
+++ b/src/test/compile-fail/deriving-primitive.rs
@@ -11,22 +11,22 @@
 use std::num::FromPrimitive;
 use std::int;
 
-#[deriving(FromPrimitive)]
+#[derive(FromPrimitive)]
 struct A { x: int }
 //~^^ ERROR `FromPrimitive` cannot be derived for structs
 //~^^^ ERROR `FromPrimitive` cannot be derived for structs
 
-#[deriving(FromPrimitive)]
+#[derive(FromPrimitive)]
 struct B(int);
 //~^^ ERROR `FromPrimitive` cannot be derived for structs
 //~^^^ ERROR `FromPrimitive` cannot be derived for structs
 
-#[deriving(FromPrimitive)]
+#[derive(FromPrimitive)]
 enum C { Foo(int), Bar(uint) }
 //~^^ ERROR `FromPrimitive` cannot be derived for enum variants with arguments
 //~^^^ ERROR `FromPrimitive` cannot be derived for enum variants with arguments
 
-#[deriving(FromPrimitive)]
+#[derive(FromPrimitive)]
 enum D { Baz { x: int } }
 //~^^ ERROR `FromPrimitive` cannot be derived for enums with struct variants
 //~^^^ ERROR `FromPrimitive` cannot be derived for enums with struct variants
diff --git a/src/test/compile-fail/deriving-span-Clone-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-Clone-enum-struct-variant.rs
index 1abafb84dd2..9badb5b262d 100644
--- a/src/test/compile-fail/deriving-span-Clone-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-Clone-enum-struct-variant.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Clone-enum.rs b/src/test/compile-fail/deriving-span-Clone-enum.rs
index 50badaeea00..6b71610778c 100644
--- a/src/test/compile-fail/deriving-span-Clone-enum.rs
+++ b/src/test/compile-fail/deriving-span-Clone-enum.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Clone-struct.rs b/src/test/compile-fail/deriving-span-Clone-struct.rs
index 49530afec05..845da771de8 100644
--- a/src/test/compile-fail/deriving-span-Clone-struct.rs
+++ b/src/test/compile-fail/deriving-span-Clone-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Struct {
     x: Error //~ ERROR
 }
diff --git a/src/test/compile-fail/deriving-span-Clone-tuple-struct.rs b/src/test/compile-fail/deriving-span-Clone-tuple-struct.rs
index 27e281bb220..698e5a79bef 100644
--- a/src/test/compile-fail/deriving-span-Clone-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-Clone-tuple-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Struct(
     Error //~ ERROR
 );
diff --git a/src/test/compile-fail/deriving-span-Default-struct.rs b/src/test/compile-fail/deriving-span-Default-struct.rs
index a75d909c06d..ac718519fe6 100644
--- a/src/test/compile-fail/deriving-span-Default-struct.rs
+++ b/src/test/compile-fail/deriving-span-Default-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Default)]
+#[derive(Default)]
 struct Struct {
     x: Error //~ ERROR `core::default::Default` is not implemented
 }
diff --git a/src/test/compile-fail/deriving-span-Default-tuple-struct.rs b/src/test/compile-fail/deriving-span-Default-tuple-struct.rs
index 8df6acd2704..d0b9a7a3db9 100644
--- a/src/test/compile-fail/deriving-span-Default-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-Default-tuple-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Default)]
+#[derive(Default)]
 struct Struct(
     Error //~ ERROR
 );
diff --git a/src/test/compile-fail/deriving-span-Hash-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-Hash-enum-struct-variant.rs
index fb94799caba..d9f4bfe1028 100644
--- a/src/test/compile-fail/deriving-span-Hash-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-Hash-enum-struct-variant.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Hash)]
+#[derive(Hash)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Hash-enum.rs b/src/test/compile-fail/deriving-span-Hash-enum.rs
index d4100badcdb..1f5a5d5201f 100644
--- a/src/test/compile-fail/deriving-span-Hash-enum.rs
+++ b/src/test/compile-fail/deriving-span-Hash-enum.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Hash)]
+#[derive(Hash)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Hash-struct.rs b/src/test/compile-fail/deriving-span-Hash-struct.rs
index 8b0ec01283c..55a5e9ee6b3 100644
--- a/src/test/compile-fail/deriving-span-Hash-struct.rs
+++ b/src/test/compile-fail/deriving-span-Hash-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Hash)]
+#[derive(Hash)]
 struct Struct {
     x: Error //~ ERROR
 }
diff --git a/src/test/compile-fail/deriving-span-Hash-tuple-struct.rs b/src/test/compile-fail/deriving-span-Hash-tuple-struct.rs
index 8ed8350e557..5c81c57dbcc 100644
--- a/src/test/compile-fail/deriving-span-Hash-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-Hash-tuple-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Hash)]
+#[derive(Hash)]
 struct Struct(
     Error //~ ERROR
 );
diff --git a/src/test/compile-fail/deriving-span-PartialEq-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-PartialEq-enum-struct-variant.rs
index f9ce978a057..c340ad8a46a 100644
--- a/src/test/compile-fail/deriving-span-PartialEq-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-PartialEq-enum-struct-variant.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-PartialEq-enum.rs b/src/test/compile-fail/deriving-span-PartialEq-enum.rs
index 7756e9bfbb6..9051a6371fc 100644
--- a/src/test/compile-fail/deriving-span-PartialEq-enum.rs
+++ b/src/test/compile-fail/deriving-span-PartialEq-enum.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-PartialEq-struct.rs b/src/test/compile-fail/deriving-span-PartialEq-struct.rs
index 43685a5b0ef..310d4ecd03f 100644
--- a/src/test/compile-fail/deriving-span-PartialEq-struct.rs
+++ b/src/test/compile-fail/deriving-span-PartialEq-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Struct {
     x: Error //~ ERROR
 //~^ ERROR
diff --git a/src/test/compile-fail/deriving-span-PartialEq-tuple-struct.rs b/src/test/compile-fail/deriving-span-PartialEq-tuple-struct.rs
index b84b8b4a658..9b6df0e77e1 100644
--- a/src/test/compile-fail/deriving-span-PartialEq-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-PartialEq-tuple-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Struct(
     Error //~ ERROR
 //~^ ERROR
diff --git a/src/test/compile-fail/deriving-span-PartialOrd-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-PartialOrd-enum-struct-variant.rs
index 810f0f350f3..5a2d2063d14 100644
--- a/src/test/compile-fail/deriving-span-PartialOrd-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-PartialOrd-enum-struct-variant.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(PartialOrd,PartialEq)]
+#[derive(PartialOrd,PartialEq)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-PartialOrd-enum.rs b/src/test/compile-fail/deriving-span-PartialOrd-enum.rs
index 7ae2bbf8eb5..9341b6c3e8b 100644
--- a/src/test/compile-fail/deriving-span-PartialOrd-enum.rs
+++ b/src/test/compile-fail/deriving-span-PartialOrd-enum.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(PartialOrd,PartialEq)]
+#[derive(PartialOrd,PartialEq)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-PartialOrd-struct.rs b/src/test/compile-fail/deriving-span-PartialOrd-struct.rs
index c5b008da884..8a707566efa 100644
--- a/src/test/compile-fail/deriving-span-PartialOrd-struct.rs
+++ b/src/test/compile-fail/deriving-span-PartialOrd-struct.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(PartialOrd,PartialEq)]
+#[derive(PartialOrd,PartialEq)]
 struct Struct {
     x: Error //~ ERROR
 //~^ ERROR
diff --git a/src/test/compile-fail/deriving-span-PartialOrd-tuple-struct.rs b/src/test/compile-fail/deriving-span-PartialOrd-tuple-struct.rs
index f282943bba3..ae1b8b44379 100644
--- a/src/test/compile-fail/deriving-span-PartialOrd-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-PartialOrd-tuple-struct.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(PartialOrd,PartialEq)]
+#[derive(PartialOrd,PartialEq)]
 struct Struct(
     Error //~ ERROR
 //~^ ERROR
diff --git a/src/test/compile-fail/deriving-span-Rand-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-Rand-enum-struct-variant.rs
index c44abc2313a..4d3542c586b 100644
--- a/src/test/compile-fail/deriving-span-Rand-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-Rand-enum-struct-variant.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Rand)]
+#[derive(Rand)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Rand-enum.rs b/src/test/compile-fail/deriving-span-Rand-enum.rs
index fc03b99983d..dcfdbdc8062 100644
--- a/src/test/compile-fail/deriving-span-Rand-enum.rs
+++ b/src/test/compile-fail/deriving-span-Rand-enum.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Rand)]
+#[derive(Rand)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Rand-struct.rs b/src/test/compile-fail/deriving-span-Rand-struct.rs
index 36e1e521393..73d89693b2b 100644
--- a/src/test/compile-fail/deriving-span-Rand-struct.rs
+++ b/src/test/compile-fail/deriving-span-Rand-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Rand)]
+#[derive(Rand)]
 struct Struct {
     x: Error //~ ERROR
 }
diff --git a/src/test/compile-fail/deriving-span-Rand-tuple-struct.rs b/src/test/compile-fail/deriving-span-Rand-tuple-struct.rs
index ffa26061833..8038bf3ff09 100644
--- a/src/test/compile-fail/deriving-span-Rand-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-Rand-tuple-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Rand)]
+#[derive(Rand)]
 struct Struct(
     Error //~ ERROR
 );
diff --git a/src/test/compile-fail/deriving-span-Show-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-Show-enum-struct-variant.rs
index fa1cfc3de5b..aefc990c187 100644
--- a/src/test/compile-fail/deriving-span-Show-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-Show-enum-struct-variant.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Show)]
+#[derive(Show)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Show-enum.rs b/src/test/compile-fail/deriving-span-Show-enum.rs
index 9b1dccf7df5..bdd2c21a1b6 100644
--- a/src/test/compile-fail/deriving-span-Show-enum.rs
+++ b/src/test/compile-fail/deriving-span-Show-enum.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Show)]
+#[derive(Show)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-Show-struct.rs b/src/test/compile-fail/deriving-span-Show-struct.rs
index 8acb6875d53..f76317e62b4 100644
--- a/src/test/compile-fail/deriving-span-Show-struct.rs
+++ b/src/test/compile-fail/deriving-span-Show-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Struct {
     x: Error //~ ERROR
 }
diff --git a/src/test/compile-fail/deriving-span-Show-tuple-struct.rs b/src/test/compile-fail/deriving-span-Show-tuple-struct.rs
index bcbced125ef..cb64a438e0b 100644
--- a/src/test/compile-fail/deriving-span-Show-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-Show-tuple-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Struct(
     Error //~ ERROR
 );
diff --git a/src/test/compile-fail/deriving-span-TotalEq-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-TotalEq-enum-struct-variant.rs
index 25add55ae4b..6994aa76fff 100644
--- a/src/test/compile-fail/deriving-span-TotalEq-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-TotalEq-enum-struct-variant.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(Eq,PartialEq)]
+#[derive(Eq,PartialEq)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-TotalEq-enum.rs b/src/test/compile-fail/deriving-span-TotalEq-enum.rs
index e58121f2cb0..279368d64ab 100644
--- a/src/test/compile-fail/deriving-span-TotalEq-enum.rs
+++ b/src/test/compile-fail/deriving-span-TotalEq-enum.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(Eq,PartialEq)]
+#[derive(Eq,PartialEq)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-TotalEq-struct.rs b/src/test/compile-fail/deriving-span-TotalEq-struct.rs
index 0637c6e305c..8672e8e050e 100644
--- a/src/test/compile-fail/deriving-span-TotalEq-struct.rs
+++ b/src/test/compile-fail/deriving-span-TotalEq-struct.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(Eq,PartialEq)]
+#[derive(Eq,PartialEq)]
 struct Struct {
     x: Error //~ ERROR
 }
diff --git a/src/test/compile-fail/deriving-span-TotalEq-tuple-struct.rs b/src/test/compile-fail/deriving-span-TotalEq-tuple-struct.rs
index 3a2cbb11f53..e79b3b97410 100644
--- a/src/test/compile-fail/deriving-span-TotalEq-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-TotalEq-tuple-struct.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Error;
 
-#[deriving(Eq,PartialEq)]
+#[derive(Eq,PartialEq)]
 struct Struct(
     Error //~ ERROR
 );
diff --git a/src/test/compile-fail/deriving-span-TotalOrd-enum-struct-variant.rs b/src/test/compile-fail/deriving-span-TotalOrd-enum-struct-variant.rs
index 3b4f4e1080d..6d5e1fb75d4 100644
--- a/src/test/compile-fail/deriving-span-TotalOrd-enum-struct-variant.rs
+++ b/src/test/compile-fail/deriving-span-TotalOrd-enum-struct-variant.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(Eq,PartialOrd,PartialEq)]
+#[derive(Eq,PartialOrd,PartialEq)]
 struct Error;
 
-#[deriving(Ord,Eq,PartialOrd,PartialEq)]
+#[derive(Ord,Eq,PartialOrd,PartialEq)]
 enum Enum {
    A {
      x: Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-TotalOrd-enum.rs b/src/test/compile-fail/deriving-span-TotalOrd-enum.rs
index 02a55fdfbb2..5b342901334 100644
--- a/src/test/compile-fail/deriving-span-TotalOrd-enum.rs
+++ b/src/test/compile-fail/deriving-span-TotalOrd-enum.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(Eq,PartialOrd,PartialEq)]
+#[derive(Eq,PartialOrd,PartialEq)]
 struct Error;
 
-#[deriving(Ord,Eq,PartialOrd,PartialEq)]
+#[derive(Ord,Eq,PartialOrd,PartialEq)]
 enum Enum {
    A(
      Error //~ ERROR
diff --git a/src/test/compile-fail/deriving-span-TotalOrd-struct.rs b/src/test/compile-fail/deriving-span-TotalOrd-struct.rs
index 7cf3ad57f47..61d9d8a76a9 100644
--- a/src/test/compile-fail/deriving-span-TotalOrd-struct.rs
+++ b/src/test/compile-fail/deriving-span-TotalOrd-struct.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(Eq,PartialOrd,PartialEq)]
+#[derive(Eq,PartialOrd,PartialEq)]
 struct Error;
 
-#[deriving(Ord,Eq,PartialOrd,PartialEq)]
+#[derive(Ord,Eq,PartialOrd,PartialEq)]
 struct Struct {
     x: Error //~ ERROR
 }
diff --git a/src/test/compile-fail/deriving-span-TotalOrd-tuple-struct.rs b/src/test/compile-fail/deriving-span-TotalOrd-tuple-struct.rs
index 7b8d1d3ecd0..caef7968756 100644
--- a/src/test/compile-fail/deriving-span-TotalOrd-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-TotalOrd-tuple-struct.rs
@@ -12,10 +12,10 @@
 
 extern crate rand;
 
-#[deriving(Eq,PartialOrd,PartialEq)]
+#[derive(Eq,PartialOrd,PartialEq)]
 struct Error;
 
-#[deriving(Ord,Eq,PartialOrd,PartialEq)]
+#[derive(Ord,Eq,PartialOrd,PartialEq)]
 struct Struct(
     Error //~ ERROR
 );
diff --git a/src/test/compile-fail/deriving-span-Zero-struct.rs b/src/test/compile-fail/deriving-span-Zero-struct.rs
index 302fecd518b..6b09c365235 100644
--- a/src/test/compile-fail/deriving-span-Zero-struct.rs
+++ b/src/test/compile-fail/deriving-span-Zero-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Zero)]   //~ ERROR not implemented
+#[derive(Zero)]   //~ ERROR not implemented
 struct Struct {
     x: Error
 }
diff --git a/src/test/compile-fail/deriving-span-Zero-tuple-struct.rs b/src/test/compile-fail/deriving-span-Zero-tuple-struct.rs
index 05b81ce3251..c11af72f5c9 100644
--- a/src/test/compile-fail/deriving-span-Zero-tuple-struct.rs
+++ b/src/test/compile-fail/deriving-span-Zero-tuple-struct.rs
@@ -15,7 +15,7 @@ extern crate rand;
 
 struct Error;
 
-#[deriving(Zero)]   //~ ERROR not implemented
+#[derive(Zero)]   //~ ERROR not implemented
 struct Struct(
     Error
 );
diff --git a/src/test/compile-fail/doc-before-attr.rs b/src/test/compile-fail/doc-before-attr.rs
index adc060f513f..7ee7e196b6b 100644
--- a/src/test/compile-fail/doc-before-attr.rs
+++ b/src/test/compile-fail/doc-before-attr.rs
@@ -9,4 +9,4 @@
 // except according to those terms.
 
 /// hi
-#[deriving(Show)] //~ERROR expected item after attributes
+#[derive(Show)] //~ERROR expected item after attributes
diff --git a/src/test/compile-fail/dst-bad-assign-2.rs b/src/test/compile-fail/dst-bad-assign-2.rs
index 112a424427a..fcc08cfcb16 100644
--- a/src/test/compile-fail/dst-bad-assign-2.rs
+++ b/src/test/compile-fail/dst-bad-assign-2.rs
@@ -16,10 +16,10 @@ struct Fat<Sized? T> {
     ptr: T
 }
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar;
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar1 {
     f: int
 }
diff --git a/src/test/compile-fail/dst-bad-assign.rs b/src/test/compile-fail/dst-bad-assign.rs
index f18f4a36640..eb54f3f8e78 100644
--- a/src/test/compile-fail/dst-bad-assign.rs
+++ b/src/test/compile-fail/dst-bad-assign.rs
@@ -16,10 +16,10 @@ struct Fat<Sized? T> {
     ptr: T
 }
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar;
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar1 {
     f: int
 }
diff --git a/src/test/compile-fail/issue-17728.rs b/src/test/compile-fail/issue-17728.rs
index 50b0a1a20c2..96f252967a8 100644
--- a/src/test/compile-fail/issue-17728.rs
+++ b/src/test/compile-fail/issue-17728.rs
@@ -30,7 +30,7 @@ trait TraversesWorld {
 }
 
 
-#[deriving(Show, Eq, PartialEq, Hash)]
+#[derive(Show, Eq, PartialEq, Hash)]
 enum RoomDirection {
     West,
     East,
diff --git a/src/test/compile-fail/issue-17905.rs b/src/test/compile-fail/issue-17905.rs
index 2f56b494f32..2b5c0b7de2f 100644
--- a/src/test/compile-fail/issue-17905.rs
+++ b/src/test/compile-fail/issue-17905.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Pair<T, V> (T, V);
 
 impl Pair<
diff --git a/src/test/compile-fail/issue-3344.rs b/src/test/compile-fail/issue-3344.rs
index b88272ed466..27a91f891a2 100644
--- a/src/test/compile-fail/issue-3344.rs
+++ b/src/test/compile-fail/issue-3344.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct thing(uint);
 impl PartialOrd for thing { //~ ERROR not all trait items implemented, missing: `partial_cmp`
     fn le(&self, other: &thing) -> bool { true }
diff --git a/src/test/compile-fail/issue-3521.rs b/src/test/compile-fail/issue-3521.rs
index f3d26c50cc3..67ab5508ec2 100644
--- a/src/test/compile-fail/issue-3521.rs
+++ b/src/test/compile-fail/issue-3521.rs
@@ -11,7 +11,7 @@
 fn main() {
     let foo = 100;
 
-    #[deriving(Show)]
+    #[derive(Show)]
     enum Stuff {
         Bar = foo //~ ERROR attempt to use a non-constant value in a constant
     }
diff --git a/src/test/compile-fail/lint-raw-ptr-deriving.rs b/src/test/compile-fail/lint-raw-ptr-deriving.rs
index 72632b56706..6fe8862d77e 100644
--- a/src/test/compile-fail/lint-raw-ptr-deriving.rs
+++ b/src/test/compile-fail/lint-raw-ptr-deriving.rs
@@ -11,24 +11,24 @@
 #![allow(dead_code)]
 #![deny(raw_pointer_deriving)]
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Foo {
-    x: *const int //~ ERROR use of `#[deriving]` with a raw pointer
+    x: *const int //~ ERROR use of `#[derive]` with a raw pointer
 }
 
-#[deriving(Clone)]
-struct Bar(*mut int); //~ ERROR use of `#[deriving]` with a raw pointer
+#[derive(Clone)]
+struct Bar(*mut int); //~ ERROR use of `#[derive]` with a raw pointer
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum Baz {
-    A(*const int), //~ ERROR use of `#[deriving]` with a raw pointer
-    B { x: *mut int } //~ ERROR use of `#[deriving]` with a raw pointer
+    A(*const int), //~ ERROR use of `#[derive]` with a raw pointer
+    B { x: *mut int } //~ ERROR use of `#[derive]` with a raw pointer
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Buzz {
-    x: (*const int, //~ ERROR use of `#[deriving]` with a raw pointer
-        *const uint) //~ ERROR use of `#[deriving]` with a raw pointer
+    x: (*const int, //~ ERROR use of `#[derive]` with a raw pointer
+        *const uint) //~ ERROR use of `#[derive]` with a raw pointer
 }
 
 fn main() {}
diff --git a/src/test/compile-fail/lint-unnecessary-parens.rs b/src/test/compile-fail/lint-unnecessary-parens.rs
index b71effa6f86..1c7a2d7e9d5 100644
--- a/src/test/compile-fail/lint-unnecessary-parens.rs
+++ b/src/test/compile-fail/lint-unnecessary-parens.rs
@@ -10,7 +10,7 @@
 
 #![deny(unused_parens)]
 
-#[deriving(Eq, PartialEq)]
+#[derive(Eq, PartialEq)]
 struct X { y: bool }
 impl X {
     fn foo(&self) -> bool { self.y }
diff --git a/src/test/compile-fail/liveness-use-after-send.rs b/src/test/compile-fail/liveness-use-after-send.rs
index 1ad696503e7..f25d2a9b00c 100644
--- a/src/test/compile-fail/liveness-use-after-send.rs
+++ b/src/test/compile-fail/liveness-use-after-send.rs
@@ -14,7 +14,7 @@ fn send<T:Send + std::fmt::Show>(ch: _chan<T>, data: T) {
     panic!();
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct _chan<T>(int);
 
 // Tests that "log(debug, message);" is flagged as using
diff --git a/src/test/compile-fail/macros-nonfatal-errors.rs b/src/test/compile-fail/macros-nonfatal-errors.rs
index 8bd26a3a5e0..f97cad559a1 100644
--- a/src/test/compile-fail/macros-nonfatal-errors.rs
+++ b/src/test/compile-fail/macros-nonfatal-errors.rs
@@ -14,7 +14,7 @@
 #![feature(asm)]
 #![feature(trace_macros, concat_idents)]
 
-#[deriving(Default, //~ ERROR
+#[derive(Default, //~ ERROR
            Rand, //~ ERROR
            Zero)] //~ ERROR
 enum CantDeriveThose {}
diff --git a/src/test/compile-fail/no-send-res-ports.rs b/src/test/compile-fail/no-send-res-ports.rs
index 48747c7ce1d..f487ecf9f45 100644
--- a/src/test/compile-fail/no-send-res-ports.rs
+++ b/src/test/compile-fail/no-send-res-ports.rs
@@ -13,11 +13,11 @@
 use std::task;
 use std::rc::Rc;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Port<T>(Rc<T>);
 
 fn main() {
-    #[deriving(Show)]
+    #[derive(Show)]
     struct foo {
       _x: Port<()>,
     }
diff --git a/src/test/compile-fail/noncopyable-class.rs b/src/test/compile-fail/noncopyable-class.rs
index bf762eaa80f..aceec2aafdf 100644
--- a/src/test/compile-fail/noncopyable-class.rs
+++ b/src/test/compile-fail/noncopyable-class.rs
@@ -11,7 +11,7 @@
 // Test that a class with a non-copyable field can't be
 // copied
 
-#[deriving(Show)]
+#[derive(Show)]
 struct bar {
   x: int,
 }
@@ -26,7 +26,7 @@ fn bar(x:int) -> bar {
     }
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct foo {
   i: int,
   j: bar,
diff --git a/src/test/compile-fail/nonscalar-cast.rs b/src/test/compile-fail/nonscalar-cast.rs
index 346661e3c1f..728f66a6aa7 100644
--- a/src/test/compile-fail/nonscalar-cast.rs
+++ b/src/test/compile-fail/nonscalar-cast.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:non-scalar cast
 
-#[deriving(Show)]
+#[derive(Show)]
 struct foo {
     x: int
 }
diff --git a/src/test/compile-fail/packed-struct-transmute.rs b/src/test/compile-fail/packed-struct-transmute.rs
index 9c8e8193319..91c6776e52e 100644
--- a/src/test/compile-fail/packed-struct-transmute.rs
+++ b/src/test/compile-fail/packed-struct-transmute.rs
@@ -23,7 +23,7 @@ struct Foo {
     baz: uint
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Oof {
     rab: u8,
     zab: uint
diff --git a/src/test/compile-fail/unique-pinned-nocopy.rs b/src/test/compile-fail/unique-pinned-nocopy.rs
index 0e1e66b40ce..704d8c568c4 100644
--- a/src/test/compile-fail/unique-pinned-nocopy.rs
+++ b/src/test/compile-fail/unique-pinned-nocopy.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct r {
   b: bool,
 }
diff --git a/src/test/compile-fail/unique-vec-res.rs b/src/test/compile-fail/unique-vec-res.rs
index ba39f3e0d17..8aabc9b042f 100644
--- a/src/test/compile-fail/unique-vec-res.rs
+++ b/src/test/compile-fail/unique-vec-res.rs
@@ -12,7 +12,7 @@
 
 use std::cell::Cell;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct r<'a> {
   i: &'a Cell<int>,
 }
diff --git a/src/test/compile-fail/vec-res-add.rs b/src/test/compile-fail/vec-res-add.rs
index 6221806642c..28a7ceeeaa2 100644
--- a/src/test/compile-fail/vec-res-add.rs
+++ b/src/test/compile-fail/vec-res-add.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct r {
   i:int
 }
diff --git a/src/test/debuginfo/by-value-non-immediate-argument.rs b/src/test/debuginfo/by-value-non-immediate-argument.rs
index b0c5b2f21b9..8ac8d5970f3 100644
--- a/src/test/debuginfo/by-value-non-immediate-argument.rs
+++ b/src/test/debuginfo/by-value-non-immediate-argument.rs
@@ -73,13 +73,13 @@
 
 #![omit_gdb_pretty_printer_section]
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Struct {
     a: int,
     b: f64
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct StructStruct {
     a: Struct,
     b: Struct
diff --git a/src/test/debuginfo/c-style-enum.rs b/src/test/debuginfo/c-style-enum.rs
index b62a8167eaf..ad7c860c8b9 100644
--- a/src/test/debuginfo/c-style-enum.rs
+++ b/src/test/debuginfo/c-style-enum.rs
@@ -105,21 +105,21 @@ use self::AutoDiscriminant::{One, Two, Three};
 use self::ManualDiscriminant::{OneHundred, OneThousand, OneMillion};
 use self::SingleVariant::TheOnlyVariant;
 
-#[deriving(Copy)]
+#[derive(Copy)]
 enum AutoDiscriminant {
     One,
     Two,
     Three
 }
 
-#[deriving(Copy)]
+#[derive(Copy)]
 enum ManualDiscriminant {
     OneHundred = 100,
     OneThousand = 1000,
     OneMillion = 1000000
 }
 
-#[deriving(Copy)]
+#[derive(Copy)]
 enum SingleVariant {
     TheOnlyVariant
 }
diff --git a/src/test/debuginfo/generic-function.rs b/src/test/debuginfo/generic-function.rs
index cefe67970e9..b2fdb708db5 100644
--- a/src/test/debuginfo/generic-function.rs
+++ b/src/test/debuginfo/generic-function.rs
@@ -72,7 +72,7 @@
 
 #![omit_gdb_pretty_printer_section]
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Struct {
     a: int,
     b: f64
diff --git a/src/test/run-make/extern-fn-with-packed-struct/test.rs b/src/test/run-make/extern-fn-with-packed-struct/test.rs
index 12d961bd59e..b38db4c9eb2 100644
--- a/src/test/run-make/extern-fn-with-packed-struct/test.rs
+++ b/src/test/run-make/extern-fn-with-packed-struct/test.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #[repr(packed)]
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo {
     a: i8,
     b: i16,
diff --git a/src/test/run-make/pretty-expanded/input.rs b/src/test/run-make/pretty-expanded/input.rs
index 0fb74af56da..b6137c3eba9 100644
--- a/src/test/run-make/pretty-expanded/input.rs
+++ b/src/test/run-make/pretty-expanded/input.rs
@@ -14,9 +14,9 @@
 
 extern crate serialize;
 
-#[deriving(Encodable)] pub struct A;
-#[deriving(Encodable)] pub struct B(int);
-#[deriving(Encodable)] pub struct C { x: int }
-#[deriving(Encodable)] pub enum D {}
-#[deriving(Encodable)] pub enum E { y }
-#[deriving(Encodable)] pub enum F { z(int) }
+#[derive(Encodable)] pub struct A;
+#[derive(Encodable)] pub struct B(int);
+#[derive(Encodable)] pub struct C { x: int }
+#[derive(Encodable)] pub enum D {}
+#[derive(Encodable)] pub enum E { y }
+#[derive(Encodable)] pub enum F { z(int) }
diff --git a/src/test/run-make/rustdoc-hidden-line/foo.rs b/src/test/run-make/rustdoc-hidden-line/foo.rs
index c402da7987d..78dcaebda4b 100644
--- a/src/test/run-make/rustdoc-hidden-line/foo.rs
+++ b/src/test/run-make/rustdoc-hidden-line/foo.rs
@@ -10,16 +10,16 @@
 
 #![crate_name="foo"]
 
-/// The '# ' lines should be removed from the output, but the #[deriving] should be
+/// The '# ' lines should be removed from the output, but the #[derive] should be
 /// retained.
 ///
 /// ```rust
 /// mod to_make_deriving_work { // FIXME #4913
 ///
-/// # #[deriving(PartialEq)] // invisible
+/// # #[derive(PartialEq)] // invisible
 /// # struct Foo; // invisible
 ///
-/// #[deriving(PartialEq)] // Bar
+/// #[derive(PartialEq)] // Bar
 /// struct Bar(Foo);
 ///
 /// fn test() {
diff --git a/src/test/run-make/rustdoc-hidden-line/verify.sh b/src/test/run-make/rustdoc-hidden-line/verify.sh
index 9c905f37d31..9f28b55b133 100755
--- a/src/test/run-make/rustdoc-hidden-line/verify.sh
+++ b/src/test/run-make/rustdoc-hidden-line/verify.sh
@@ -3,6 +3,6 @@
 file="$1/doc/foo/fn.foo.html"
 
 grep -v 'invisible' $file &&
-grep '#.*\[.*deriving.*(.*Eq.*).*\].*//.*Bar' $file
+grep '#.*\[.*derive.*(.*Eq.*).*\].*//.*Bar' $file
 
 exit $?
diff --git a/src/test/run-pass-fulldeps/macro-crate.rs b/src/test/run-pass-fulldeps/macro-crate.rs
index e9b712c914d..0f5e2cb3b6b 100644
--- a/src/test/run-pass-fulldeps/macro-crate.rs
+++ b/src/test/run-pass-fulldeps/macro-crate.rs
@@ -17,7 +17,7 @@
 extern crate macro_crate_test;
 
 #[into_foo]
-#[deriving(PartialEq, Clone, Show)]
+#[derive(PartialEq, Clone, Show)]
 fn foo() -> AFakeTypeThatHadBetterGoAway {}
 
 pub fn main() {
diff --git a/src/test/run-pass-fulldeps/quote-tokens.rs b/src/test/run-pass-fulldeps/quote-tokens.rs
index dc14e3c707c..e76c379177b 100644
--- a/src/test/run-pass-fulldeps/quote-tokens.rs
+++ b/src/test/run-pass-fulldeps/quote-tokens.rs
@@ -33,7 +33,7 @@ fn syntax_extension(cx: &ExtCtxt) {
     let _g: P<syntax::ast::Expr> = quote_expr!(cx, true);
     let _h: P<syntax::ast::Expr> = quote_expr!(cx, 'a');
 
-    let i: Option<P<syntax::ast::Item>> = quote_item!(cx, #[deriving(Eq)] struct Foo; );
+    let i: Option<P<syntax::ast::Item>> = quote_item!(cx, #[derive(Eq)] struct Foo; );
     assert!(i.is_some());
 
     let _j: P<syntax::ast::Method> = quote_method!(cx, fn foo(&self) {});
diff --git a/src/test/run-pass/assert-eq-macro-success.rs b/src/test/run-pass/assert-eq-macro-success.rs
index 49a374f343c..3da245efd79 100644
--- a/src/test/run-pass/assert-eq-macro-success.rs
+++ b/src/test/run-pass/assert-eq-macro-success.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Point { x : int }
 
 pub fn main() {
diff --git a/src/test/run-pass/auto-encode.rs b/src/test/run-pass/auto-encode.rs
index 3fc2ed5468a..24df95ffd3c 100644
--- a/src/test/run-pass/auto-encode.rs
+++ b/src/test/run-pass/auto-encode.rs
@@ -41,7 +41,7 @@ fn test_rbml<'a, 'b, A:
     assert!(*a1 == a2);
 }
 
-#[deriving(Decodable, Encodable)]
+#[derive(Decodable, Encodable)]
 enum Expr {
     Val(uint),
     Plus(@Expr, @Expr),
@@ -108,26 +108,26 @@ impl cmp::Eq for CLike {
     fn ne(&self, other: &CLike) -> bool { !self.eq(other) }
 }
 
-#[deriving(Decodable, Encodable, Eq)]
+#[derive(Decodable, Encodable, Eq)]
 struct Spanned<T> {
     lo: uint,
     hi: uint,
     node: T,
 }
 
-#[deriving(Decodable, Encodable)]
+#[derive(Decodable, Encodable)]
 struct SomeStruct { v: Vec<uint> }
 
-#[deriving(Decodable, Encodable)]
+#[derive(Decodable, Encodable)]
 struct Point {x: uint, y: uint}
 
-#[deriving(Decodable, Encodable)]
+#[derive(Decodable, Encodable)]
 enum Quark<T> {
     Top(T),
     Bottom(T)
 }
 
-#[deriving(Decodable, Encodable)]
+#[derive(Decodable, Encodable)]
 enum CLike { A, B, C }
 
 pub fn main() {
diff --git a/src/test/run-pass/auto-instantiate.rs b/src/test/run-pass/auto-instantiate.rs
index 6195c259414..3c1e1f76580 100644
--- a/src/test/run-pass/auto-instantiate.rs
+++ b/src/test/run-pass/auto-instantiate.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Pair<T, U> { a: T, b: U }
 struct Triple { x: int, y: int, z: int }
 
diff --git a/src/test/run-pass/binops.rs b/src/test/run-pass/binops.rs
index 3997c5d3d29..dc92910c927 100644
--- a/src/test/run-pass/binops.rs
+++ b/src/test/run-pass/binops.rs
@@ -59,7 +59,7 @@ fn test_ptr() {
     }
 }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct p {
   x: int,
   y: int,
diff --git a/src/test/run-pass/borrowck-mut-uniq.rs b/src/test/run-pass/borrowck-mut-uniq.rs
index e644c49366d..176c7277efd 100644
--- a/src/test/run-pass/borrowck-mut-uniq.rs
+++ b/src/test/run-pass/borrowck-mut-uniq.rs
@@ -10,7 +10,7 @@
 
 use std::mem::swap;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Ints {sum: Box<int>, values: Vec<int> }
 
 fn add_int(x: &mut Ints, v: int) {
diff --git a/src/test/run-pass/builtin-superkinds-capabilities-xc.rs b/src/test/run-pass/builtin-superkinds-capabilities-xc.rs
index c2b874c61a7..efea4ffe9be 100644
--- a/src/test/run-pass/builtin-superkinds-capabilities-xc.rs
+++ b/src/test/run-pass/builtin-superkinds-capabilities-xc.rs
@@ -17,7 +17,7 @@
 extern crate trait_superkinds_in_metadata;
 use trait_superkinds_in_metadata::{RequiresRequiresShareAndSend, RequiresShare};
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct X<T>(T);
 
 impl <T: Sync> RequiresShare for X<T> { }
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 2d5fe2e86df..ecbbb3199b9 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
@@ -47,7 +47,7 @@ fn dog() -> dog {
     }
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct cat {
   meows: uint,
 
diff --git a/src/test/run-pass/class-impl-very-parameterized-trait.rs b/src/test/run-pass/class-impl-very-parameterized-trait.rs
index 2a9756d7714..629cf7c4ef7 100644
--- a/src/test/run-pass/class-impl-very-parameterized-trait.rs
+++ b/src/test/run-pass/class-impl-very-parameterized-trait.rs
@@ -11,7 +11,7 @@
 
 use std::cmp;
 
-#[deriving(Show)]
+#[derive(Show)]
 enum cat_type { tuxedo, tabby, tortoiseshell }
 
 impl Copy for cat_type {}
diff --git a/src/test/run-pass/class-implement-traits.rs b/src/test/run-pass/class-implement-traits.rs
index 034ce8626d0..cf08cd2709d 100644
--- a/src/test/run-pass/class-implement-traits.rs
+++ b/src/test/run-pass/class-implement-traits.rs
@@ -13,7 +13,7 @@ trait noisy {
     fn speak(&mut self);
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct cat {
     meows : uint,
 
diff --git a/src/test/run-pass/coerce-to-closure-and-proc.rs b/src/test/run-pass/coerce-to-closure-and-proc.rs
index 5a1b401177e..413717d9226 100644
--- a/src/test/run-pass/coerce-to-closure-and-proc.rs
+++ b/src/test/run-pass/coerce-to-closure-and-proc.rs
@@ -14,10 +14,10 @@ fn id<T>(x: T) -> T {
     x
 }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo<T>(T);
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 enum Bar<T> {
     Baz(T)
 }
diff --git a/src/test/run-pass/coherence-where-clause.rs b/src/test/run-pass/coherence-where-clause.rs
index e0d9d569d17..99c475b7207 100644
--- a/src/test/run-pass/coherence-where-clause.rs
+++ b/src/test/run-pass/coherence-where-clause.rs
@@ -23,7 +23,7 @@ impl<T> MyTrait for T
     }
 }
 
-#[deriving(Clone,Show,PartialEq)]
+#[derive(Clone,Show,PartialEq)]
 struct MyType {
     dummy: uint
 }
diff --git a/src/test/run-pass/const-struct.rs b/src/test/run-pass/const-struct.rs
index f2db1191569..b2073a8ff28 100644
--- a/src/test/run-pass/const-struct.rs
+++ b/src/test/run-pass/const-struct.rs
@@ -10,7 +10,7 @@
 
 use std::cmp;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct foo { a: int, b: int, c: int }
 
 impl cmp::PartialEq for foo {
diff --git a/src/test/run-pass/deriving-bounds.rs b/src/test/run-pass/deriving-bounds.rs
index 0bf27cfbb24..6869a60838c 100644
--- a/src/test/run-pass/deriving-bounds.rs
+++ b/src/test/run-pass/deriving-bounds.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Copy)]
+#[derive(Copy)]
 struct Test;
 
 pub fn main() {}
diff --git a/src/test/run-pass/deriving-clone-enum.rs b/src/test/run-pass/deriving-clone-enum.rs
index 875dfa42b59..ce34852a917 100644
--- a/src/test/run-pass/deriving-clone-enum.rs
+++ b/src/test/run-pass/deriving-clone-enum.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum E {
     A,
     B(()),
diff --git a/src/test/run-pass/deriving-clone-generic-enum.rs b/src/test/run-pass/deriving-clone-generic-enum.rs
index 34892fb0a3b..e8e65dcb8a9 100644
--- a/src/test/run-pass/deriving-clone-generic-enum.rs
+++ b/src/test/run-pass/deriving-clone-generic-enum.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum E<T,U> {
     A(T),
     B(T,U),
diff --git a/src/test/run-pass/deriving-clone-generic-struct.rs b/src/test/run-pass/deriving-clone-generic-struct.rs
index 8b5da617e28..d340fe9d3fb 100644
--- a/src/test/run-pass/deriving-clone-generic-struct.rs
+++ b/src/test/run-pass/deriving-clone-generic-struct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct S<T> {
     foo: (),
     bar: (),
diff --git a/src/test/run-pass/deriving-clone-generic-tuple-struct.rs b/src/test/run-pass/deriving-clone-generic-tuple-struct.rs
index 3fbef5d5a76..ecf1fdc6e5f 100644
--- a/src/test/run-pass/deriving-clone-generic-tuple-struct.rs
+++ b/src/test/run-pass/deriving-clone-generic-tuple-struct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct S<T>(T, ());
 
 pub fn main() {
diff --git a/src/test/run-pass/deriving-clone-struct.rs b/src/test/run-pass/deriving-clone-struct.rs
index 8e0afad2189..51e615b3702 100644
--- a/src/test/run-pass/deriving-clone-struct.rs
+++ b/src/test/run-pass/deriving-clone-struct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct S {
     _int: int,
     _i8: i8,
diff --git a/src/test/run-pass/deriving-clone-tuple-struct.rs b/src/test/run-pass/deriving-clone-tuple-struct.rs
index 1e5c8c80f8c..e2784c26dbb 100644
--- a/src/test/run-pass/deriving-clone-tuple-struct.rs
+++ b/src/test/run-pass/deriving-clone-tuple-struct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct S((), ());
 
 pub fn main() {}
diff --git a/src/test/run-pass/deriving-cmp-generic-enum.rs b/src/test/run-pass/deriving-cmp-generic-enum.rs
index e8b4eec2668..04cb3b7c076 100644
--- a/src/test/run-pass/deriving-cmp-generic-enum.rs
+++ b/src/test/run-pass/deriving-cmp-generic-enum.rs
@@ -10,7 +10,7 @@
 
 // no-pretty-expanded FIXME #15189
 
-#[deriving(PartialEq, Eq, PartialOrd, Ord)]
+#[derive(PartialEq, Eq, PartialOrd, Ord)]
 enum E<T> {
     E0,
     E1(T),
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 0c70102d57e..dbac7fa5bca 100644
--- a/src/test/run-pass/deriving-cmp-generic-struct-enum.rs
+++ b/src/test/run-pass/deriving-cmp-generic-struct-enum.rs
@@ -10,7 +10,7 @@
 
 // no-pretty-expanded FIXME #15189
 
-#[deriving(PartialEq, Eq, PartialOrd, Ord)]
+#[derive(PartialEq, Eq, PartialOrd, Ord)]
 enum ES<T> {
     ES1 { x: T },
     ES2 { x: T, y: T }
diff --git a/src/test/run-pass/deriving-cmp-generic-struct.rs b/src/test/run-pass/deriving-cmp-generic-struct.rs
index d1610978e2e..cd2cbb2d0a9 100644
--- a/src/test/run-pass/deriving-cmp-generic-struct.rs
+++ b/src/test/run-pass/deriving-cmp-generic-struct.rs
@@ -10,7 +10,7 @@
 
 // no-pretty-expanded FIXME #15189
 
-#[deriving(PartialEq, Eq, PartialOrd, Ord)]
+#[derive(PartialEq, Eq, PartialOrd, Ord)]
 struct S<T> {
     x: T,
     y: T
diff --git a/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs b/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs
index 25f62e85ba6..0a45b73755e 100644
--- a/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs
+++ b/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs
@@ -10,7 +10,7 @@
 
 // no-pretty-expanded FIXME #15189
 
-#[deriving(PartialEq, Eq, PartialOrd, Ord)]
+#[derive(PartialEq, Eq, PartialOrd, Ord)]
 struct TS<T>(T,T);
 
 
diff --git a/src/test/run-pass/deriving-cmp-shortcircuit.rs b/src/test/run-pass/deriving-cmp-shortcircuit.rs
index b68d8058381..0a139667c0e 100644
--- a/src/test/run-pass/deriving-cmp-shortcircuit.rs
+++ b/src/test/run-pass/deriving-cmp-shortcircuit.rs
@@ -27,7 +27,7 @@ impl Ord for FailCmp {
     fn cmp(&self, _: &FailCmp) -> Ordering { panic!("cmp") }
 }
 
-#[deriving(PartialEq,PartialOrd,Eq,Ord)]
+#[derive(PartialEq,PartialOrd,Eq,Ord)]
 struct ShortCircuit {
     x: int,
     y: FailCmp
diff --git a/src/test/run-pass/deriving-default-box.rs b/src/test/run-pass/deriving-default-box.rs
index aeef55fbbac..aea6ebd2597 100644
--- a/src/test/run-pass/deriving-default-box.rs
+++ b/src/test/run-pass/deriving-default-box.rs
@@ -10,7 +10,7 @@
 
 use std::default::Default;
 
-#[deriving(Default)]
+#[derive(Default)]
 struct A {
     foo: Box<[bool]>,
 }
diff --git a/src/test/run-pass/deriving-encodable-decodable-box.rs b/src/test/run-pass/deriving-encodable-decodable-box.rs
index e21f64cd74c..b0c5d88c48e 100644
--- a/src/test/run-pass/deriving-encodable-decodable-box.rs
+++ b/src/test/run-pass/deriving-encodable-decodable-box.rs
@@ -13,7 +13,7 @@ extern crate serialize;
 use serialize::{Encodable, Decodable};
 use serialize::json;
 
-#[deriving(Encodable, Decodable)]
+#[derive(Encodable, Decodable)]
 struct A {
     foo: Box<[bool]>,
 }
diff --git a/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs b/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs
index a846f852694..1176cc303b7 100644
--- a/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs
+++ b/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 // This briefly tests the capability of `Cell` and `RefCell` to implement the
-// `Encodable` and `Decodable` traits via `#[deriving(Encodable, Decodable)]`
+// `Encodable` and `Decodable` traits via `#[derive(Encodable, Decodable)]`
 
 extern crate serialize;
 
@@ -17,12 +17,12 @@ use std::cell::{Cell, RefCell};
 use serialize::{Encodable, Decodable};
 use serialize::json;
 
-#[deriving(Encodable, Decodable)]
+#[derive(Encodable, Decodable)]
 struct A {
     baz: int
 }
 
-#[deriving(Encodable, Decodable)]
+#[derive(Encodable, Decodable)]
 struct B {
     foo: Cell<bool>,
     bar: RefCell<A>,
diff --git a/src/test/run-pass/deriving-encodable-decodable.rs b/src/test/run-pass/deriving-encodable-decodable.rs
index 7bee4bc7b0d..2466d0adf7b 100644
--- a/src/test/run-pass/deriving-encodable-decodable.rs
+++ b/src/test/run-pass/deriving-encodable-decodable.rs
@@ -24,20 +24,20 @@ use rbml::writer::Encoder;
 use rbml::reader::Decoder;
 use serialize::{Encodable, Decodable};
 
-#[deriving(Encodable, Decodable, Eq, Rand)]
+#[derive(Encodable, Decodable, Eq, Rand)]
 struct A;
-#[deriving(Encodable, Decodable, Eq, Rand)]
+#[derive(Encodable, Decodable, Eq, Rand)]
 struct B(int);
-#[deriving(Encodable, Decodable, Eq, Rand)]
+#[derive(Encodable, Decodable, Eq, Rand)]
 struct C(int, int, uint);
 
-#[deriving(Encodable, Decodable, Eq, Rand)]
+#[derive(Encodable, Decodable, Eq, Rand)]
 struct D {
     a: int,
     b: uint,
 }
 
-#[deriving(Encodable, Decodable, Eq, Rand)]
+#[derive(Encodable, Decodable, Eq, Rand)]
 enum E {
     E1,
     E2(uint),
@@ -45,10 +45,10 @@ enum E {
     E4{ x: uint },
 }
 
-#[deriving(Encodable, Decodable, Eq, Rand)]
+#[derive(Encodable, Decodable, Eq, Rand)]
 enum F { F1 }
 
-#[deriving(Encodable, Decodable, Eq, Rand)]
+#[derive(Encodable, Decodable, Eq, Rand)]
 struct G<T> {
     t: T
 }
diff --git a/src/test/run-pass/deriving-enum-single-variant.rs b/src/test/run-pass/deriving-enum-single-variant.rs
index a9bdcf2734b..7ce7c5fd411 100644
--- a/src/test/run-pass/deriving-enum-single-variant.rs
+++ b/src/test/run-pass/deriving-enum-single-variant.rs
@@ -10,7 +10,7 @@
 
 pub type task_id = int;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 pub enum Task {
     TaskHandle(task_id)
 }
diff --git a/src/test/run-pass/deriving-eq-ord-boxed-slice.rs b/src/test/run-pass/deriving-eq-ord-boxed-slice.rs
index b16c2ccb46e..6701a321339 100644
--- a/src/test/run-pass/deriving-eq-ord-boxed-slice.rs
+++ b/src/test/run-pass/deriving-eq-ord-boxed-slice.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, PartialOrd, Eq, Ord)]
+#[derive(PartialEq, PartialOrd, Eq, Ord)]
 struct Foo(Box<[u8]>);
 
 pub fn main() {
diff --git a/src/test/run-pass/deriving-global.rs b/src/test/run-pass/deriving-global.rs
index 2322675661c..80a6829986d 100644
--- a/src/test/run-pass/deriving-global.rs
+++ b/src/test/run-pass/deriving-global.rs
@@ -15,21 +15,21 @@ mod submod {
     // if any of these are implemented without global calls for any
     // function calls, then being in a submodule will (correctly)
     // cause errors about unrecognised module `std` (or `extra`)
-    #[deriving(PartialEq, PartialOrd, Eq, Ord,
+    #[derive(PartialEq, PartialOrd, Eq, Ord,
                Hash,
                Clone,
                Show, Rand,
                Encodable, Decodable)]
     enum A { A1(uint), A2(int) }
 
-    #[deriving(PartialEq, PartialOrd, Eq, Ord,
+    #[derive(PartialEq, PartialOrd, Eq, Ord,
                Hash,
                Clone,
                Show, Rand,
                Encodable, Decodable)]
     struct B { x: uint, y: int }
 
-    #[deriving(PartialEq, PartialOrd, Eq, Ord,
+    #[derive(PartialEq, PartialOrd, Eq, Ord,
                Hash,
                Clone,
                Show, Rand,
diff --git a/src/test/run-pass/deriving-hash.rs b/src/test/run-pass/deriving-hash.rs
index a7211e77cd0..ddad703d7df 100644
--- a/src/test/run-pass/deriving-hash.rs
+++ b/src/test/run-pass/deriving-hash.rs
@@ -12,7 +12,7 @@
 use std::hash;
 use std::hash::Hash;
 
-#[deriving(Hash)]
+#[derive(Hash)]
 struct Person {
     id: uint,
     name: String,
diff --git a/src/test/run-pass/deriving-in-fn.rs b/src/test/run-pass/deriving-in-fn.rs
index baa036ee039..d191bad10ea 100644
--- a/src/test/run-pass/deriving-in-fn.rs
+++ b/src/test/run-pass/deriving-in-fn.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 pub fn main() {
-    #[deriving(Show)]
+    #[derive(Show)]
     struct Foo {
         foo: int,
     }
diff --git a/src/test/run-pass/deriving-in-macro.rs b/src/test/run-pass/deriving-in-macro.rs
index 52b5c040d86..97f6ee341a7 100644
--- a/src/test/run-pass/deriving-in-macro.rs
+++ b/src/test/run-pass/deriving-in-macro.rs
@@ -13,7 +13,7 @@
 macro_rules! define_vec (
     () => (
         mod foo {
-            #[deriving(PartialEq)]
+            #[derive(PartialEq)]
             pub struct bar;
         }
     )
diff --git a/src/test/run-pass/deriving-meta-empty-trait-list.rs b/src/test/run-pass/deriving-meta-empty-trait-list.rs
index e851ff566d5..5b55ef63335 100644
--- a/src/test/run-pass/deriving-meta-empty-trait-list.rs
+++ b/src/test/run-pass/deriving-meta-empty-trait-list.rs
@@ -11,10 +11,10 @@
 // except according to those terms.
 
 
-#[deriving]   //~ WARNING empty trait list in `deriving`
+#[derive]   //~ WARNING empty trait list in `derive`
 struct Foo;
 
-#[deriving()] //~ WARNING empty trait list in `deriving`
+#[derive()] //~ WARNING empty trait list in `derive`
 struct Bar;
 
 pub fn main() {}
diff --git a/src/test/run-pass/deriving-meta-multiple.rs b/src/test/run-pass/deriving-meta-multiple.rs
index 1f2cd0425d3..c435a1f344d 100644
--- a/src/test/run-pass/deriving-meta-multiple.rs
+++ b/src/test/run-pass/deriving-meta-multiple.rs
@@ -12,9 +12,9 @@
 use std::hash::hash;
 
 // testing multiple separate deriving attributes
-#[deriving(PartialEq)]
-#[deriving(Clone)]
-#[deriving(Hash)]
+#[derive(PartialEq)]
+#[derive(Clone)]
+#[derive(Hash)]
 struct Foo {
     bar: uint,
     baz: int
diff --git a/src/test/run-pass/deriving-meta.rs b/src/test/run-pass/deriving-meta.rs
index 61df7bf5088..54dc2b97b77 100644
--- a/src/test/run-pass/deriving-meta.rs
+++ b/src/test/run-pass/deriving-meta.rs
@@ -11,7 +11,7 @@
 
 use std::hash::hash;
 
-#[deriving(PartialEq, Clone, Hash)]
+#[derive(PartialEq, Clone, Hash)]
 struct Foo {
     bar: uint,
     baz: int
diff --git a/src/test/run-pass/deriving-primitive.rs b/src/test/run-pass/deriving-primitive.rs
index 438baef62e5..7ea9f6f19a0 100644
--- a/src/test/run-pass/deriving-primitive.rs
+++ b/src/test/run-pass/deriving-primitive.rs
@@ -11,7 +11,7 @@
 use std::num::FromPrimitive;
 use std::int;
 
-#[deriving(PartialEq, FromPrimitive, Show)]
+#[derive(PartialEq, FromPrimitive, Show)]
 enum A {
     Foo = int::MAX,
     Bar = 1,
diff --git a/src/test/run-pass/deriving-rand.rs b/src/test/run-pass/deriving-rand.rs
index 544c0052433..f1396efedfe 100644
--- a/src/test/run-pass/deriving-rand.rs
+++ b/src/test/run-pass/deriving-rand.rs
@@ -10,19 +10,19 @@
 
 use std::rand;
 
-#[deriving(Rand)]
+#[derive(Rand)]
 struct A;
 
-#[deriving(Rand)]
+#[derive(Rand)]
 struct B(int, int);
 
-#[deriving(Rand)]
+#[derive(Rand)]
 struct C {
     x: f64,
     y: (u8, u8)
 }
 
-#[deriving(Rand)]
+#[derive(Rand)]
 enum D {
     D0,
     D1(uint),
diff --git a/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs b/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs
index d63c264479a..3277435e485 100644
--- a/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs
+++ b/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs
@@ -12,7 +12,7 @@
 
 use std::cmp::Ordering::{Less,Equal,Greater};
 
-#[deriving(Eq,Ord)]
+#[derive(Eq,Ord)]
 struct A<'a> {
     x: &'a int
 }
diff --git a/src/test/run-pass/deriving-self-lifetime.rs b/src/test/run-pass/deriving-self-lifetime.rs
index 528c4f70baf..44609b6d653 100644
--- a/src/test/run-pass/deriving-self-lifetime.rs
+++ b/src/test/run-pass/deriving-self-lifetime.rs
@@ -10,7 +10,7 @@
 
 // ignore-test FIXME #11820: & is unreliable in deriving
 
-#[deriving(Eq,Ord)]
+#[derive(Eq,Ord)]
 struct A<'a> {
     x: &'a int
 }
diff --git a/src/test/run-pass/deriving-show-2.rs b/src/test/run-pass/deriving-show-2.rs
index df4bc1ae1d0..58faab7bfbe 100644
--- a/src/test/run-pass/deriving-show-2.rs
+++ b/src/test/run-pass/deriving-show-2.rs
@@ -10,25 +10,25 @@
 
 use std::fmt;
 
-#[deriving(Show)]
+#[derive(Show)]
 enum A {}
-#[deriving(Show)]
+#[derive(Show)]
 enum B { B1, B2, B3 }
-#[deriving(Show)]
+#[derive(Show)]
 enum C { C1(int), C2(B), C3(String) }
-#[deriving(Show)]
+#[derive(Show)]
 enum D { D1{ a: int } }
-#[deriving(Show)]
+#[derive(Show)]
 struct E;
-#[deriving(Show)]
+#[derive(Show)]
 struct F(int);
-#[deriving(Show)]
+#[derive(Show)]
 struct G(int, int);
-#[deriving(Show)]
+#[derive(Show)]
 struct H { a: int }
-#[deriving(Show)]
+#[derive(Show)]
 struct I { a: int, b: int }
-#[deriving(Show)]
+#[derive(Show)]
 struct J(Custom);
 
 struct Custom;
diff --git a/src/test/run-pass/deriving-show.rs b/src/test/run-pass/deriving-show.rs
index ccfaac8378f..f619c824d5e 100644
--- a/src/test/run-pass/deriving-show.rs
+++ b/src/test/run-pass/deriving-show.rs
@@ -10,16 +10,16 @@
 
 #![feature(macro_rules)]
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Unit;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Tuple(int, uint);
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Struct { x: int, y: uint }
 
-#[deriving(Show)]
+#[derive(Show)]
 enum Enum {
     Nullary,
     Variant(int, uint),
diff --git a/src/test/run-pass/deriving-via-extension-c-enum.rs b/src/test/run-pass/deriving-via-extension-c-enum.rs
index ebbf7972f9c..d6594290b23 100644
--- a/src/test/run-pass/deriving-via-extension-c-enum.rs
+++ b/src/test/run-pass/deriving-via-extension-c-enum.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 enum Foo {
     Bar,
     Baz,
diff --git a/src/test/run-pass/deriving-via-extension-enum.rs b/src/test/run-pass/deriving-via-extension-enum.rs
index 51aba88157a..5d009655fce 100644
--- a/src/test/run-pass/deriving-via-extension-enum.rs
+++ b/src/test/run-pass/deriving-via-extension-enum.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 enum Foo {
     Bar(int, int),
     Baz(f64, f64)
diff --git a/src/test/run-pass/deriving-via-extension-hash-enum.rs b/src/test/run-pass/deriving-via-extension-hash-enum.rs
index 778767cfcc1..10bd1b29444 100644
--- a/src/test/run-pass/deriving-via-extension-hash-enum.rs
+++ b/src/test/run-pass/deriving-via-extension-hash-enum.rs
@@ -9,13 +9,13 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Hash)]
+#[derive(Hash)]
 enum Foo {
     Bar(int, char),
     Baz(char, int)
 }
 
-#[deriving(Hash)]
+#[derive(Hash)]
 enum A {
     B,
     C,
diff --git a/src/test/run-pass/deriving-via-extension-hash-struct.rs b/src/test/run-pass/deriving-via-extension-hash-struct.rs
index a281c5156b6..19809def9a1 100644
--- a/src/test/run-pass/deriving-via-extension-hash-struct.rs
+++ b/src/test/run-pass/deriving-via-extension-hash-struct.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Hash)]
+#[derive(Hash)]
 struct Foo {
     x: int,
     y: int,
diff --git a/src/test/run-pass/deriving-via-extension-struct-empty.rs b/src/test/run-pass/deriving-via-extension-struct-empty.rs
index ab1a67f7e12..d3c1c468f7c 100644
--- a/src/test/run-pass/deriving-via-extension-struct-empty.rs
+++ b/src/test/run-pass/deriving-via-extension-struct-empty.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo;
 
 pub fn main() {
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 b091787b1ee..5e60818731b 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.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 enum S {
     X { x: int, y: int },
     Y
diff --git a/src/test/run-pass/deriving-via-extension-struct-tuple.rs b/src/test/run-pass/deriving-via-extension-struct-tuple.rs
index 8a6aa0fad93..a8a06244b20 100644
--- a/src/test/run-pass/deriving-via-extension-struct-tuple.rs
+++ b/src/test/run-pass/deriving-via-extension-struct-tuple.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo(int, int, String);
 
 pub fn main() {
diff --git a/src/test/run-pass/deriving-via-extension-struct.rs b/src/test/run-pass/deriving-via-extension-struct.rs
index 18d207d75d4..86a0ec15c83 100644
--- a/src/test/run-pass/deriving-via-extension-struct.rs
+++ b/src/test/run-pass/deriving-via-extension-struct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo {
     x: int,
     y: int,
diff --git a/src/test/run-pass/deriving-via-extension-type-params.rs b/src/test/run-pass/deriving-via-extension-type-params.rs
index a3151e0a8fa..266c51d1b66 100644
--- a/src/test/run-pass/deriving-via-extension-type-params.rs
+++ b/src/test/run-pass/deriving-via-extension-type-params.rs
@@ -9,7 +9,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Hash, Show)]
+#[derive(PartialEq, Hash, Show)]
 struct Foo<T> {
     x: int,
     y: T,
diff --git a/src/test/run-pass/deriving-zero.rs b/src/test/run-pass/deriving-zero.rs
index 88f3e5775b7..71f0acea0bf 100644
--- a/src/test/run-pass/deriving-zero.rs
+++ b/src/test/run-pass/deriving-zero.rs
@@ -11,7 +11,7 @@
 
 use std::num::Zero;
 
-#[deriving(Zero)]
+#[derive(Zero)]
 struct Vector2<T>(T, T);
 
 impl<T: Add<T, T>> Add<Vector2<T>, Vector2<T>> for Vector2<T> {
@@ -24,7 +24,7 @@ impl<T: Add<T, T>> Add<Vector2<T>, Vector2<T>> for Vector2<T> {
     }
 }
 
-#[deriving(Zero)]
+#[derive(Zero)]
 struct Vector3<T> {
     x: T, y: T, z: T,
 }
@@ -39,7 +39,7 @@ impl<T: Add<T, T>> Add<Vector3<T>, Vector3<T>> for Vector3<T> {
     }
 }
 
-#[deriving(Zero)]
+#[derive(Zero)]
 struct Matrix3x2<T> {
     x: Vector2<T>,
     y: Vector2<T>,
diff --git a/src/test/run-pass/drop-trait-enum.rs b/src/test/run-pass/drop-trait-enum.rs
index 24915d84e7e..16ad2b8e21a 100644
--- a/src/test/run-pass/drop-trait-enum.rs
+++ b/src/test/run-pass/drop-trait-enum.rs
@@ -10,7 +10,7 @@
 
 use std::task;
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 enum Message {
     Dropped,
     DestructorRan
diff --git a/src/test/run-pass/dst-struct-sole.rs b/src/test/run-pass/dst-struct-sole.rs
index 47547bb7e5a..c7f37da157f 100644
--- a/src/test/run-pass/dst-struct-sole.rs
+++ b/src/test/run-pass/dst-struct-sole.rs
@@ -30,7 +30,7 @@ fn foo2<T:ToBar>(x: &Fat<[T]>) {
     assert!(x.ptr[1].to_bar() == bar);
 }
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar;
 
 impl Copy for Bar {}
diff --git a/src/test/run-pass/dst-struct.rs b/src/test/run-pass/dst-struct.rs
index fb536904ac8..9c0e5a6f5c8 100644
--- a/src/test/run-pass/dst-struct.rs
+++ b/src/test/run-pass/dst-struct.rs
@@ -46,7 +46,7 @@ fn foo3(x: &Fat<Fat<[int]>>) {
 }
 
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar;
 
 impl Copy for Bar {}
diff --git a/src/test/run-pass/dst-trait.rs b/src/test/run-pass/dst-trait.rs
index abe55d78ac6..0b50609fddf 100644
--- a/src/test/run-pass/dst-trait.rs
+++ b/src/test/run-pass/dst-trait.rs
@@ -14,12 +14,12 @@ struct Fat<T: ?Sized> {
     ptr: T
 }
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar;
 
 impl Copy for Bar {}
 
-#[deriving(PartialEq,Eq)]
+#[derive(PartialEq,Eq)]
 struct Bar1 {
     f: int
 }
diff --git a/src/test/run-pass/empty-tag.rs b/src/test/run-pass/empty-tag.rs
index e5d11ac1adb..58eb4ce2f7a 100644
--- a/src/test/run-pass/empty-tag.rs
+++ b/src/test/run-pass/empty-tag.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 enum chan { chan_t, }
 
 impl Copy for chan {}
diff --git a/src/test/run-pass/enum-discrim-width-stuff.rs b/src/test/run-pass/enum-discrim-width-stuff.rs
index cf8e742947d..73abec89a2d 100644
--- a/src/test/run-pass/enum-discrim-width-stuff.rs
+++ b/src/test/run-pass/enum-discrim-width-stuff.rs
@@ -14,7 +14,7 @@ macro_rules! check {
     ($m:ident, $t:ty, $v:expr) => {{
         mod $m {
             use std::mem::size_of;
-            #[deriving(Show)]
+            #[derive(Show)]
             enum E {
                 V = $v,
                 A = 0
diff --git a/src/test/run-pass/eq-multidispatch.rs b/src/test/run-pass/eq-multidispatch.rs
index 018e8cddc71..31ed212db99 100644
--- a/src/test/run-pass/eq-multidispatch.rs
+++ b/src/test/run-pass/eq-multidispatch.rs
@@ -10,7 +10,7 @@
 
 #![feature(default_type_params)]
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Bar;
 struct Baz;
 struct Foo;
diff --git a/src/test/run-pass/explicit-self.rs b/src/test/run-pass/explicit-self.rs
index b13819717d7..8a67e40844a 100644
--- a/src/test/run-pass/explicit-self.rs
+++ b/src/test/run-pass/explicit-self.rs
@@ -40,12 +40,12 @@ fn select_based_on_unit_circle<'r, T>(
     shape.select(threshold, a, b)
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct thing {
     x: A
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct A {
     a: int
 }
diff --git a/src/test/run-pass/expr-block-generic.rs b/src/test/run-pass/expr-block-generic.rs
index 677914fd60e..f1363c42961 100644
--- a/src/test/run-pass/expr-block-generic.rs
+++ b/src/test/run-pass/expr-block-generic.rs
@@ -23,7 +23,7 @@ fn test_bool() {
     test_generic::<bool>(true, compare_bool);
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Pair {
     a: int,
     b: int,
diff --git a/src/test/run-pass/expr-if-generic.rs b/src/test/run-pass/expr-if-generic.rs
index b7408440404..d9300d0bc33 100644
--- a/src/test/run-pass/expr-if-generic.rs
+++ b/src/test/run-pass/expr-if-generic.rs
@@ -22,7 +22,7 @@ fn test_bool() {
     test_generic::<bool>(true, false, compare_bool);
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Pair {
     a: int,
     b: int,
diff --git a/src/test/run-pass/expr-if-struct.rs b/src/test/run-pass/expr-if-struct.rs
index c95ca3fff8c..62994068a9e 100644
--- a/src/test/run-pass/expr-if-struct.rs
+++ b/src/test/run-pass/expr-if-struct.rs
@@ -23,7 +23,7 @@ fn test_rec() {
     assert_eq!(rs.i, 100);
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 enum mood { happy, sad, }
 
 impl Copy for mood {}
diff --git a/src/test/run-pass/expr-match-generic.rs b/src/test/run-pass/expr-match-generic.rs
index c74caf4de4b..8e66827e019 100644
--- a/src/test/run-pass/expr-match-generic.rs
+++ b/src/test/run-pass/expr-match-generic.rs
@@ -21,7 +21,7 @@ fn test_bool() {
     test_generic::<bool>(true, compare_bool);
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Pair {
     a: int,
     b: int,
diff --git a/src/test/run-pass/expr-match-struct.rs b/src/test/run-pass/expr-match-struct.rs
index 83101a3d2cc..8512cf63cdd 100644
--- a/src/test/run-pass/expr-match-struct.rs
+++ b/src/test/run-pass/expr-match-struct.rs
@@ -22,7 +22,7 @@ fn test_rec() {
     assert_eq!(rs.i, 100);
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 enum mood { happy, sad, }
 
 impl Copy for mood {}
diff --git a/src/test/run-pass/extern-pass-TwoU16s.rs b/src/test/run-pass/extern-pass-TwoU16s.rs
index 2b80a404036..a38fe6d6d50 100644
--- a/src/test/run-pass/extern-pass-TwoU16s.rs
+++ b/src/test/run-pass/extern-pass-TwoU16s.rs
@@ -11,7 +11,7 @@
 // Test a foreign function that accepts and returns a struct
 // by value.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 pub struct TwoU16s {
     one: u16, two: u16
 }
diff --git a/src/test/run-pass/extern-pass-TwoU32s.rs b/src/test/run-pass/extern-pass-TwoU32s.rs
index be4998c86fd..30b035d56b6 100644
--- a/src/test/run-pass/extern-pass-TwoU32s.rs
+++ b/src/test/run-pass/extern-pass-TwoU32s.rs
@@ -11,7 +11,7 @@
 // Test a foreign function that accepts and returns a struct
 // by value.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 pub struct TwoU32s {
     one: u32, two: u32
 }
diff --git a/src/test/run-pass/extern-pass-TwoU64s.rs b/src/test/run-pass/extern-pass-TwoU64s.rs
index e8d91815bf9..8ca05f09a9c 100644
--- a/src/test/run-pass/extern-pass-TwoU64s.rs
+++ b/src/test/run-pass/extern-pass-TwoU64s.rs
@@ -11,7 +11,7 @@
 // Test a foreign function that accepts and returns a struct
 // by value.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 pub struct TwoU64s {
     one: u64, two: u64
 }
diff --git a/src/test/run-pass/extern-pass-TwoU8s.rs b/src/test/run-pass/extern-pass-TwoU8s.rs
index 7aa710df800..42a1ce78870 100644
--- a/src/test/run-pass/extern-pass-TwoU8s.rs
+++ b/src/test/run-pass/extern-pass-TwoU8s.rs
@@ -11,7 +11,7 @@
 // Test a foreign function that accepts and returns a struct
 // by value.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 pub struct TwoU8s {
     one: u8, two: u8
 }
diff --git a/src/test/run-pass/functional-struct-upd.rs b/src/test/run-pass/functional-struct-upd.rs
index a8d0c7d44fd..e2297661d65 100644
--- a/src/test/run-pass/functional-struct-upd.rs
+++ b/src/test/run-pass/functional-struct-upd.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Foo {
     x: int,
     y: int
diff --git a/src/test/run-pass/generic-default-type-params.rs b/src/test/run-pass/generic-default-type-params.rs
index b7706088b62..e88801f14ed 100644
--- a/src/test/run-pass/generic-default-type-params.rs
+++ b/src/test/run-pass/generic-default-type-params.rs
@@ -49,10 +49,10 @@ fn default_foo(x: Foo) {
     assert_eq!(x.baz(), (1, 'a'));
 }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct BazHelper<T>(T);
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 // Ensure that we can use previous type parameters in defaults.
 struct Baz<T, U = BazHelper<T>, V = Option<U>>(T, U, V);
 
diff --git a/src/test/run-pass/generic-derived-type.rs b/src/test/run-pass/generic-derived-type.rs
index 177455515dd..0db03b46748 100644
--- a/src/test/run-pass/generic-derived-type.rs
+++ b/src/test/run-pass/generic-derived-type.rs
@@ -10,7 +10,7 @@
 
 fn g<X>(x: X) -> X { return x; }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Pair<T> {
     a: T,
     b: T
diff --git a/src/test/run-pass/hrtb-opt-in-copy.rs b/src/test/run-pass/hrtb-opt-in-copy.rs
index b6bba363e72..0616a7b21b5 100644
--- a/src/test/run-pass/hrtb-opt-in-copy.rs
+++ b/src/test/run-pass/hrtb-opt-in-copy.rs
@@ -20,7 +20,7 @@
 
 use std::kinds::marker;
 
-#[deriving(Copy)]
+#[derive(Copy)]
 struct Foo<T> { x: T }
 
 type Ty<'tcx> = &'tcx TyS<'tcx>;
diff --git a/src/test/run-pass/issue-10396.rs b/src/test/run-pass/issue-10396.rs
index ce04f188e34..ea311e6e32c 100644
--- a/src/test/run-pass/issue-10396.rs
+++ b/src/test/run-pass/issue-10396.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 enum Foo<'s> {
     V(&'s str)
 }
diff --git a/src/test/run-pass/issue-11552.rs b/src/test/run-pass/issue-11552.rs
index f7223ae5d2d..92862961aca 100644
--- a/src/test/run-pass/issue-11552.rs
+++ b/src/test/run-pass/issue-11552.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum Noun
 {
     Atom(int),
diff --git a/src/test/run-pass/issue-11881.rs b/src/test/run-pass/issue-11881.rs
index 8de847bfa33..9008e8468f4 100644
--- a/src/test/run-pass/issue-11881.rs
+++ b/src/test/run-pass/issue-11881.rs
@@ -21,12 +21,12 @@ use serialize::json;
 use rbml::writer;
 use rbml::io::SeekableMemWriter;
 
-#[deriving(Encodable)]
+#[derive(Encodable)]
 struct Foo {
     baz: bool,
 }
 
-#[deriving(Encodable)]
+#[derive(Encodable)]
 struct Bar {
     froboz: uint,
 }
diff --git a/src/test/run-pass/issue-12860.rs b/src/test/run-pass/issue-12860.rs
index 1caa04ae0b1..8a95723c735 100644
--- a/src/test/run-pass/issue-12860.rs
+++ b/src/test/run-pass/issue-12860.rs
@@ -13,7 +13,7 @@ extern crate collections;
 
 use std::collections::HashSet;
 
-#[deriving(PartialEq, Eq, Hash)]
+#[derive(PartialEq, Eq, Hash)]
 struct XYZ {
     x: int,
     y: int,
diff --git a/src/test/run-pass/issue-13264.rs b/src/test/run-pass/issue-13264.rs
index 06ab67f2f3e..c416d30f776 100644
--- a/src/test/run-pass/issue-13264.rs
+++ b/src/test/run-pass/issue-13264.rs
@@ -18,7 +18,7 @@ impl Deref<JSRef> for Root {
     }
 }
 
-#[deriving(Copy)]
+#[derive(Copy)]
 struct JSRef {
     node: *const Node
 }
diff --git a/src/test/run-pass/issue-13434.rs b/src/test/run-pass/issue-13434.rs
index ac7a55ee405..e223feede02 100644
--- a/src/test/run-pass/issue-13434.rs
+++ b/src/test/run-pass/issue-13434.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct MyStruct;
 
 trait Repro {
diff --git a/src/test/run-pass/issue-14021.rs b/src/test/run-pass/issue-14021.rs
index a55cded87e5..612ed6b70b4 100644
--- a/src/test/run-pass/issue-14021.rs
+++ b/src/test/run-pass/issue-14021.rs
@@ -14,7 +14,7 @@ extern crate serialize;
 use serialize::{Encodable, Decodable};
 use serialize::json;
 
-#[deriving(Encodable, Decodable, PartialEq, Show)]
+#[derive(Encodable, Decodable, PartialEq, Show)]
 struct UnitLikeStruct;
 
 pub fn main() {
diff --git a/src/test/run-pass/issue-14399.rs b/src/test/run-pass/issue-14399.rs
index 4c84d0fcaf0..bb0fe6a87ab 100644
--- a/src/test/run-pass/issue-14399.rs
+++ b/src/test/run-pass/issue-14399.rs
@@ -13,7 +13,7 @@
 // value was coerced to a trait object. (v.clone() returns Box<B1>
 // which is coerced to Box<A>).
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct B1;
 
 trait A {}
diff --git a/src/test/run-pass/issue-15689-1.rs b/src/test/run-pass/issue-15689-1.rs
index 6cb1d4a14f5..06e9e652ed2 100644
--- a/src/test/run-pass/issue-15689-1.rs
+++ b/src/test/run-pass/issue-15689-1.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 enum Test<'a> {
     Slice(&'a int)
 }
diff --git a/src/test/run-pass/issue-15689-2.rs b/src/test/run-pass/issue-15689-2.rs
index 026122d1259..8da82c498b0 100644
--- a/src/test/run-pass/issue-15689-2.rs
+++ b/src/test/run-pass/issue-15689-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum Test<'a> {
     Slice(&'a int)
 }
diff --git a/src/test/run-pass/issue-15763.rs b/src/test/run-pass/issue-15763.rs
index 0c09e456930..48fdcb09080 100644
--- a/src/test/run-pass/issue-15763.rs
+++ b/src/test/run-pass/issue-15763.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Bar {
     x: int
 }
@@ -19,7 +19,7 @@ impl Drop for Bar {
     }
 }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo {
     x: Bar,
     a: int
diff --git a/src/test/run-pass/issue-18738.rs b/src/test/run-pass/issue-18738.rs
index 35bd68d803a..30ad827c697 100644
--- a/src/test/run-pass/issue-18738.rs
+++ b/src/test/run-pass/issue-18738.rs
@@ -8,18 +8,18 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Eq, PartialEq, PartialOrd, Ord)]
+#[derive(Eq, PartialEq, PartialOrd, Ord)]
 enum Test<'a> {
     Int(&'a int),
     Slice(&'a [u8]),
 }
 
-#[deriving(Eq, PartialEq, PartialOrd, Ord)]
+#[derive(Eq, PartialEq, PartialOrd, Ord)]
 struct Version {
     vendor_info: &'static str
 }
 
-#[deriving(Eq, PartialEq, PartialOrd, Ord)]
+#[derive(Eq, PartialEq, PartialOrd, Ord)]
 struct Foo(&'static str);
 
 fn main() {}
diff --git a/src/test/run-pass/issue-19037.rs b/src/test/run-pass/issue-19037.rs
index a6b5f4b8744..ac181c8db71 100644
--- a/src/test/run-pass/issue-19037.rs
+++ b/src/test/run-pass/issue-19037.rs
@@ -10,7 +10,7 @@
 
 struct Str([u8]);
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct CharSplits<'a, Sep> {
     string: &'a Str,
     sep: Sep,
diff --git a/src/test/run-pass/issue-19135.rs b/src/test/run-pass/issue-19135.rs
index 604442d1506..b9d0a9a2988 100644
--- a/src/test/run-pass/issue-19135.rs
+++ b/src/test/run-pass/issue-19135.rs
@@ -10,7 +10,7 @@
 
 #![feature(unboxed_closures)]
 
-#[deriving(Show)]
+#[derive(Show)]
 struct LifetimeStruct<'a>;
 
 fn main() {
diff --git a/src/test/run-pass/issue-19358.rs b/src/test/run-pass/issue-19358.rs
index e4c190f4116..86687fccd61 100644
--- a/src/test/run-pass/issue-19358.rs
+++ b/src/test/run-pass/issue-19358.rs
@@ -10,12 +10,12 @@
 
 trait Trait {}
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Foo<T: Trait> {
     foo: T,
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Bar<T> where T: Trait {
     bar: T,
 }
diff --git a/src/test/run-pass/issue-2718.rs b/src/test/run-pass/issue-2718.rs
index d949cab97c2..2a4ca5b4210 100644
--- a/src/test/run-pass/issue-2718.rs
+++ b/src/test/run-pass/issue-2718.rs
@@ -31,7 +31,7 @@ pub mod pipes {
         payload: Option<T>
     }
 
-    #[deriving(PartialEq, Show)]
+    #[derive(PartialEq, Show)]
     #[repr(int)]
     pub enum state {
         empty,
diff --git a/src/test/run-pass/issue-3556.rs b/src/test/run-pass/issue-3556.rs
index 028081888c3..e004c24da13 100644
--- a/src/test/run-pass/issue-3556.rs
+++ b/src/test/run-pass/issue-3556.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(Show)]
+#[derive(Show)]
 enum Token {
     Text(String),
     ETag(Vec<String>, String),
diff --git a/src/test/run-pass/issue-3794.rs b/src/test/run-pass/issue-3794.rs
index f32564e8b75..4508bc5771c 100644
--- a/src/test/run-pass/issue-3794.rs
+++ b/src/test/run-pass/issue-3794.rs
@@ -12,7 +12,7 @@ trait T {
     fn print(&self);
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct S {
     s: int,
 }
diff --git a/src/test/run-pass/issue-3935.rs b/src/test/run-pass/issue-3935.rs
index e616c784f4d..f534f744a20 100644
--- a/src/test/run-pass/issue-3935.rs
+++ b/src/test/run-pass/issue-3935.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct Bike {
     name: String,
 }
diff --git a/src/test/run-pass/issue-4252.rs b/src/test/run-pass/issue-4252.rs
index 04b1cbf577d..6ed35e6bc23 100644
--- a/src/test/run-pass/issue-4252.rs
+++ b/src/test/run-pass/issue-4252.rs
@@ -17,10 +17,10 @@ trait X {
     }
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Y(int);
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Z<T> {
     x: T
 }
diff --git a/src/test/run-pass/issue-5008-borrowed-traitobject-method-call.rs b/src/test/run-pass/issue-5008-borrowed-traitobject-method-call.rs
index 5e7e7503f64..90900ca46ce 100644
--- a/src/test/run-pass/issue-5008-borrowed-traitobject-method-call.rs
+++ b/src/test/run-pass/issue-5008-borrowed-traitobject-method-call.rs
@@ -19,7 +19,7 @@ trait Debuggable {
     fn debug_name(&self) -> String;
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Thing {
     name: String,
 }
diff --git a/src/test/run-pass/issue-6341.rs b/src/test/run-pass/issue-6341.rs
index e82448a4420..6e49c043566 100644
--- a/src/test/run-pass/issue-6341.rs
+++ b/src/test/run-pass/issue-6341.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct A { x: uint }
 
 impl Drop for A {
diff --git a/src/test/run-pass/issue-7563.rs b/src/test/run-pass/issue-7563.rs
index 73697b2bdb8..4d217fbf335 100644
--- a/src/test/run-pass/issue-7563.rs
+++ b/src/test/run-pass/issue-7563.rs
@@ -12,9 +12,9 @@ trait IDummy {
     fn do_nothing(&self);
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct A { a: int }
-#[deriving(Show)]
+#[derive(Show)]
 struct B<'a> { b: int, pa: &'a A }
 
     impl IDummy for A {
diff --git a/src/test/run-pass/log-knows-the-names-of-variants-in-std.rs b/src/test/run-pass/log-knows-the-names-of-variants-in-std.rs
index 165561e5256..bffa86a2c62 100644
--- a/src/test/run-pass/log-knows-the-names-of-variants-in-std.rs
+++ b/src/test/run-pass/log-knows-the-names-of-variants-in-std.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Clone, Show)]
+#[derive(Clone, Show)]
 enum foo {
   a(uint),
   b(String),
diff --git a/src/test/run-pass/log-knows-the-names-of-variants.rs b/src/test/run-pass/log-knows-the-names-of-variants.rs
index 5acf54c30f1..e40723ab1b6 100644
--- a/src/test/run-pass/log-knows-the-names-of-variants.rs
+++ b/src/test/run-pass/log-knows-the-names-of-variants.rs
@@ -8,14 +8,14 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 enum foo {
   a(uint),
   b(String),
   c,
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 enum bar {
   d, e, f
 }
diff --git a/src/test/run-pass/log-poly.rs b/src/test/run-pass/log-poly.rs
index 48cd49158df..163efcb1a2b 100644
--- a/src/test/run-pass/log-poly.rs
+++ b/src/test/run-pass/log-poly.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 enum Numbers {
     Three
 }
diff --git a/src/test/run-pass/monomorphize-abi-alignment.rs b/src/test/run-pass/monomorphize-abi-alignment.rs
index f5b51cd4233..84bffed59a4 100644
--- a/src/test/run-pass/monomorphize-abi-alignment.rs
+++ b/src/test/run-pass/monomorphize-abi-alignment.rs
@@ -28,12 +28,12 @@ impl<T> S<T> {
     }
 }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct A((u32, u32));
 
 impl Copy for A {}
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct B(u64);
 
 impl Copy for B {}
diff --git a/src/test/run-pass/move-1-unique.rs b/src/test/run-pass/move-1-unique.rs
index 19153dd3742..2da6076d138 100644
--- a/src/test/run-pass/move-1-unique.rs
+++ b/src/test/run-pass/move-1-unique.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Triple {
     x: int,
     y: int,
diff --git a/src/test/run-pass/move-3-unique.rs b/src/test/run-pass/move-3-unique.rs
index 19778425367..2820e0d7120 100644
--- a/src/test/run-pass/move-3-unique.rs
+++ b/src/test/run-pass/move-3-unique.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Triple {
     x: int,
     y: int,
diff --git a/src/test/run-pass/newtype-polymorphic.rs b/src/test/run-pass/newtype-polymorphic.rs
index a21bb489d16..74487f5b57d 100644
--- a/src/test/run-pass/newtype-polymorphic.rs
+++ b/src/test/run-pass/newtype-polymorphic.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct myvec<X>(Vec<X> );
 
 fn myvec_deref<X:Clone>(mv: myvec<X>) -> Vec<X> {
diff --git a/src/test/run-pass/newtype-temporary.rs b/src/test/run-pass/newtype-temporary.rs
index b38bc9b6946..d2523eac31e 100644
--- a/src/test/run-pass/newtype-temporary.rs
+++ b/src/test/run-pass/newtype-temporary.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo(uint);
 
 fn foo() -> Foo {
diff --git a/src/test/run-pass/operator-multidispatch.rs b/src/test/run-pass/operator-multidispatch.rs
index cb3397c00bc..2394822d9ba 100644
--- a/src/test/run-pass/operator-multidispatch.rs
+++ b/src/test/run-pass/operator-multidispatch.rs
@@ -13,7 +13,7 @@
 
 use std::ops;
 
-#[deriving(Show,PartialEq,Eq)]
+#[derive(Show,PartialEq,Eq)]
 struct Point {
     x: int,
     y: int
diff --git a/src/test/run-pass/operator-overloading.rs b/src/test/run-pass/operator-overloading.rs
index 1e646e9399c..101b93c1896 100644
--- a/src/test/run-pass/operator-overloading.rs
+++ b/src/test/run-pass/operator-overloading.rs
@@ -12,7 +12,7 @@
 use std::cmp;
 use std::ops;
 
-#[deriving(Copy, Show)]
+#[derive(Copy, Show)]
 struct Point {
     x: int,
     y: int
diff --git a/src/test/run-pass/overloaded-autoderef-count.rs b/src/test/run-pass/overloaded-autoderef-count.rs
index 4cf5e074139..baf1b1b0237 100644
--- a/src/test/run-pass/overloaded-autoderef-count.rs
+++ b/src/test/run-pass/overloaded-autoderef-count.rs
@@ -11,7 +11,7 @@
 use std::cell::Cell;
 use std::ops::{Deref, DerefMut};
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 struct DerefCounter<T> {
     count_imm: Cell<uint>,
     count_mut: uint,
@@ -46,7 +46,7 @@ impl<T> DerefMut<T> for DerefCounter<T> {
     }
 }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Point {
     x: int,
     y: int
diff --git a/src/test/run-pass/overloaded-autoderef.rs b/src/test/run-pass/overloaded-autoderef.rs
index 2975b209d06..344b27ef35f 100644
--- a/src/test/run-pass/overloaded-autoderef.rs
+++ b/src/test/run-pass/overloaded-autoderef.rs
@@ -12,7 +12,7 @@ use std::cell::RefCell;
 use std::rc::Rc;
 use std::string::String;
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Point {
     x: int,
     y: int
diff --git a/src/test/run-pass/overloaded-deref.rs b/src/test/run-pass/overloaded-deref.rs
index ca820830f02..1251394a549 100644
--- a/src/test/run-pass/overloaded-deref.rs
+++ b/src/test/run-pass/overloaded-deref.rs
@@ -12,7 +12,7 @@ use std::cell::RefCell;
 use std::rc::Rc;
 use std::string::String;
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Point {
     x: int,
     y: int
diff --git a/src/test/run-pass/overloaded-index-assoc-list.rs b/src/test/run-pass/overloaded-index-assoc-list.rs
index c0359a34186..0347f8a29df 100644
--- a/src/test/run-pass/overloaded-index-assoc-list.rs
+++ b/src/test/run-pass/overloaded-index-assoc-list.rs
@@ -16,7 +16,7 @@ use std::ops::Index;
 struct AssociationList<K,V> {
     pairs: Vec<AssociationPair<K,V>> }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct AssociationPair<K,V> {
     key: K,
     value: V
diff --git a/src/test/run-pass/packed-struct-vec.rs b/src/test/run-pass/packed-struct-vec.rs
index d2121aa7752..8e5decf5e62 100644
--- a/src/test/run-pass/packed-struct-vec.rs
+++ b/src/test/run-pass/packed-struct-vec.rs
@@ -13,7 +13,7 @@
 use std::mem;
 
 #[repr(packed)]
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo {
     bar: u8,
     baz: u64
diff --git a/src/test/run-pass/rec-align-u32.rs b/src/test/run-pass/rec-align-u32.rs
index ce8c5df0740..b7e362a57aa 100644
--- a/src/test/run-pass/rec-align-u32.rs
+++ b/src/test/run-pass/rec-align-u32.rs
@@ -22,14 +22,14 @@ mod rusti {
 }
 
 // This is the type with the questionable alignment
-#[deriving(Show)]
+#[derive(Show)]
 struct Inner {
     c64: u32
 }
 
 // This is the type that contains the type with the
 // questionable alignment, for testing
-#[deriving(Show)]
+#[derive(Show)]
 struct Outer {
     c8: u8,
     t: Inner
diff --git a/src/test/run-pass/rec-align-u64.rs b/src/test/run-pass/rec-align-u64.rs
index c0c7f4c99be..26ec5976f9b 100644
--- a/src/test/run-pass/rec-align-u64.rs
+++ b/src/test/run-pass/rec-align-u64.rs
@@ -22,14 +22,14 @@ mod rusti {
 }
 
 // This is the type with the questionable alignment
-#[deriving(Show)]
+#[derive(Show)]
 struct Inner {
     c64: u64
 }
 
 // This is the type that contains the type with the
 // questionable alignment, for testing
-#[deriving(Show)]
+#[derive(Show)]
 struct Outer {
     c8: u8,
     t: Inner
diff --git a/src/test/run-pass/regions-mock-tcx.rs b/src/test/run-pass/regions-mock-tcx.rs
index e10c12a6037..6e85011b143 100644
--- a/src/test/run-pass/regions-mock-tcx.rs
+++ b/src/test/run-pass/regions-mock-tcx.rs
@@ -27,7 +27,7 @@ use std::mem;
 
 type Type<'tcx> = &'tcx TypeStructure<'tcx>;
 
-#[deriving(Show)]
+#[derive(Show)]
 enum TypeStructure<'tcx> {
     TypeInt,
     TypeFunction(Type<'tcx>, Type<'tcx>),
@@ -91,7 +91,7 @@ impl<'tcx,'ast> TypeContext<'tcx, 'ast> {
     }
 }
 
-#[deriving(PartialEq, Eq, Hash)]
+#[derive(PartialEq, Eq, Hash)]
 struct NodeId {
     id: uint
 }
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 5ea22ae76c2..a67b24f8b1e 100644
--- a/src/test/run-pass/resource-assign-is-not-copy.rs
+++ b/src/test/run-pass/resource-assign-is-not-copy.rs
@@ -12,7 +12,7 @@
 
 use std::cell::Cell;
 
-#[deriving(Show)]
+#[derive(Show)]
 struct r<'a> {
     i: &'a Cell<int>,
 }
diff --git a/src/test/run-pass/show-boxed-slice.rs b/src/test/run-pass/show-boxed-slice.rs
index 3d267265332..2273c399c9a 100644
--- a/src/test/run-pass/show-boxed-slice.rs
+++ b/src/test/run-pass/show-boxed-slice.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Foo(Box<[u8]>);
 
 pub fn main() {
diff --git a/src/test/run-pass/small-enums-with-fields.rs b/src/test/run-pass/small-enums-with-fields.rs
index cbc3bbadf22..247fa6453b8 100644
--- a/src/test/run-pass/small-enums-with-fields.rs
+++ b/src/test/run-pass/small-enums-with-fields.rs
@@ -12,7 +12,7 @@
 
 use std::mem::size_of;
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 enum Either<T, U> { Left(T), Right(U) }
 
 macro_rules! check {
diff --git a/src/test/run-pass/struct-lit-functional-no-fields.rs b/src/test/run-pass/struct-lit-functional-no-fields.rs
index b8d6aa40ae9..da40f10e9fa 100644
--- a/src/test/run-pass/struct-lit-functional-no-fields.rs
+++ b/src/test/run-pass/struct-lit-functional-no-fields.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show,PartialEq,Clone)]
+#[derive(Show,PartialEq,Clone)]
 struct Foo<T> {
     bar: T,
     baz: T
diff --git a/src/test/run-pass/struct-partial-move-1.rs b/src/test/run-pass/struct-partial-move-1.rs
index d64408ec42f..8cc4cd142be 100644
--- a/src/test/run-pass/struct-partial-move-1.rs
+++ b/src/test/run-pass/struct-partial-move-1.rs
@@ -8,10 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 pub struct Partial<T> { x: T, y: T }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct S { val: int }
 impl S { fn new(v: int) -> S { S { val: v } } }
 impl Drop for S { fn drop(&mut self) { } }
diff --git a/src/test/run-pass/struct-partial-move-2.rs b/src/test/run-pass/struct-partial-move-2.rs
index 0e77079ed05..aafe9e632b1 100644
--- a/src/test/run-pass/struct-partial-move-2.rs
+++ b/src/test/run-pass/struct-partial-move-2.rs
@@ -8,10 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 pub struct Partial<T> { x: T, y: T }
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct S { val: int }
 impl S { fn new(v: int) -> S { S { val: v } } }
 impl Drop for S { fn drop(&mut self) { } }
diff --git a/src/test/run-pass/structured-compare.rs b/src/test/run-pass/structured-compare.rs
index d0446d83d2e..4f6ed55f425 100644
--- a/src/test/run-pass/structured-compare.rs
+++ b/src/test/run-pass/structured-compare.rs
@@ -10,7 +10,7 @@
 
 
 
-#[deriving(Show)]
+#[derive(Show)]
 enum foo { large, small, }
 
 impl Copy for foo {}
diff --git a/src/test/run-pass/tag-align-shape.rs b/src/test/run-pass/tag-align-shape.rs
index ad96f9d9680..8438a5ff47f 100644
--- a/src/test/run-pass/tag-align-shape.rs
+++ b/src/test/run-pass/tag-align-shape.rs
@@ -8,12 +8,12 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 enum a_tag {
     a_tag_var(u64)
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct t_rec {
     c8: u8,
     t: a_tag
diff --git a/src/test/run-pass/tag-disr-val-shape.rs b/src/test/run-pass/tag-disr-val-shape.rs
index 491d83414a1..1155a619a60 100644
--- a/src/test/run-pass/tag-disr-val-shape.rs
+++ b/src/test/run-pass/tag-disr-val-shape.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 enum color {
     red = 0xff0000,
     green = 0x00ff00,
diff --git a/src/test/run-pass/task-comm-16.rs b/src/test/run-pass/task-comm-16.rs
index 91433852540..ec41019846b 100644
--- a/src/test/run-pass/task-comm-16.rs
+++ b/src/test/run-pass/task-comm-16.rs
@@ -45,7 +45,7 @@ fn test_str() {
     assert_eq!(s1.as_bytes()[3], 't' as u8);
 }
 
-#[deriving(Show)]
+#[derive(Show)]
 enum t {
     tag1,
     tag2(int),
diff --git a/src/test/run-pass/trait-inheritance-overloading-simple.rs b/src/test/run-pass/trait-inheritance-overloading-simple.rs
index bd9bc9e9b88..3c319a8c512 100644
--- a/src/test/run-pass/trait-inheritance-overloading-simple.rs
+++ b/src/test/run-pass/trait-inheritance-overloading-simple.rs
@@ -12,7 +12,7 @@ use std::cmp::PartialEq;
 
 trait MyNum : PartialEq { }
 
-#[deriving(Show)]
+#[derive(Show)]
 struct MyInt { val: int }
 
 impl PartialEq for MyInt {
diff --git a/src/test/run-pass/trait-inheritance-overloading.rs b/src/test/run-pass/trait-inheritance-overloading.rs
index 5f8e945cce8..739c3e4bdb0 100644
--- a/src/test/run-pass/trait-inheritance-overloading.rs
+++ b/src/test/run-pass/trait-inheritance-overloading.rs
@@ -12,7 +12,7 @@ use std::cmp::PartialEq;
 
 trait MyNum : Add<Self,Self> + Sub<Self,Self> + Mul<Self,Self> + PartialEq + Clone { }
 
-#[deriving(Clone, Show)]
+#[derive(Clone, Show)]
 struct MyInt { val: int }
 
 impl Add<MyInt, MyInt> for MyInt {
diff --git a/src/test/run-pass/tuple-struct-construct.rs b/src/test/run-pass/tuple-struct-construct.rs
index af8b203d951..5bf152f2976 100644
--- a/src/test/run-pass/tuple-struct-construct.rs
+++ b/src/test/run-pass/tuple-struct-construct.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(Show)]
+#[derive(Show)]
 struct Foo(int, int);
 
 pub fn main() {
diff --git a/src/test/run-pass/tuple-struct-constructor-pointer.rs b/src/test/run-pass/tuple-struct-constructor-pointer.rs
index 281ea39084f..a4bb914b1ab 100644
--- a/src/test/run-pass/tuple-struct-constructor-pointer.rs
+++ b/src/test/run-pass/tuple-struct-constructor-pointer.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Foo(int);
-#[deriving(PartialEq, Show)]
+#[derive(PartialEq, Show)]
 struct Bar(int, int);
 
 pub fn main() {
diff --git a/src/test/run-pass/typeclasses-eq-example-static.rs b/src/test/run-pass/typeclasses-eq-example-static.rs
index 6b00a8b5c2d..63a59b6f750 100644
--- a/src/test/run-pass/typeclasses-eq-example-static.rs
+++ b/src/test/run-pass/typeclasses-eq-example-static.rs
@@ -18,7 +18,7 @@ trait Equal {
     fn isEq(a: &Self, b: &Self) -> bool;
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum Color { cyan, magenta, yellow, black }
 
 impl Copy for Color {}
@@ -35,7 +35,7 @@ impl Equal for Color {
     }
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum ColorTree {
     leaf(Color),
     branch(Box<ColorTree>, Box<ColorTree>)
diff --git a/src/test/run-pass/typeclasses-eq-example.rs b/src/test/run-pass/typeclasses-eq-example.rs
index e4b7d2eb60b..431a9383b3b 100644
--- a/src/test/run-pass/typeclasses-eq-example.rs
+++ b/src/test/run-pass/typeclasses-eq-example.rs
@@ -17,7 +17,7 @@ trait Equal {
     fn isEq(&self, a: &Self) -> bool;
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum Color { cyan, magenta, yellow, black }
 
 impl Copy for Color {}
@@ -34,7 +34,7 @@ impl Equal for Color {
     }
 }
 
-#[deriving(Clone)]
+#[derive(Clone)]
 enum ColorTree {
     leaf(Color),
     branch(Box<ColorTree>, Box<ColorTree>)
diff --git a/src/test/run-pass/unboxed-closures-monomorphization.rs b/src/test/run-pass/unboxed-closures-monomorphization.rs
index dfc234e87cd..52855f82673 100644
--- a/src/test/run-pass/unboxed-closures-monomorphization.rs
+++ b/src/test/run-pass/unboxed-closures-monomorphization.rs
@@ -28,7 +28,7 @@ fn main(){
     let mut f = bar(&x);
     assert_eq!(f.call_mut(()), &x);
 
-    #[deriving(Clone, Show, PartialEq)]
+    #[derive(Clone, Show, PartialEq)]
     struct Foo(uint, &'static str);
 
     impl Copy for Foo {}
diff --git a/src/test/run-pass/uninit-empty-types.rs b/src/test/run-pass/uninit-empty-types.rs
index c2bd738b8a4..a0cf984cbb9 100644
--- a/src/test/run-pass/uninit-empty-types.rs
+++ b/src/test/run-pass/uninit-empty-types.rs
@@ -12,7 +12,7 @@
 
 use std::mem;
 
-#[deriving(Clone)]
+#[derive(Clone)]
 struct Foo;
 
 pub fn main() {
diff --git a/src/test/run-pass/vector-sort-panic-safe.rs b/src/test/run-pass/vector-sort-panic-safe.rs
index 6ff1cffb4a4..08bd367917a 100644
--- a/src/test/run-pass/vector-sort-panic-safe.rs
+++ b/src/test/run-pass/vector-sort-panic-safe.rs
@@ -30,7 +30,7 @@ static drop_counts: [AtomicUint;  MAX_LEN] =
 
 static creation_count: AtomicUint = INIT_ATOMIC_UINT;
 
-#[deriving(Clone, PartialEq, PartialOrd, Eq, Ord)]
+#[derive(Clone, PartialEq, PartialOrd, Eq, Ord)]
 struct DropCounter { x: uint, creation_id: uint }
 
 impl Rand for DropCounter {
diff --git a/src/test/run-pass/while-prelude-drop.rs b/src/test/run-pass/while-prelude-drop.rs
index db9cf0abda3..bfabcb4d87b 100644
--- a/src/test/run-pass/while-prelude-drop.rs
+++ b/src/test/run-pass/while-prelude-drop.rs
@@ -10,7 +10,7 @@
 
 use std::string::String;
 
-#[deriving(PartialEq)]
+#[derive(PartialEq)]
 enum t { a, b(String), }
 
 fn make(i: int) -> t {