diff --git a/src/doc/style/features/traits/common.md b/src/doc/style/features/traits/common.md index 48c37eabcaaa1..18346c092547f 100644 --- a/src/doc/style/features/traits/common.md +++ b/src/doc/style/features/traits/common.md @@ -9,18 +9,18 @@ applicable, common traits. To see why, consider the following situation: -* Crate `std` defines trait `Show`. -* Crate `url` defines type `Url`, without implementing `Show`. +* Crate `std` defines trait `Debug`. +* Crate `url` defines type `Url`, without implementing `Debug`. * Crate `webapp` imports from both `std` and `url`, -There is no way for `webapp` to add `Show` to `url`, since it defines neither. +There is no way for `webapp` to add `Debug` to `url`, since it defines neither. (Note: the newtype pattern can provide an efficient, but inconvenient workaround; see [newtype for views](../types/newtype.md)) The most important common traits to implement from `std` are: ```rust -Clone, Show, Hash, Eq +Clone, Debug, Hash, Eq ``` #### When safe, derive or otherwise implement `Send` and `Share`. [FIXME] diff --git a/src/etc/generate-deriving-span-tests.py b/src/etc/generate-deriving-span-tests.py index a8a62358d3afe..790fc8942873e 100755 --- a/src/etc/generate-deriving-span-tests.py +++ b/src/etc/generate-deriving-span-tests.py @@ -119,7 +119,7 @@ def write_file(name, string): ('PartialOrd', ['PartialEq'], 8), ('Eq', ['PartialEq'], 1), ('Ord', ['Eq', 'PartialOrd', 'PartialEq'], 1), - ('Show', [], 1), + ('Debug', [], 1), ('Hash', [], 1)]: traits[trait] = (ALL, supers, errs) diff --git a/src/libsyntax/ext/deriving/show.rs b/src/libsyntax/ext/deriving/debug.rs similarity index 99% rename from src/libsyntax/ext/deriving/show.rs rename to src/libsyntax/ext/deriving/debug.rs index 4d70ca1ebf157..537375f70845d 100644 --- a/src/libsyntax/ext/deriving/show.rs +++ b/src/libsyntax/ext/deriving/debug.rs @@ -18,7 +18,7 @@ use ext::deriving::generic::ty::*; use parse::token; use ptr::P; -pub fn expand_deriving_show(cx: &mut ExtCtxt, +pub fn expand_deriving_debug(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, item: &Annotatable, diff --git a/src/libsyntax/ext/deriving/mod.rs b/src/libsyntax/ext/deriving/mod.rs index c7f582854aeef..d26bb794c88b9 100644 --- a/src/libsyntax/ext/deriving/mod.rs +++ b/src/libsyntax/ext/deriving/mod.rs @@ -60,7 +60,7 @@ pub mod clone; pub mod encodable; pub mod decodable; pub mod hash; -pub mod show; +pub mod debug; pub mod default; pub mod primitive; @@ -173,7 +173,7 @@ derive_traits! { "PartialOrd" => partial_ord::expand_deriving_partial_ord, "Ord" => ord::expand_deriving_ord, - "Debug" => show::expand_deriving_show, + "Debug" => debug::expand_deriving_debug, "Default" => default::expand_deriving_default, @@ -184,7 +184,6 @@ derive_traits! { "Copy" => bounds::expand_deriving_copy, // deprecated - "Show" => show::expand_deriving_show, "Encodable" => encodable::expand_deriving_encodable, "Decodable" => decodable::expand_deriving_decodable, } @@ -192,7 +191,6 @@ derive_traits! { #[inline] // because `name` is a compile-time constant fn warn_if_deprecated(ecx: &mut ExtCtxt, sp: Span, name: &str) { if let Some(replacement) = match name { - "Show" => Some("Debug"), "Encodable" => Some("RustcEncodable"), "Decodable" => Some("RustcDecodable"), _ => None, diff --git a/src/test/run-pass/arr_cycle.rs b/src/test/run-pass/arr_cycle.rs index 80434f36b42d5..400458b614b39 100644 --- a/src/test/run-pass/arr_cycle.rs +++ b/src/test/run-pass/arr_cycle.rs @@ -10,7 +10,7 @@ use std::cell::Cell; -#[derive(Show)] +#[derive(Debug)] struct B<'a> { a: [Cell>>; 2] } diff --git a/src/test/run-pass/const-adt-align-mismatch.rs b/src/test/run-pass/const-adt-align-mismatch.rs index 5377d9a62b91a..46cd708a13969 100644 --- a/src/test/run-pass/const-adt-align-mismatch.rs +++ b/src/test/run-pass/const-adt-align-mismatch.rs @@ -10,7 +10,7 @@ use std::mem; -#[derive(PartialEq, Show)] +#[derive(PartialEq, Debug)] enum Foo { A(u32), Bar([u16; 4]), diff --git a/src/test/run-pass/deprecated-derive.rs b/src/test/run-pass/deprecated-derive.rs index 494d62c773770..69a7f888bbe09 100644 --- a/src/test/run-pass/deprecated-derive.rs +++ b/src/test/run-pass/deprecated-derive.rs @@ -8,8 +8,12 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#[derive(Show)] -//~^ WARNING derive(Show) is deprecated +#![feature(rustc_private)] + +extern crate serialize; + +#[derive(Encodable)] +//~^ WARNING derive(Encodable) is deprecated in favor of derive(RustcEncodable) struct Test1; fn main() { } diff --git a/src/test/run-pass/vec_cycle.rs b/src/test/run-pass/vec_cycle.rs index 65522bd95df7f..d5da8b35b6db4 100644 --- a/src/test/run-pass/vec_cycle.rs +++ b/src/test/run-pass/vec_cycle.rs @@ -10,7 +10,7 @@ use std::cell::Cell; -#[derive(Show)] +#[derive(Debug)] struct C<'a> { v: Vec>>>, } diff --git a/src/test/run-pass/vec_cycle_wrapped.rs b/src/test/run-pass/vec_cycle_wrapped.rs index f179df90b34ca..56480268a01b2 100644 --- a/src/test/run-pass/vec_cycle_wrapped.rs +++ b/src/test/run-pass/vec_cycle_wrapped.rs @@ -10,12 +10,12 @@ use std::cell::Cell; -#[derive(Show)] +#[derive(Debug)] struct Refs<'a> { v: Vec>>>, } -#[derive(Show)] +#[derive(Debug)] struct C<'a> { refs: Refs<'a>, }