]> git.lizzy.rs Git - rust.git/commitdiff
rollup merge of #19040: alexcrichton/issue-18904
authorJakub Bukaj <jakub@jakub.cc>
Wed, 19 Nov 2014 21:38:26 +0000 (22:38 +0100)
committerJakub Bukaj <jakub@jakub.cc>
Wed, 19 Nov 2014 21:38:26 +0000 (22:38 +0100)
This commit applies the stabilization of std::fmt as outlined in [RFC 380][rfc].
There are a number of breaking changes as a part of this commit which will need
to be handled to migrated old code:

* A number of formatting traits have been removed: String, Bool, Char, Unsigned,
  Signed, and Float. It is recommended to instead use Show wherever possible or
  to use adaptor structs to implement other methods of formatting.

* The format specifier for Boolean has changed from `t` to `b`.

* The enum `FormatError` has been renamed to `Error` as well as becoming a unit
  struct instead of an enum. The `WriteError` variant no longer exists.

* The `format_args_method!` macro has been removed with no replacement. Alter
  code to use the `format_args!` macro instead.

* The public fields of a `Formatter` have become read-only with no replacement.
  Use a new formatting string to alter the formatting flags in combination with
  the `write!` macro. The fields can be accessed through accessor methods on the
  `Formatter` structure.

Other than these breaking changes, the contents of std::fmt should now also all
contain stability markers. Most of them are still #[unstable] or #[experimental]

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0380-stabilize-std-fmt.md
[breaking-change]

Closes #18904

1  2 
src/librustc/middle/borrowck/mod.rs
src/librustc/middle/check_match.rs
src/librustc/middle/ty.rs
src/librustc/middle/typeck/variance.rs
src/librustc_trans/driver/pretty.rs
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/cleanup.rs
src/libsyntax/ast.rs

Simple merge
Simple merge
index 6d9f6ece1c1b0df054038d9f40eaa164acb6eab3,70567f52c06f8d5400cdd943cd127be0fe97b707..15c292a6b2078e01c5b017f0824549999f7ea7c2
@@@ -2638,13 -2682,17 +2639,17 @@@ impl fmt::Show for TypeContents 
      fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
          write!(f, "TypeContents({:t})", self.bits)
      }
+     #[cfg(not(stage0))]
+     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+         write!(f, "TypeContents({:b})", self.bits)
+     }
  }
  
 -pub fn type_interior_is_unsafe(cx: &ctxt, t: ty::t) -> bool {
 -    type_contents(cx, t).interior_unsafe()
 +pub fn type_interior_is_unsafe<'tcx>(cx: &ctxt<'tcx>, ty: Ty<'tcx>) -> bool {
 +    type_contents(cx, ty).interior_unsafe()
  }
  
 -pub fn type_contents(cx: &ctxt, ty: t) -> TypeContents {
 +pub fn type_contents<'tcx>(cx: &ctxt<'tcx>, ty: Ty<'tcx>) -> TypeContents {
      return memoized(&cx.tc_cache, ty, |ty| {
          tc_ty(cx, ty, &mut FnvHashMap::new())
      });
Simple merge
Simple merge
Simple merge
Simple merge