about summary refs log tree commit diff
path: root/src/librustc/metadata
diff options
context:
space:
mode:
authorSean McArthur <sean.monstar@gmail.com>2014-12-20 00:09:35 -0800
committerSean McArthur <sean.monstar@gmail.com>2015-01-06 14:49:42 -0800
commit44440e5c18a1dbcc9685866ffffe00c508929079 (patch)
treeb66c50cd1e471dc0e37b8a0db2cf7f8f28fbac5f /src/librustc/metadata
parent8efd9901b628d687d11a4d0ccc153553b38ada49 (diff)
downloadrust-44440e5c18a1dbcc9685866ffffe00c508929079.tar.gz
rust-44440e5c18a1dbcc9685866ffffe00c508929079.zip
core: split into fmt::Show and fmt::String
fmt::Show is for debugging, and can and should be implemented for
all public types. This trait is used with `{:?}` syntax. There still
exists #[derive(Show)].

fmt::String is for types that faithfully be represented as a String.
Because of this, there is no way to derive fmt::String, all
implementations must be purposeful. It is used by the default format
syntax, `{}`.

This will break most instances of `{}`, since that now requires the type
to impl fmt::String. In most cases, replacing `{}` with `{:?}` is the
correct fix. Types that were being printed specifically for users should
receive a fmt::String implementation to fix this.

Part of #20013

[breaking-change]
Diffstat (limited to 'src/librustc/metadata')
-rw-r--r--src/librustc/metadata/csearch.rs4
-rw-r--r--src/librustc/metadata/encoder.rs4
-rw-r--r--src/librustc/metadata/tydecode.rs4
3 files changed, 6 insertions, 6 deletions
diff --git a/src/librustc/metadata/csearch.rs b/src/librustc/metadata/csearch.rs
index 1401a7d4a1a..0a2f45e5362 100644
--- a/src/librustc/metadata/csearch.rs
+++ b/src/librustc/metadata/csearch.rs
@@ -246,13 +246,13 @@ pub fn get_field_type<'tcx>(tcx: &ty::ctxt<'tcx>, class_id: ast::DefId,
     let class_doc = expect(tcx.sess.diagnostic(),
                            decoder::maybe_find_item(class_id.node, all_items),
                            || {
-        (format!("get_field_type: class ID {} not found",
+        (format!("get_field_type: class ID {:?} not found",
                  class_id)).to_string()
     });
     let the_field = expect(tcx.sess.diagnostic(),
         decoder::maybe_find_item(def.node, class_doc),
         || {
-            (format!("get_field_type: in class {}, field ID {} not found",
+            (format!("get_field_type: in class {:?}, field ID {:?} not found",
                     class_id,
                     def)).to_string()
         });
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index e4226ddde85..3fac98ee405 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -845,7 +845,7 @@ fn encode_info_for_method<'a, 'tcx>(ecx: &EncodeContext<'a, 'tcx>,
                                     parent_id: NodeId,
                                     ast_item_opt: Option<&ast::ImplItem>) {
 
-    debug!("encode_info_for_method: {} {}", m.def_id,
+    debug!("encode_info_for_method: {:?} {:?}", m.def_id,
            token::get_name(m.name));
     rbml_w.start_tag(tag_items_data_item);
 
@@ -887,7 +887,7 @@ fn encode_info_for_associated_type(ecx: &EncodeContext,
                                    impl_path: PathElems,
                                    parent_id: NodeId,
                                    typedef_opt: Option<P<ast::Typedef>>) {
-    debug!("encode_info_for_associated_type({},{})",
+    debug!("encode_info_for_associated_type({:?},{:?})",
            associated_type.def_id,
            token::get_name(associated_type.name));
 
diff --git a/src/librustc/metadata/tydecode.rs b/src/librustc/metadata/tydecode.rs
index 07dc13ff0d4..ddb592f11ef 100644
--- a/src/librustc/metadata/tydecode.rs
+++ b/src/librustc/metadata/tydecode.rs
@@ -738,12 +738,12 @@ pub fn parse_def_id(buf: &[u8]) -> ast::DefId {
 
     let crate_num = match str::from_utf8(crate_part).ok().and_then(|s| s.parse::<uint>()) {
        Some(cn) => cn as ast::CrateNum,
-       None => panic!("internal error: parse_def_id: crate number expected, found {}",
+       None => panic!("internal error: parse_def_id: crate number expected, found {:?}",
                      crate_part)
     };
     let def_num = match str::from_utf8(def_part).ok().and_then(|s| s.parse::<uint>()) {
        Some(dn) => dn as ast::NodeId,
-       None => panic!("internal error: parse_def_id: id expected, found {}",
+       None => panic!("internal error: parse_def_id: id expected, found {:?}",
                      def_part)
     };
     ast::DefId { krate: crate_num, node: def_num }