1. 14 4月, 2020 3 次提交
    • B
      bless mir opt tests · 4714e202
      Bastian Kauschke 提交于
      4714e202
    • B
      unit rvalue: use constant `()` instead of tuple · db83fdc4
      Bastian Kauschke 提交于
      db83fdc4
    • B
      Auto merge of #70989 - eddyb:mir-opt-32-pr-ci, r=Mark-Simulacrum · c58c5327
      bors 提交于
       ci: run mir-opt tests on PR CI also as 32-bit (for `EMIT_MIR_FOR_EACH_BIT_WIDTH`).
      
      Background: #69916 and [`src/test/mir-opt/README.md`](https://github.com/rust-lang/rust/blob/master/src/test/mir-opt/README.md):
      > By default 32 bit and 64 bit targets use the same dump files, which can be problematic in the
      presence of pointers in constants or other bit width dependent things. In that case you can add
      >
      > ```
      > // EMIT_MIR_FOR_EACH_BIT_WIDTH
      > ```
      >
      > to your test, causing separate files to be generated for 32bit and 64bit systems.
      
      However, if you change the output of such a test (intentionally or not), or if you add a test and it varies between 32-bit and 64-bit platforms, you have to run this command (for a x64 linux host):
      `./x.py test --stage 1 --target x86_64-unknown-linux-gnu --target i686-unknown-linux-gnu --bless  src/test/mir-opt`
      
      Otherwise, bors trying to merge the PR will fail, since we test 32-bit targets there.
      But we don't on PR CI, which means there's no way the PR author would know (unless they were burnt by this already and know what to look for).
      
      This PR resolves that by running `mir-opt` tests for ~~`i686-unknown-linux-gnu`~~, on PR CI.
      **EDIT**: switched to `armv5te-unknown-linux-gnueabi` to work around LLVM 7 crashes (see https://github.com/rust-lang/compiler-builtins/pull/311#issuecomment-612270089), found during testing.
      
      cc @rust-lang/wg-mir-opt @rust-lang/infra
      c58c5327
  2. 13 4月, 2020 15 次提交
  3. 12 4月, 2020 22 次提交
    • D
      fix issue 69130 · 57ed3d37
      David Renshaw 提交于
      57ed3d37
    • D
      Rollup merge of #71057 - GuillaumeGomez:cleanup-e0516, r=Dylan-DPC · e6846306
      Dylan DPC 提交于
      Clean up E0516 explanation
      
      r? @Dylan-DPC
      e6846306
    • D
      Rollup merge of #71053 - phansch:update_kw_sym_docs, r=Dylan-DPC · 0e47d694
      Dylan DPC 提交于
      Add some basic docs to `sym` and `kw` modules
      
      I was looking into improving some Clippy documentation but was missing a
      place that explains the `kw` and `sym` modules from rustc.
      
      This adds some very basic usage documentation to these modules.
      0e47d694
    • D
      Rollup merge of #71048 - arlosi:normalize_ext_src, r=eddyb · 9c34740e
      Dylan DPC 提交于
      Normalize source when loading external foreign source into SourceMap
      
      The compiler normalizes source when reading files initially (removes BOMs, etc), but not when loading external sources.
      
      This leads to the external source matching according to the `src_hash`, but differing internally because it was not normalized.
      
      Fixes #70874.
      9c34740e
    • D
      Rollup merge of #71041 - JohnTitor:rustc-dev-guide, r=jonas-schievink · d608dfc4
      Dylan DPC 提交于
      Update links of `rustc guide`
      
      Picks up the things we left behind in the transition, hopefully they're last ones.
      
      r? @spastorino
      d608dfc4
    • D
      Rollup merge of #71034 - GuillaumeGomez:cleanup-e0515, r=Dylan-DPC · b3372ba1
      Dylan DPC 提交于
      Clean up E0515 explanation
      
      r? @Dylan-DPC
      b3372ba1
    • D
      Rollup merge of #71029 - Mark-Simulacrum:cargo-build, r=Mark-Simulacrum · b83c2e95
      Dylan DPC 提交于
      Partial work on building with Cargo
      
      This cherry picks the commits I'm directly approving from #70999, I want to land them so that that PR is smaller.
      b83c2e95
    • B
      Auto merge of #70873 - mark-i-m:update-rdg, r=JohnTitor · 4d1fbacc
      bors 提交于
      Update rustc-dev-guide
      
      This should finally fix toolstate
      
      r? @JohnTitor
      4d1fbacc
    • G
      Clean up E0516 explanation · d0b23d5b
      Guillaume Gomez 提交于
      d0b23d5b
    • M
      submodules: update clippy from d342cee7 to af5940b7 · 6de0dd1d
      Matthias Krüger 提交于
      Changes:
      ````
      Allow UUID style formatting for `inconsistent_digit_grouping` lint
      rustup https://github.com/rust-lang/rust/pull/70986
      rustup https://github.com/rust-lang/rust/pull/69745
      Rustup to https://github.com/rust-lang/rust/pull/70913
      compare with the second largest instead of the smallest variant
      Revert "Downgrade new_ret_no_self to pedantic"
      Check for clone-on-copy in argument positions
      Check fn header along with decl when suggesting to implement trait
      Downgrade implicit_hasher to pedantic
      Move cognitive_complexity to nursery
      Run fmt and update test
      Use int assoc consts in MANUAL_SATURATING_ARITHMETIC
      Use int assoc consts in checked_conversions lint
      Use primitive type assoc consts in more tests
      Use integer assoc consts in more lint example code
      Don't import primitive type modules
      Use assoc const NAN for zero_div_zero lint
      Fix float cmp to use assoc fxx::EPSILON
      Fix NAN comparison lint to use assoc NAN
      Refine lint message.
      Lint on opt.as_ref().map(|x| &**x).
      Include OpAssign in suspicious_op_assign_impl
      result_map_or_into_option: fix syntax error in example
      result_map_or_into: fix dogfood_clippy error => {h,l}int
      CONTRIBUTING.md: fix broken triage link
      result_map_or_into_option: fix `cargo dev fmt --check` errors
      result_map_or_into_option: move arg checks into tuple assignment
      result_map_or_into_option: add `opt.map_or(None, |_| Some(y))` test
      result_map_or_into_option: destructure lint tuple or return early
      result_map_or_into_option: add good and bad examples
      result_map_or_into_option: explicitly note absence of known problems
      Downgrade new_ret_no_self to pedantic
      Downgrade unreadable_literal to pedantic
      Update CONTRIBUTING.md
      Rename rustc -> rustc_middle in doc links
      result_map_or_into_option: add lint to catch manually adpating Result -> Option
      Move matches test in matches module
      Run update_lints
      Make lint modules private
      Don't filter lints in code generation functions
      Build lint lists once and the reuse them to update files
      Get rid of Lint::is_internal method
      Clean up update_lints
      Downgrade inefficient_to_string to pedantic
      Downgrade trivially_copy_pass_by_ref to pedantic
      Downgrade let_unit_value to pedantic
      ````
      Fixes #70993
      6de0dd1d
    • P
      Add some basic docs to `sym` and `kw` modules · ec4f7e2e
      Philipp Hansch 提交于
      I was looking into improving some Clippy documentation but was missing a
      place that explains the `kw` and `sym` modules from rustc.
      ec4f7e2e
    • B
      Auto merge of #69707 - estebank:impl-trait-missing-bounds, r=Centril · 32fb4dcd
      bors 提交于
      Handle `impl Trait` where `Trait` has an assoc type with missing bounds
      
      When encountering a type parameter that needs more bounds the trivial case is `T` `where T: Bound`, but it can also be an `impl Trait` param that needs to be decomposed to a type param for cleaner code. For example, given
      
      ```rust
      fn foo(constraints: impl Iterator) {
          for constraint in constraints {
              println!("{:?}", constraint);
          }
      }
      ```
      
      the previous output was
      
      ```
      error[E0277]: `<impl Iterator as std::iter::Iterator>::Item` doesn't implement `std::fmt::Debug`
       --> src/main.rs:3:26
        |
      1 | fn foo(constraints: impl Iterator) {
        |                                    - help: consider further restricting the associated type: `where <impl Iterator as std::iter::Iterator>::Item: std::fmt::Debug`
      2 |     for constraint in constraints {
      3 |         println!("{:?}", constraint);
        |                          ^^^^^^^^^^ `<impl Iterator as std::iter::Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
        |
        = help: the trait `std::fmt::Debug` is not implemented for `<impl Iterator as std::iter::Iterator>::Item`
        = note: required by `std::fmt::Debug::fmt`
      ```
      
      which is incorrect as `where <impl Iterator as std::iter::Iterator>::Item: std::fmt::Debug` is not valid syntax nor would it restrict the positional `impl Iterator` parameter if it were.
      
      The output being introduced is
      
      ```
      error[E0277]: `<impl Iterator as std::iter::Iterator>::Item` doesn't implement `std::fmt::Debug`
       --> src/main.rs:3:26
        |
      3 |         println!("{:?}", constraint);
        |                          ^^^^^^^^^^ `<impl Iterator as std::iter::Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
        |
        = help: the trait `std::fmt::Debug` is not implemented for `<impl Iterator as std::iter::Iterator>::Item`
        = note: required by `std::fmt::Debug::fmt`
      help: introduce a type parameter with a trait bound instead of using `impl Trait`
         |
      LL | fn foo<T: Iterator>(constraints: T) where <T as std::iter::Iterator>::Item: std::fmt::Debug  {
         |       ^^^^^^^^^^^^^              ^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ```
      
      This suggestion is correct and lead the user in the right direction: because you have an associated type restriction you can no longer use `impl Trait`, the only reasonable alternative is to introduce a named type parameter, bound by `Trait` and with a `where` binding on the associated type for the new type parameter `as Trait` for the missing bound.
      
      *Ideally*, we would want to suggest something like the following, but that is not valid syntax today
      
      ```
      error[E0277]: `<impl Iterator as std::iter::Iterator>::Item` doesn't implement `std::fmt::Debug`
       --> src/main.rs:3:26
        |
      3 |         println!("{:?}", constraint);
        |                          ^^^^^^^^^^ `<impl Iterator as std::iter::Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
        |
        = help: the trait `std::fmt::Debug` is not implemented for `<impl Iterator as std::iter::Iterator>::Item`
        = note: required by `std::fmt::Debug::fmt`
      help: introduce a type parameter with a trait bound instead of using `impl Trait`
         |
      LL | fn foo(constraints: impl Iterator<Item: std::fmt::Debug>) {
         |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ```
      
      Fix #69638.
      32fb4dcd
    • A
      Normalize source when loading external foreign source into SourceMap · f41aa161
      Arlo Siemsen 提交于
      The compiler normalizes source when reading files initially (removes BOMs, etc), but not when loading external sources.
      
      Fixes #70874 by normalizing when loading external sources too. Adds a test to verify normalization.
      f41aa161
    • B
      Auto merge of #69926 - RoccoDev:master, r=estebank,varkor · 941d4352
      bors 提交于
      rustc: Add a warning count upon completion
      
      This adds a `build completed with one warning/x warnings` message, similar to the already present `aborted due to previous error` message.
      941d4352
    • D
      Add `#[inline(always)]` to `into_query_param` · 04c91a0b
      Dylan MacKenzie 提交于
      04c91a0b
    • D
      Apply suggestions from review · f0c77337
      Dylan MacKenzie 提交于
      f0c77337
    • D
      Use custom trait instead of `Into` · beeacdb2
      Dylan MacKenzie 提交于
      beeacdb2
    • D
      Simplify macro · fd8cf3c5
      Dylan MacKenzie 提交于
      fd8cf3c5
    • D
      6e5a2106
    • D
      Fix inference fallout · 0d4639d7
      Dylan MacKenzie 提交于
      0d4639d7
    • D
      Impl `From<LocalDefId>` for `DefId` · 10ed5012
      Dylan MacKenzie 提交于
      10ed5012
    • D
      62b5aff1