1. 13 4月, 2020 14 次提交
  2. 12 4月, 2020 26 次提交
    • 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
    • E
      fix rebase · 984aac6e
      Esteban Küber 提交于
      984aac6e
    • L
      Make panic-unwind a default feature for libstd · 1864caaa
      Luca Barbieri 提交于
      x.py sets it unconditionally, so want it for plain "cargo build".
      
      We need to load one of the panic runtimes that is in src (vs. pre-built in the
      compiler's sysroot) to ensure that we don't load libpanic_unwind from the
      sysroot. That would lead to a load of libcore, also from the sysroot, and create
      lots of errors about duplicate lang items.
      1864caaa
    • L
      Don't emit rerun-if-changed on llvm-config if using system LLVM · 3dd500de
      Luca Barbieri 提交于
      The code was broken because it printed "llvm-config" instead of the
      absolute path to the llvm-config executable, causing Cargo to always
      rebuild librustc_llvm if using system LLVM.
      
      Also, it's not the build system's job to rebuild when a system library
      changes, so we simply don't emit "rerun-if-changed" if a path to LLVM
      was not explicitly provided.
      3dd500de
    • L
      53d58dbf
    • L
      Depend on getopts from crates.io · ac2b84f9
      Luca Barbieri 提交于
      rustc_session exports it for other crates to avoid mismatching
      crate versions.
      ac2b84f9
    • E
      review comments · ca25e286
      Esteban Küber 提交于
      ca25e286
    • E
      review comments · 44394707
      Esteban Küber 提交于
      44394707
    • E
      1e3bdc08
    • E
      01169572
    • E
      Account for type params with bounds · c85fde12
      Esteban Küber 提交于
      c85fde12
    • E
      review comments · 794b644f
      Esteban Küber 提交于
      794b644f
    • E
      review comments · 2c998aa8
      Esteban Küber 提交于
      2c998aa8