1. 28 1月, 2017 13 次提交
    • A
      Rollup merge of #39321 - king6cong:master, r=frewsxcv · a5ff1165
      Alex Crichton 提交于
      doc comment typo fix
      a5ff1165
    • A
      Rollup merge of #39314 - stjepang:rewrite-sort-header, r=brson · 4ef67bab
      Alex Crichton 提交于
      Rewrite the first sentence in slice::sort
      
      For every method, the first sentence should consisely explain what it does,
      not how. This sentence usually starts with a verb.
      
      It's really weird for `sort` to be explained in terms of another function,
      namely `sort_by`. There's no need for that because it's obvious how `sort`
      sorts elements: there is `T: Ord`.
      
      If `sort_by_key` does not have to explicitly state how it's implemented,
      then `sort` doesn't either.
      
      r? @steveklabnik
      4ef67bab
    • A
      Rollup merge of #39313 - est31:drop_in_place_is_stable, r=GuillaumeGomez · 06fcccfb
      Alex Crichton 提交于
      drop_in_place is stable now, don't #![feature] it in the nomicon and a test.
      
      It was stable since Rust 1.8.
      
      r? @GuillaumeGomez
      06fcccfb
    • A
      Rollup merge of #39311 - solson:fix-unpretty-mir-non-local, r=eddyb · e1a5c467
      Alex Crichton 提交于
      Avoid ICE when pretty-printing non-local MIR item.
      
      This comes up when using `-Zunstable-options --unpretty=mir`. Previously, rustc would ICE due to an unwrap later in this function (after `as_local_node_id`). Instead, we should just ignore items from other crates when pretty-printing MIR.
      
      This was reported in #rust: [this playground code](https://is.gd/PSMBZS) causes an ICE if you click the MIR button. The problem is the mention of the non-local item `std::usize::MAX`, so you can reduce the test case [a lot](https://is.gd/SaLjaa).
      
      r? @EddyB
      e1a5c467
    • A
      Rollup merge of #39307 - alexcrichton:stabilize-1.16, r=brson · 0edc3d37
      Alex Crichton 提交于
      std: Stabilize APIs for the 1.16.0 release
      
      This commit applies the stabilization/deprecations of the 1.16.0 release, as
      tracked by the rust-lang/rust issue tracker and the final-comment-period tag.
      
      The following APIs were stabilized:
      
      * `VecDeque::truncate`
      * `VecDeque::resize`
      * `String::insert_str`
      * `Duration::checked_{add,sub,div,mul}`
      * `str::replacen`
      * `SocketAddr::is_ipv{4,6}`
      * `IpAddr::is_ipv{4,6}`
      * `str::repeat`
      * `Vec::dedup_by`
      * `Vec::dedup_by_key`
      * `Result::unwrap_or_default`
      * `<*const T>::wrapping_offset`
      * `<*mut T>::wrapping_offset`
      * `CommandExt::creation_flags` (on Windows)
      * `File::set_permissions`
      * `String::split_off`
      
      The following APIs were deprecated
      
      * `EnumSet` - replaced with other ecosystem abstractions, long since unstable
      
      Closes #27788
      Closes #35553
      Closes #35774
      Closes #36436
      Closes #36949
      Closes #37079
      Closes #37087
      Closes #37516
      Closes #37827
      Closes #37916
      Closes #37966
      Closes #38080
      0edc3d37
    • A
      Rollup merge of #39306 - GuillaumeGomez:newtype_help, r=eddyb · 13e3b36f
      Alex Crichton 提交于
      Add note for E0117
      
      Fixes #39249.
      
      I just applied the suggestion of @durka since I don't see anything else to add.
      13e3b36f
    • A
      Rollup merge of #39302 - alexcrichton:upload-all, r=brson · ac1e9232
      Alex Crichton 提交于
      travis: Upload all artifacts in build/dist
      
      Previously we only uploaded tarballs, but this modifies Travis/AppVeyor to
      upload everything. We shouldn't have anything else in there to worry about and
      otherwise we need to be sure to pick up pkg/msi/exe installers.
      ac1e9232
    • A
      Rollup merge of #39290 - canndrew:hide-uninhabitedness, r=nikomatsakis · 0e64d495
      Alex Crichton 提交于
      Hide uninhabitedness checks behind feature gate
      
      This reverts the fix to match exhaustiveness checking so that it can be discussed. The new code is now hidden behind the `never_type` feature gate.
      0e64d495
    • A
      Rollup merge of #39285 - nrc:save-tables, r=@EddyB · 666fc452
      Alex Crichton 提交于
      save-analysis: get tables directly, accomodating them being missing
      
      Fixes an ICE when running with save-analysis after an error
      
      r? @EddyB
      666fc452
    • A
      Rollup merge of #39284 - alexcrichton:manifesting, r=brson · f1658610
      Alex Crichton 提交于
      rustbuild: Add manifest generation in-tree
      
      This commit adds a new tool, `build-manifest`, which is used to generate a
      distribution manifest of all produced artifacts. This tool is intended to
      replace the `build-rust-manifest.py` script that's currently located on the
      buildmaster. The intention is that we'll have a builder which periodically:
      
      * Downloads all artifacts for a commit
      * Runs `./x.py dist hash-and-sign`. This will generate `sha256` and `asc` files
        as well as TOML manifests.
      * Upload all generated hashes and manifests to the directory the artifacts came
        from.
      * Upload *all* artifacts (tarballs and hashes and manifests) to an archived
        location.
      * If necessary, upload all artifacts to the main location.
      
      This script is intended to just be the second step here where orchestrating
      uploads and such will all happen externally from the build system itself.
      
      cc #38531
      f1658610
    • A
      Rollup merge of #38617 - pnkfelix:double-reference, r=pnkfelix · a2a3074f
      Alex Crichton 提交于
      Detect double reference when applying binary op
      
      ``` rust
      let vr = v.iter().filter(|x| {
          x % 2 == 0
      });
      ```
      
      will now yield the following compiler output:
      
      ``` bash
      ERROR binary operation `%` cannot be applied to type `&&_`
      NOTE this is a reference of a reference to a type that `%` can be applied to,
      you need to dereference this variable once for this operation to work
      NOTE an implementation of `std::ops::Rem` might be missing for `&&_`
      ```
      
      The first NOTE is new.
      
      Fix #33877
      
      ----
      
      Thanks to @estebank for providing the original PR #34420 (of which this is a tweaked rebase).
      a2a3074f
    • B
      Auto merge of #37057 - brson:nosuggest, r=nikomatsakis · 154c202a
      bors 提交于
      rustc: Remove all "consider using an explicit lifetime parameter" suggestions
      
      These give so many incorrect suggestions that having them is
      detrimental to the user experience. The compiler should not be
      suggesting changes to the code that are wrong - it is infuriating: not
      only is the compiler telling you that _you don't understand_ borrowing,
      _the compiler itself_ appears to not understand borrowing. It does not
      inspire confidence.
      
      r? @nikomatsakis
      154c202a
    • B
      Auto merge of #39320 - alexcrichton:less-backtraces, r=aturon · 62a72586
      bors 提交于
      travis: Turn off core dumps on OSX
      
      I've seen these take up quite a bit of log space and I have the sneaking
      suspicion that they're just making our test suite take longer (sometimes timing
      out on 32-bit OSX now). In any case the backtraces haven't proven too useful,
      unfortunately.
      62a72586
  2. 27 1月, 2017 14 次提交
    • B
      Auto merge of #39282 - petrochenkov:selfstab, r=nikomatsakis · 463affee
      bors 提交于
      Stabilize Self and associated types in struct expressions and patterns
      
      Rebase of https://github.com/rust-lang/rust/pull/37734
      Closes https://github.com/rust-lang/rust/issues/37544
      r? @nikomatsakis
      463affee
    • B
      Auto merge of #39252 - alexcrichton:less-exports, r=nrc · 8367fb7b
      bors 提交于
      Hide a few more standard library symbols
      
      These commits touch up some of the symbol visibility rules for some crates related to the standard library, notably:
      
      * Symbols that are `pub extern` and `#[no_mangle]` which are internal-to-rust ABI things are no longer at the `C` export level, but the `Rust` export level. This includes allocators, panic runtimes, and compiler builtins.
      * The libbacktrace library is now compiled with `-fvisibility=hidden` to ensure that we don't export those symbols.
      8367fb7b
    • A
      std: Compile libbacktrace with -fvisibility=hidden · 3d6f263b
      Alex Crichton 提交于
      We don't want these symbols exported from the standard library, this is
      just an internal implementation detail of the standard library
      currently.
      
      Closes #34984
      3d6f263b
    • A
      rustc: Don't export builtins/panic/alloc syms · a5561ce2
      Alex Crichton 提交于
      This hides symbols from various unstable and implementation-detail
      crates of the standard library. Although typically transitive exported
      `pub extern` functions are exported from cdylibs, these crates aren't
      necessary as they're all implementation details.
      
      Closes #34493
      a5561ce2
    • B
      Auto merge of #39281 - michaelwoerister:make-cc-incr-comp-opt-in, r=nikomatsakis · fece9c73
      bors 提交于
      incr.comp.: Make cross-crate tracking for incr. comp. opt-in.
      
      The current implementation of cross-crate dependency tracking can cause quite long compile times and high memory usage for some crates (see #39208 for example). This PR therefore makes that part of dependency tracking optional. Incremental compilation still works, it will only have very coarse dep-tracking for upstream crates.
      
      r? @nikomatsakis
      fece9c73
    • B
      Auto merge of #39139 - estebank:issue-38147, r=nikomatsakis · 025fb7de
      bors 提交于
      Point to immutable arg/fields when trying to use as &mut
      
      Present the following output when trying to access an immutable borrow's
      field as mutable:
      
      ```
      error[E0389]: cannot borrow data mutably in a `&` reference
        --> $DIR/issue-38147-1.rs:27:9
         |
      26 | fn f(&self) {
         |      -----  use `&mut self` here to make mutable
      27 |     f.s.push('x');
         |     ^^^ assignment into an immutable reference
      ```
      
      And the following when trying to access an immutable struct field as mutable:
      
      ```
      error: cannot borrow immutable borrowed content `*self.s` as mutable
        --> $DIR/issue-38147-3.rs:17:9
         |
      12 |     s: &'a String
         |     ------------- use `&'a mut String` here to make mutable
      ...|
      16 |     fn f(&self) {
         |          -----  use `&mut self` here to make mutable
      17 |         self.s.push('x');
         |         ^^^^^^ cannot borrow as mutable
      ```
      
      Fixes #38147.
      025fb7de
    • B
      Auto merge of #39158 - petrochenkov:bounds, r=nikomatsakis · 23a94697
      bors 提交于
      Bounds parsing refactoring 2
      
      See https://github.com/rust-lang/rust/pull/37511 for previous discussion.
      cc @matklad
      
      Relaxed parsing rules:
       - zero bounds after `:` are allowed in all contexts.
       - zero predicates are allowed after `where`.
      - trailing separator `,` is allowed after predicates in `where` clauses not followed by `{`.
      
      Other parsing rules:
       - trailing separator `+` is still allowed in all bound lists.
      
      Code is also cleaned up and tests added.
      
      I haven't touched parsing of trait object types yet, I'll do it later.
      23a94697
    • B
      rustc: Remove all "consider using an explicit lifetime parameter" suggestions · a2735c02
      Brian Anderson 提交于
      These give so many incorrect suggestions that having them is
      detrimental to the user experience. The compiler should not be
      suggesting changes to the code that are wrong - it is infuriating: not
      only is the compiler telling you that _you don't understand_ borrowing,
      _the compiler itself_ appears to not understand borrowing. It does not
      inspire confidence.
      a2735c02
    • E
      Point to immutable arg/fields when trying to use as &mut · e1280d81
      Esteban Küber 提交于
      Point to immutable borrow arguments and fields when trying to use them as
      mutable borrows. Add label to primary span on "cannot borrow as mutable"
      errors.
      
      Present the following output when trying to access an immutable borrow's
      field as mutable:
      
      ```
      error[E0389]: cannot borrow data mutably in a `&` reference
        --> $DIR/issue-38147-1.rs:27:9
         |
      26 | fn f(&self) {
         |      -----  use `&mut self` here to make mutable
      27 |     f.s.push('x');
         |     ^^^ assignment into an immutable reference
      ```
      
      And the following when trying to access an immutable struct field as mutable:
      
      ```
      error: cannot borrow immutable borrowed content `*self.s` as mutable
        --> $DIR/issue-38147-3.rs:17:9
         |
      12 |     s: &'a String
         |     ------------- use `&'a mut String` here to make mutable
      ...|
      16 |     fn f(&self) {
         |          -----  use `&mut self` here to make mutable
      17 |         self.s.push('x');
         |         ^^^^^^ cannot borrow as mutable
      ```
      e1280d81
    • S
      Avoid ICE when pretty-printing non-local MIR item. · 8ad06af1
      Scott Olson 提交于
      This comes up when using `-Zunstable-options --unpretty=mir`.
      Previously, rustc would ICE due to an unwrap later in this function
      (after `as_local_node_id`). Instead, we should just ignore items from
      other crates when pretty-printing MIR.
      8ad06af1
    • N
      save-analysis: get tables directly, accomodating them being missing · 36ad34d3
      Nick Cameron 提交于
      Fixes an ICE when running with save-analsysis after an error
      36ad34d3
    • K
      doc comment typo fix · fc490ad6
      king6cong 提交于
      fc490ad6
    • B
      Auto merge of #39066 - arielb1:lifetime-extension-test, r=nikomatsakis · 8430042a
      bors 提交于
      End temporary lifetimes being extended by `let X: &_` hints
      
      cc #39283
      
      r? @nikomatsakis
      8430042a
    • A
      travis: Turn off core dumps on OSX · 7095a48b
      Alex Crichton 提交于
      I've seen these take up quite a bit of log space and I have the sneaking
      suspicion that they're just making our test suite take longer (sometimes timing
      out on 32-bit OSX now). In any case the backtraces haven't proven too useful,
      unfortunately.
      7095a48b
  3. 26 1月, 2017 13 次提交