Remove #[derive(Show)]
This commit is contained in:
parent
be91042913
commit
025cf75864
@ -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]
|
||||
|
@ -119,7 +119,7 @@ for (trait, supers, errs) in [('Clone', [], 1),
|
||||
('PartialOrd', ['PartialEq'], 8),
|
||||
('Eq', ['PartialEq'], 1),
|
||||
('Ord', ['Eq', 'PartialOrd', 'PartialEq'], 1),
|
||||
('Show', [], 1),
|
||||
('Debug', [], 1),
|
||||
('Hash', [], 1)]:
|
||||
traits[trait] = (ALL, supers, errs)
|
||||
|
||||
|
@ -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,
|
@ -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,
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
use std::cell::Cell;
|
||||
|
||||
#[derive(Show)]
|
||||
#[derive(Debug)]
|
||||
struct B<'a> {
|
||||
a: [Cell<Option<&'a B<'a>>>; 2]
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
use std::mem;
|
||||
|
||||
#[derive(PartialEq, Show)]
|
||||
#[derive(PartialEq, Debug)]
|
||||
enum Foo {
|
||||
A(u32),
|
||||
Bar([u16; 4]),
|
||||
|
@ -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() { }
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
use std::cell::Cell;
|
||||
|
||||
#[derive(Show)]
|
||||
#[derive(Debug)]
|
||||
struct C<'a> {
|
||||
v: Vec<Cell<Option<&'a C<'a>>>>,
|
||||
}
|
||||
|
@ -10,12 +10,12 @@
|
||||
|
||||
use std::cell::Cell;
|
||||
|
||||
#[derive(Show)]
|
||||
#[derive(Debug)]
|
||||
struct Refs<'a> {
|
||||
v: Vec<Cell<Option<&'a C<'a>>>>,
|
||||
}
|
||||
|
||||
#[derive(Show)]
|
||||
#[derive(Debug)]
|
||||
struct C<'a> {
|
||||
refs: Refs<'a>,
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user