]> git.lizzy.rs Git - rust.git/commit
core: split into fmt::Show and fmt::String
authorSean McArthur <sean.monstar@gmail.com>
Sat, 20 Dec 2014 08:09:35 +0000 (00:09 -0800)
committerSean McArthur <sean.monstar@gmail.com>
Tue, 6 Jan 2015 22:49:42 +0000 (14:49 -0800)
commit44440e5c18a1dbcc9685866ffffe00c508929079
treeb66c50cd1e471dc0e37b8a0db2cf7f8f28fbac5f
parent8efd9901b628d687d11a4d0ccc153553b38ada49
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]
252 files changed:
src/compiletest/common.rs
src/compiletest/compiletest.rs
src/compiletest/errors.rs
src/compiletest/runtest.rs
src/liballoc/arc.rs
src/liballoc/boxed.rs
src/liballoc/rc.rs
src/libcollections/bit.rs
src/libcollections/btree/map.rs
src/libcollections/btree/node.rs
src/libcollections/btree/set.rs
src/libcollections/dlist.rs
src/libcollections/enum_set.rs
src/libcollections/ring_buf.rs
src/libcollections/slice.rs
src/libcollections/string.rs
src/libcollections/vec.rs
src/libcollections/vec_map.rs
src/libcore/any.rs
src/libcore/borrow.rs
src/libcore/cell.rs
src/libcore/fmt/mod.rs
src/libcore/fmt/num.rs
src/libcore/macros.rs
src/libcore/result.rs
src/libcore/str/mod.rs
src/libcoretest/any.rs
src/libcoretest/cell.rs
src/libcoretest/fmt/num.rs
src/libcoretest/result.rs
src/libcoretest/tuple.rs
src/libfmt_macros/lib.rs
src/libgetopts/lib.rs
src/liblog/directive.rs
src/liblog/lib.rs
src/librbml/lib.rs
src/libregex/lib.rs
src/libregex/parse.rs
src/libregex/re.rs
src/librustc/lint/builtin.rs
src/librustc/metadata/csearch.rs
src/librustc/metadata/encoder.rs
src/librustc/metadata/tydecode.rs
src/librustc/middle/astencode.rs
src/librustc/middle/cfg/construct.rs
src/librustc/middle/check_const.rs
src/librustc/middle/check_match.rs
src/librustc/middle/check_rvalues.rs
src/librustc/middle/dataflow.rs
src/librustc/middle/dependency_format.rs
src/librustc/middle/expr_use_visitor.rs
src/librustc/middle/graph.rs
src/librustc/middle/infer/coercion.rs
src/librustc/middle/infer/combine.rs
src/librustc/middle/infer/error_reporting.rs
src/librustc/middle/infer/higher_ranked/mod.rs
src/librustc/middle/infer/mod.rs
src/librustc/middle/infer/region_inference/graphviz.rs
src/librustc/middle/infer/region_inference/mod.rs
src/librustc/middle/infer/type_variable.rs
src/librustc/middle/infer/unify.rs
src/librustc/middle/intrinsicck.rs
src/librustc/middle/liveness.rs
src/librustc/middle/mem_categorization.rs
src/librustc/middle/privacy.rs
src/librustc/middle/region.rs
src/librustc/middle/resolve_lifetime.rs
src/librustc/middle/stability.rs
src/librustc/middle/subst.rs
src/librustc/middle/traits/mod.rs
src/librustc/middle/traits/object_safety.rs
src/librustc/middle/traits/select.rs
src/librustc/middle/traits/util.rs
src/librustc/middle/ty.rs
src/librustc/middle/ty_walk.rs
src/librustc/util/common.rs
src/librustc/util/ppaux.rs
src/librustc_back/archive.rs
src/librustc_back/rpath.rs
src/librustc_back/svh.rs
src/librustc_back/target/mod.rs
src/librustc_borrowck/borrowck/check_loans.rs
src/librustc_borrowck/borrowck/fragments.rs
src/librustc_borrowck/borrowck/gather_loans/gather_moves.rs
src/librustc_borrowck/borrowck/gather_loans/mod.rs
src/librustc_borrowck/borrowck/mod.rs
src/librustc_borrowck/borrowck/move_data.rs
src/librustc_borrowck/graphviz.rs
src/librustc_driver/driver.rs
src/librustc_driver/pretty.rs
src/librustc_resolve/build_reduced_graph.rs
src/librustc_resolve/check_unused.rs
src/librustc_resolve/lib.rs
src/librustc_resolve/record_exports.rs
src/librustc_trans/back/link.rs
src/librustc_trans/back/write.rs
src/librustc_trans/save/mod.rs
src/librustc_trans/trans/_match.rs
src/librustc_trans/trans/adt.rs
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/callee.rs
src/librustc_trans/trans/cleanup.rs
src/librustc_trans/trans/closure.rs
src/librustc_trans/trans/common.rs
src/librustc_trans/trans/consts.rs
src/librustc_trans/trans/controlflow.rs
src/librustc_trans/trans/datum.rs
src/librustc_trans/trans/debuginfo.rs
src/librustc_trans/trans/expr.rs
src/librustc_trans/trans/meth.rs
src/librustc_trans/trans/monomorphize.rs
src/librustc_trans/trans/type_of.rs
src/librustc_typeck/astconv.rs
src/librustc_typeck/check/closure.rs
src/librustc_typeck/check/method/confirm.rs
src/librustc_typeck/check/method/mod.rs
src/librustc_typeck/check/method/probe.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/check/regionck.rs
src/librustc_typeck/check/upvar.rs
src/librustc_typeck/check/writeback.rs
src/librustc_typeck/coherence/mod.rs
src/librustc_typeck/collect.rs
src/librustc_typeck/variance.rs
src/librustdoc/clean/inline.rs
src/librustdoc/clean/mod.rs
src/librustdoc/core.rs
src/librustdoc/html/escape.rs
src/librustdoc/html/format.rs
src/librustdoc/html/item_type.rs
src/librustdoc/html/layout.rs
src/librustdoc/html/markdown.rs
src/librustdoc/html/render.rs
src/librustdoc/html/toc.rs
src/librustdoc/lib.rs
src/librustdoc/test.rs
src/librustdoc/visit_ast.rs
src/libserialize/base64.rs
src/libserialize/hex.rs
src/libserialize/json.rs
src/libstd/collections/hash/map.rs
src/libstd/collections/hash/set.rs
src/libstd/fmt.rs
src/libstd/io/fs.rs
src/libstd/io/mod.rs
src/libstd/io/net/addrinfo.rs
src/libstd/io/net/ip.rs
src/libstd/io/process.rs
src/libstd/io/stdio.rs
src/libstd/macros.rs
src/libstd/os.rs
src/libstd/path/mod.rs
src/libstd/path/posix.rs
src/libstd/path/windows.rs
src/libstd/rand/mod.rs
src/libstd/rand/reader.rs
src/libstd/sys/unix/backtrace.rs
src/libstd/sys/unix/fs.rs
src/libstd/sys/unix/process.rs
src/libstd/time/duration.rs
src/libsyntax/abi.rs
src/libsyntax/ast.rs
src/libsyntax/ast_map/mod.rs
src/libsyntax/attr.rs
src/libsyntax/codemap.rs
src/libsyntax/diagnostic.rs
src/libsyntax/ext/deriving/show.rs
src/libsyntax/ext/expand.rs
src/libsyntax/ext/format.rs
src/libsyntax/ext/mtwt.rs
src/libsyntax/ext/source_util.rs
src/libsyntax/ext/tt/transcribe.rs
src/libsyntax/parse/attr.rs
src/libsyntax/parse/lexer/mod.rs
src/libsyntax/parse/mod.rs
src/libsyntax/parse/parser.rs
src/libsyntax/parse/token.rs
src/libsyntax/test.rs
src/libterm/terminfo/mod.rs
src/libterm/terminfo/parm.rs
src/libterm/terminfo/parser/compiled.rs
src/libterm/terminfo/searcher.rs
src/libtest/lib.rs
src/libtest/stats.rs
src/llvm
src/rust-installer
src/test/auxiliary/cci_class_cast.rs
src/test/compile-fail/borrowck-move-out-of-vec-tail.rs
src/test/compile-fail/copy-a-resource.rs
src/test/compile-fail/ifmt-bad-arg.rs
src/test/compile-fail/issue-14853.rs
src/test/compile-fail/issue-15094.rs
src/test/compile-fail/issue-17728.rs
src/test/compile-fail/issue-5062.rs
src/test/compile-fail/issue-6458-2.rs
src/test/compile-fail/linkage3.rs
src/test/compile-fail/lint-uppercase-variables.rs
src/test/compile-fail/liveness-use-after-send.rs
src/test/compile-fail/no-send-res-ports.rs
src/test/compile-fail/noncopyable-class.rs
src/test/compile-fail/packed-struct-transmute.rs
src/test/compile-fail/static-reference-to-fn-2.rs
src/test/compile-fail/unique-pinned-nocopy.rs
src/test/compile-fail/unique-vec-res.rs
src/test/compile-fail/use-after-move-implicity-coerced-object.rs
src/test/compile-fail/vec-res-add.rs
src/test/run-fail/assert-eq-macro-panic.rs
src/test/run-pass/borrowck-mut-uniq.rs
src/test/run-pass/class-separate-impl.rs
src/test/run-pass/conditional-debug-macro-off.rs
src/test/run-pass/conditional-debug-macro-on.rs
src/test/run-pass/deriving-in-fn.rs
src/test/run-pass/deriving-show-2.rs
src/test/run-pass/deriving-show.rs
src/test/run-pass/dst-index.rs
src/test/run-pass/enum-discrim-width-stuff.rs
src/test/run-pass/functional-struct-upd.rs
src/test/run-pass/ifmt.rs
src/test/run-pass/issue-10396.rs
src/test/run-pass/issue-10626.rs
src/test/run-pass/issue-11267.rs
src/test/run-pass/issue-12744.rs
src/test/run-pass/issue-13434.rs
src/test/run-pass/issue-1696.rs
src/test/run-pass/issue-19135.rs
src/test/run-pass/issue-19358.rs
src/test/run-pass/issue-3109.rs
src/test/run-pass/issue-3556.rs
src/test/run-pass/issue-3559.rs
src/test/run-pass/issue-3563-3.rs
src/test/run-pass/issue-3794.rs
src/test/run-pass/issue-4252.rs
src/test/run-pass/issue-7563.rs
src/test/run-pass/issue-8898.rs
src/test/run-pass/log-knows-the-names-of-variants-in-std.rs
src/test/run-pass/log-knows-the-names-of-variants.rs
src/test/run-pass/log-poly.rs
src/test/run-pass/logging-only-prints-once.rs
src/test/run-pass/new-impl-syntax.rs
src/test/run-pass/overloaded-index-assoc-list.rs
src/test/run-pass/rec-align-u32.rs
src/test/run-pass/rec-align-u64.rs
src/test/run-pass/resource-assign-is-not-copy.rs
src/test/run-pass/running-with-no-runtime.rs
src/test/run-pass/show-boxed-slice.rs
src/test/run-pass/small-enums-with-fields.rs
src/test/run-pass/supported-cast.rs
src/test/run-pass/tag-align-shape.rs
src/test/run-pass/tag-disr-val-shape.rs
src/test/run-pass/trivial-message.rs
src/test/run-pass/tuple-struct-construct.rs
src/test/run-pass/vec-to_str.rs