1. 08 10月, 2014 1 次提交
  2. 24 9月, 2014 1 次提交
  3. 23 9月, 2014 1 次提交
  4. 17 9月, 2014 1 次提交
  5. 13 9月, 2014 1 次提交
    • P
      librustc: Forbid inherent implementations that aren't adjacent to the · 467bea04
      Patrick Walton 提交于
      type they provide an implementation for.
      
      This breaks code like:
      
          mod foo {
              struct Foo { ... }
          }
      
          impl foo::Foo {
              ...
          }
      
      Change this code to:
      
          mod foo {
              struct Foo { ... }
      
              impl Foo {
                  ...
              }
          }
      
      Additionally, if you used the I/O path extension methods `stat`,
      `lstat`, `exists`, `is_file`, or `is_dir`, note that these methods have
      been moved to the the `std::io::fs::PathExtensions` trait. This breaks
      code like:
      
          fn is_it_there() -> bool {
              Path::new("/foo/bar/baz").exists()
          }
      
      Change this code to:
      
          use std::io::fs::PathExtensions;
      
          fn is_it_there() -> bool {
              Path::new("/foo/bar/baz").exists()
          }
      
      Closes #17059.
      
      RFC #155.
      
      [breaking-change]
      467bea04
  6. 01 9月, 2014 1 次提交
  7. 28 8月, 2014 1 次提交
  8. 20 8月, 2014 2 次提交
  9. 22 7月, 2014 1 次提交
  10. 17 7月, 2014 1 次提交
  11. 16 7月, 2014 1 次提交
  12. 12 7月, 2014 1 次提交
  13. 10 7月, 2014 1 次提交
  14. 09 7月, 2014 1 次提交
  15. 06 7月, 2014 1 次提交
  16. 01 7月, 2014 1 次提交
  17. 29 6月, 2014 1 次提交
    • P
      librustc: Match trait self types exactly. · 05e3248a
      Patrick Walton 提交于
      This can break code that looked like:
      
          impl Foo for Box<Any> {
              fn f(&self) { ... }
          }
      
          let x: Box<Any + Send> = ...;
          x.f();
      
      Change such code to:
      
          impl Foo for Box<Any> {
              fn f(&self) { ... }
          }
      
          let x: Box<Any> = ...;
          x.f();
      
      That is, upcast before calling methods.
      
      This is a conservative solution to #5781. A more proper treatment (see
      the xfail'd `trait-contravariant-self.rs`) would take variance into
      account. This change fixes the soundness hole.
      
      Some library changes had to be made to make this work. In particular,
      `Box<Any>` is no longer showable, and only `Box<Any+Send>` is showable.
      Eventually, this restriction can be lifted; for now, it does not prove
      too onerous, because `Any` is only used for propagating the result of
      task failure.
      
      This patch also adds a test for the variance inference work in #12828,
      which accidentally landed as part of DST.
      
      Closes #5781.
      
      [breaking-change]
      05e3248a
  18. 28 6月, 2014 1 次提交
  19. 26 6月, 2014 1 次提交
  20. 25 6月, 2014 1 次提交
    • N
      librustc: Remove the fallback to `int` from typechecking. · 9e3d0b00
      Niko Matsakis 提交于
      This breaks a fair amount of code. The typical patterns are:
      
      * `for _ in range(0, 10)`: change to `for _ in range(0u, 10)`;
      
      * `println!("{}", 3)`: change to `println!("{}", 3i)`;
      
      * `[1, 2, 3].len()`: change to `[1i, 2, 3].len()`.
      
      RFC #30. Closes #6023.
      
      [breaking-change]
      9e3d0b00
  21. 19 6月, 2014 1 次提交
  22. 18 6月, 2014 1 次提交
  23. 16 6月, 2014 1 次提交
  24. 14 6月, 2014 1 次提交
    • H
      getopts: format failure messages with `Show`. · 0642cbbd
      Huon Wilson 提交于
      This obsoletes the old `to_err_msg` method. Replace
      
          println!("Error: {}", failure.to_err_msg())
      
          let string = failure.to_err_msg();
      
      with
      
          println!("Error: {}", failure)
      
          let string = failure.to_str();
      
      [breaking-change]
      0642cbbd
  25. 12 6月, 2014 1 次提交
    • A
      rustc: Remove ~[T] from the language · 3316b1eb
      Alex Crichton 提交于
      The following features have been removed
      
      * box [a, b, c]
      * ~[a, b, c]
      * box [a, ..N]
      * ~[a, ..N]
      * ~[T] (as a type)
      * deprecated_owned_vector lint
      
      All users of ~[T] should move to using Vec<T> instead.
      3316b1eb
  26. 10 6月, 2014 1 次提交
  27. 06 6月, 2014 2 次提交
  28. 02 6月, 2014 1 次提交
    • A
      std: Drop Total from Total{Eq,Ord} · bba701c5
      Alex Crichton 提交于
      This completes the last stage of the renaming of the comparison hierarchy of
      traits. This change renames TotalEq to Eq and TotalOrd to Ord.
      
      In the future the new Eq/Ord will be filled out with their appropriate methods,
      but for now this change is purely a renaming change.
      
      [breaking-change]
      bba701c5
  29. 01 6月, 2014 1 次提交
  30. 31 5月, 2014 1 次提交
    • A
      std: Rename {Eq,Ord} to Partial{Eq,Ord} · 748bc3ca
      Alex Crichton 提交于
      This is part of the ongoing renaming of the equality traits. See #12517 for more
      details. All code using Eq/Ord will temporarily need to move to Partial{Eq,Ord}
      or the Total{Eq,Ord} traits. The Total traits will soon be renamed to {Eq,Ord}.
      
      cc #12517
      
      [breaking-change]
      748bc3ca
  31. 28 5月, 2014 3 次提交
  32. 27 5月, 2014 1 次提交
  33. 25 5月, 2014 1 次提交
  34. 23 5月, 2014 2 次提交
  35. 22 5月, 2014 1 次提交