1. 09 1月, 2018 1 次提交
    • K
      Rollup merge of #47210 -... · 4a6f4409
      kennytm 提交于
      Rollup merge of #47210 - zackmdavis:the_3rd_of_2_hardest_problems_in_computer_science, r=QuietMisdreavus
      
      fix the doc-comment-decoration-trimming edge-case rustdoc ICE
      
      This `horizontal_trim` function strips the leading whitespace from
      doc-comments that have a left-asterisk-margin:
      
      ```
        /**
         * You know what I mean—
         *
         * comments like this!
         */
      ```
      
      The index of the column of asterisks is `i`, and if trimming is deemed
      possible, we slice each line from `i+1` to the end of the line. But if, in
      particular, `i` was 0 _and_ there was an empty line (as in the example
      given in the reporting issue), we ended up panicking trying to slice an
      empty string from 0+1 (== 1).
      
      Let's tighten our check to say that we can't trim when `i` is even the same
      as the length of the line, not just when it's greater. (Any such cases
      would panic trying to slice `line` from `line.len()+1`.)
      
      Resolves #47197.
      4a6f4409
  2. 08 1月, 2018 5 次提交
    • B
      Auto merge of #47208 - Manishearth:double-ended-searcher, r=pnkfelix · b5392f54
      bors 提交于
      Make double ended searchers use dependent fingers
      
      (fixes #47175)
      
      r? @burntsushi @alexcrichton
      
      needs uplift to beta
      b5392f54
    • B
      Auto merge of #47232 - keatinge:master, r=petrochenkov · 1b193de9
      bors 提交于
      Add help message for incorrect pattern syntax
      
      When I was getting started with rust I often made the mistake of using `||` instead of `|` to match multiple patterns and spent a long time staring at my code wondering what was wrong.
      
      for example:
      
      ```
      fn main() {
          let x = 1;
      
          match x {
              1 || 2 => println!("1 or 2"),
              _ => println!("Something else"),
          }
      }
      
      ```
      
      If you compile this with current rustc you will see
      
      ```
      error: expected one of `...`, `..=`, `..`, `=>`, `if`, or `|`, found `||`
       --> test.rs:5:11
        |
      5 |         1 || 2 => println!("1 or 2"),
        |          -^^ unexpected token
        |          |
        |          expected one of `...`, `..=`, `..`, `=>`, `if`, or `|` here
      
      error: aborting due to previous error
      ```
      
      With my proposed change it will show:
      ```
      error: unexpected token `||` after pattern
       --> test.rs:5:11
        |
      5 |         1 || 2 => println!("1 or 2"),
        |           ^^
        |
        = help: did you mean to use `|` to specify multiple patterns instead?
      
      error: aborting due to previous error
      ```
      1b193de9
    • B
      Auto merge of #47200 - BurntPizza:query-snatp, r=nikomatsakis · 795594cd
      bors 提交于
      Make normalize_and_test_predicates into a query
      
      From #44891.
      
      I'm not real solid on how `dep_graph` stuff works, but if a node is going to have a key (again, not sure how important that is), then the key needs to be `Copy`. So since `normalize_and_test_predicates` only had one out-of-module use, I changed that call site to use a new function, `substitute_normalize_and_test_predicates` which is the query and enables having the arguments be `Copy`. Hopefully this makes sense.
      
      r? @nikomatsakis
      and/or @michaelwoerister
      795594cd
    • B
      Auto merge of #47171 - estebank:numeric-literal-suggestion, r=nikomatsakis · a29461f3
      bors 提交于
      Provide suggestion when trying to use method on numeric literal
      
      New output:
      
      ```
      error[E0688]: can't call method `powi` on ambiguous numeric type `{float}`
        --> $DIR/method-on-ambiguous-numeric-type.rs:12:17
         |
      12 |     let x = 2.0.powi(2);
         |                 ^^^^
      help: you must specify a concrete type for this numeric value, like `f32`
         |
      12 |     let x = 2.0_f32.powi(2);
         |             ^^^^^^^
      ```
      
      Previous output:
      
      ```
      error[E0599]: no method named `powi` found for type `{float}` in the current scope
        --> src/main.rs:12:17
         |
      12 |     let x = 2.0.powi(2);
         |                 ^^^^
         |
         = help: items from traits can only be used if the trait is in scope
      help: the following trait is implemented but not in scope, perhaps add a `use` for it:
         |
      11 | use core::num::Float;
         |
      ```
      
      Fix #40985.
      a29461f3
    • B
      Auto merge of #47161 - MaloJaffre:compiler-docs-regression, r=alexcrichton · ee220dac
      bors 提交于
      Try to fix a perf regression by updating log
      
      Upgrade `log` to `0.4` in multiple crates ~and `cargo`~.
      Cc: #47154.
      ee220dac
  3. 07 1月, 2018 17 次提交
    • M
      Try to fix a perf regression by updating log · 3f073c40
      Malo Jaffré 提交于
      Upgrade `log` to `0.4` in multiple crates.
      3f073c40
    • B
      Auto merge of #47039 - ollie27:rustdoc_trait_impl_src, r=GuillaumeGomez · 8724337c
      bors 提交于
      rustdoc: Add missing src links for generic impls on trait pages
      
      `implementor2item` would return `None` for generic impls so instead this clones the entire `clean::Item` into the `implementors` map which simplifies some code.
      8724337c
    • B
      Auto merge of #47177 -... · 69f17d1a
      bors 提交于
      Auto merge of #47177 - michaelwoerister:erase-invalid-spans-during-metadata-encoding, r=alexcrichton
      
      Map invalid Spans to DUMMY_SP during crate metadata encoding.
      
      This mirrors what we do for stabilizing the incr. comp. cache and is necessary for reproducible builds. For the incr. comp. cache, we *have* to do this because the encoding there cannot represent broken Spans. Metadata encoding has to be in sync with that as not to get unexpected interactions when compiling incrementally.
      
      This should help with fixing issue https://github.com/rust-lang/rust/issues/47066.
      
      r? @alexcrichton
      69f17d1a
    • B
      Auto merge of #47157 - malbarbo:shared-build-musl, r=alexcrichton · 2148bcd5
      bors 提交于
      ci: use a shared script to build musl
      
      The dist-x86_64-musl, dist-various-1 and dist-i586-gnu-i686-musl builders had different scripts to build musl. This PR creates an unified script, which makes it easier to add new musl targets and update musl and libunwind (used in the musl targets).
      
      The libunwind is update from 3.7 to 3.9 for dist-x86_64-musl and dist-i586-gnu-i686-musl (dist-various-1 already used 3.9 version).
      2148bcd5
    • B
      Auto merge of #47156 - petrochenkov:extpath, r=nikomatsakis · a704583d
      bors 提交于
      Support `extern` in paths
      
      Implement the primary alternative to https://github.com/rust-lang/rust/pull/46613 + https://github.com/rust-lang/rust/pull/45771, achieving the same effect without requiring changes to other imports.
      Both need to be experimentally evaluated before making further progress.
      
      The PR also adds docs for all these related features into the unstable book.
      
      cc https://github.com/rust-lang/rust/issues/44660
      r? @nikomatsakis
      a704583d
    • B
      Auto merge of #47235 - kennytm:rollup, r=kennytm · 6828cf90
      bors 提交于
      Rollup of 7 pull requests
      
      - Successful merges: #46947, #47170, #47190, #47205, #47217, #47220, #47230
      - Failed merges: #47233
      6828cf90
    • K
      Fix tidy error · 6aafdc37
      keatinge 提交于
      6aafdc37
    • K
      Use span_suggestion instead of span_err_help · a9b746bb
      keatinge 提交于
      a9b746bb
    • Z
      wherein careful doc-decoration arithmetic proves quite the ICE-breaker · 3cfea334
      Zack M. Davis 提交于
      This `horizontal_trim` function strips the leading whitespace from
      doc-comments that have a left-asterisk-margin:
      
        /**
         * You know what I mean—
         *
         * comments like this!
         */
      
      The index of the column of asterisks is `i`, and if trimming is deemed
      possible, we slice each line from `i+1` to the end of the line. But if, in
      particular, `i` was 0 _and_ there was an empty line (as in the example
      given in the reporting issue), we ended up panicking trying to slice an
      empty string from 0+1 (== 1).
      
      Let's tighten our check to say that we can't trim when `i` is even the same
      as the length of the line, not just when it's greater. (Any such cases
      would panic trying to slice `line` from `line.len()+1`.)
      
      Resolves #47197.
      3cfea334
    • K
      Rollup merge of #47230 - nerd2:debuginfo_shadow, r=alexcrichton · ce701061
      kennytm 提交于
      Debuginfo Shadowed Variable test: fix check numbering
      
      Appears to be a simple fix to restore this test. Ref issue #47163, CC @arielb1
      ce701061
    • K
      Rollup merge of #47220 - nagisa:nonamellvm, r=rkruppe · f6125846
      kennytm 提交于
      Use name-discarding LLVM context
      
      This is only applicable when neither of --emit=llvm-ir or --emit=llvm-bc are not
      requested.
      
      In case either of these outputs are wanted, but the benefits of such context are
      desired as well, -Zfewer_names option provides the same functionality regardless
      of the outputs requested.
      
      Should be a viable fix for https://github.com/rust-lang/rust/issues/46449
      f6125846
    • K
      Rollup merge of #47217 - stjepang:set-examples, r=frewsxcv · e7192c1a
      kennytm 提交于
      Write examples for {BTree,Hash}Set::{get,replace,take}
      e7192c1a
    • K
      Rollup merge of #47205 - eddyb:alloc-id, r=oli-obk · c6bf11cf
      kennytm 提交于
      miri: use AllocId instead of u64.
      
      This makes @alexreg's miri allocation -> LLVM global translation more straight-forward.
      
      r? @oli-obk
      c6bf11cf
    • K
      Rollup merge of #47190 - EdSchouten:cloudabi-libpanic, r=alexcrichton · 48a0f3a5
      kennytm 提交于
      Port libpanic_abort and libpanic_unwind to CloudABI
      
      This change ports both the libpanic* libraries to CloudABI.
      
      The most interesting part of this pull request, however, is that it imports the CloudABI system call API into the Rust tree through a Git submodule. These will also be used by my port of libstd to CloudABI extensively, as that library obviously needs to invoke system calls to implement its primitives.
      
      I have taken the same approach as libc: `src/libcloudabi` + `src/rustc/cloudabi_shim`. If some other naming scheme is preferred, feel free to let me know! As `libcloudabi` is pretty small, maybe it makes sense to copy, instead of using a submodule?
      48a0f3a5
    • K
      Rollup merge of #47170 - eddyb:us-vs-usize, r=nikomatsakis · b63f8978
      kennytm 提交于
      rustc: use {U,I}size instead of {U,I}s shorthands.
      
      `Us`/`Is` come from a time when `us` and `is` were the literal suffixes that are now `usize` / `isize`.
      
      r? @nikomatsakis
      b63f8978
    • K
      Rollup merge of #46947 - tspiteri:checked-div-rem-none, r=frewsxcv · d9d5c667
      kennytm 提交于
      doc: improve None condition doc for `checked_div` and `checked_rem`
      
      This commit improves the condition mentioned in the docs for which `checked_div` and `checked_rem` return `None`.
      
      For signed division, the commit changes "the operation results in overflow" to "the division results in overflow", otherwise there is room for misinterpretation for `checked_rem`: Without considering overflow, `MIN % -1` would be simply zero, allowing the misinterpretation that "the operation" does not result in overflow in this case. This ambiguity is removed using "when the division results in overflow".
      
      For unsigned division, the condition for `None` should be simply when `rhs == 0`, as no other overflow is possible.
      d9d5c667
    • K
      Add tests for error message for pattern matching typo · 8260209b
      keatinge 提交于
      8260209b
  4. 06 1月, 2018 17 次提交