1. 05 3月, 2019 6 次提交
  2. 04 3月, 2019 6 次提交
    • B
      Auto merge of #58380 - estebank:missing-match-pats, r=zackmdavis · a9da8fc9
      bors 提交于
      Point at enum definition when match patterns are not exhaustive
      
      ```
      error[E0004]: non-exhaustive patterns: type `X` is non-empty
       --> file.rs:9:11
        |
      1 | / enum X {
      2 | |     A,
        | |     - variant not covered
      3 | |     B,
        | |     - variant not covered
      4 | |     C,
        | |     - variant not covered
      5 | | }
        | |_- `X` defined here
      ...
      9 |       match x {
        |             ^
        |
        = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
      
      error[E0004]: non-exhaustive patterns: `B` and `C` not covered
        --> file.rs:11:11
         |
      1  | / enum X {
      2  | |     A,
      3  | |     B,
      4  | |     C,
         | |     - not covered
      5  | | }
         | |_- `X` defined here
      ...
      11 |       match x {
         |             ^ patterns `C` not covered
      ```
      
      When a match expression doesn't have patterns covering every variant,
      point at the enum's definition span. On a best effort basis, point at the
      variant(s) that are missing. This does not handle the case when the missing
      pattern is due to a field's enum variants:
      
      ```
      enum E1 {
          A,
          B,
          C,
      }
      enum E2 {
          A(E1),
          B,
      }
      fn foo() {
          match E2::A(E1::A) {
              E2::A(E1::B) => {}
              E2::B => {}
          }
          //~^ ERROR `E2::A(E1::A)` and `E2::A(E1::C)` not handled
      }
      ```
      
      Unify look between match with no arms and match with some missing patterns.
      
      Fix #37518.
      a9da8fc9
    • B
      Auto merge of #58807 - Xanewok:update-clippy, r=Xanewok · 9261088a
      bors 提交于
      Update Clippy
      
      Should fix the fallout caused by https://github.com/rust-lang/rust/pull/58321 (still testing it locally).
      
      r? @oli-obk
      9261088a
    • I
      Update Clippy · 594e2616
      Igor Matuszewski 提交于
      594e2616
    • B
      Auto merge of #58505 - schomatis:fix/nll/remove-live-var, r=matthewjasper · 45d015c9
      bors 提交于
      [NLL] Remove `LiveVar`
      
      The `LiveVar` type (and related) made it harder to reason about the code. It seemed as an abstraction that didn't bring any useful concept to the reader (when transitioning from the RFC theory to the actual implementation code).
      
      It achieved a compactness in the vectors storing the def/use/drop information that was related only to the `LocalUseMap`. This PR went in the other direction and favored time over memory (but this decision can be easily reverted to the other side without reintroducing `LiveVar`).
      
      What this PR aims at is to clarify that there's no significant transformation between the MIR `Local` and the `LiveVar` (now refactored as `live_locals: Vec<Local>`): we're just filtering (not mapping) the entire group of `Local`s into a meaningful subset that we should perform the liveness analysis on.
      
      As a side note, there is no guarantee that the liveness analysis is performed only on (what the code calls) "live" variables, if the NLL facts are requested it will be performed on *any* variable so there can't be any assumptions on that regard. (Still, this PR didn't change the general naming convention to reduce the number of changes here and streamline the review process).
      
      **Acceptance criteria:** This PR attempts to do only a minor refactoring and not to change the logic so it can't have any performance impact, particularly, it can't lose any of the significant performance improvement achieved in the great work done in https://github.com/rust-lang/rust/pull/52115.
      
      r? @nikomatsakis
      45d015c9
    • B
      Auto merge of #58425 - wesleywiser:more_profiler_changes, r=michaelwoerister · 87a43637
      bors 提交于
      [self-profiler] Make the profiler faster/more efficient
      
      Related to #58372
      
      r? @michaelwoerister
      87a43637
    • B
      Auto merge of #58673 - matthewjasper:typeck-ptr-coercions, r=pnkfelix · 2cfd6444
      bors 提交于
      [NLL] Type check operations with pointer types
      
      It seems these were forgotten about. Moving to `Rvalue::AddressOf` simplifies the coercions from references, but I want this to be fixed as soon as possible.
      
      r? @pnkfelix
      2cfd6444
  3. 03 3月, 2019 17 次提交
    • W
      Use FxHashMap · f20ad704
      Wesley Wiser 提交于
      f20ad704
    • W
      Reduce the size of events by using a u64 instead of Instant · 9d267894
      Wesley Wiser 提交于
      Part of #58372
      9d267894
    • W
      Remove profiler output and replace with a raw event dump · fccc8419
      Wesley Wiser 提交于
      Related to #58372
      fccc8419
    • W
      Wrap the self-profiler in an `Arc<Mutex<>>` · 25b8c614
      Wesley Wiser 提交于
      This will allow us to send it across threads and measure things like
      LLVM time.
      25b8c614
    • B
      Auto merge of #58879 - spastorino:update_miri, r=oli-obk · c0086b9e
      bors 提交于
      Update miri
      
      Related to #58841
      
      r? @RalfJung
      c0086b9e
    • B
      Auto merge of #58866 - kennytm:rollup, r=kennytm · f565cdd6
      bors 提交于
      Rollup of 14 pull requests
      
      Successful merges:
      
       - #58730 (Have all methods of Filter and FilterMap use internal iteration)
       - #58780 (ManuallyDrop != MaybeUninit)
       - #58782 (Replace `s` with `self` in docs for str methods taking self.)
       - #58785 (allow specifying attributes for tool lints)
       - #58802 (Ensure `record_layout_for_printing()` is inlined.)
       - #58821 (Fixed a syntax error in the pin docs)
       - #58830 (tidy: deny(rust_2018_idioms))
       - #58832 (Revert switching to GCP on AppVeyor)
       - #58833 (tools/rustbook: deny(rust_2018_idioms))
       - #58835 (tools/remote-test-{client,server}: deny(rust_2018_idioms))
       - #58838 (Fix typo in Vec#resize_with documentation)
       - #58842 (Forbid duplicating Cargo as a dependency)
       - #58852 (Update toolchain to build NetBSD release)
       - #58865 (Fix C-variadic function printing)
      f565cdd6
    • K
      Rollup merge of #58865 - dlrobertson:fix-varargs, r=alexreg · 946e670b
      kennytm 提交于
      Fix C-variadic function printing
      
      There is no longer a need to append the string `", ..."` to a functions
      args as `...` is parsed as an argument and will appear in the functions
      arguments.
      
      Fixes: #58853
      946e670b
    • B
      Auto merge of #58793 - Mark-Simulacrum:master-next, r=alexcrichton · ba43811a
      bors 提交于
      Bootstrap compiler update for 1.35 release
      
      r? @alexcrichton
      ba43811a
    • M
      04679431
    • B
      Auto merge of #58464 - jethrogb:jb/std-test-panic-output, r=alexcrichton · 7dbba3d0
      bors 提交于
      Use the correct stderr when testing libstd
      
      When compiling the unit tests for libstd, there are two copies of `std` in existence, see [lib.rs](https://github.com/rust-lang/rust/blob/919cf42/src/libstd/lib.rs#L335-L341). This means there are two copies of everything, including thread local variable definitions. Before this PR, it's possible that libtest would configure a stderr sink in one of those copies, whereas the panic logic would inspect the sink in the other copy, resulting in libtest missing the relevant panic message. This PR makes sure that when testing, the panic logic always accesses the stderr sink from “realstd”, using the same logic that libtest uses.
      7dbba3d0
    • A
      Nit · 379cd29d
      Alexander Regueiro 提交于
      379cd29d
    • E
      Reword error message · d651281a
      Esteban Küber 提交于
      d651281a
    • E
      Use anonymous explicit lifetimes · 509bb0ac
      Esteban Küber 提交于
      509bb0ac
    • E
      Point at enum definition when match patterns are not exhaustive · 0081ef25
      Esteban Küber 提交于
      ```
      error[E0004]: non-exhaustive patterns: type `X` is non-empty
       --> file.rs:9:11
        |
      1 | / enum X {
      2 | |     A,
        | |     - variant not covered
      3 | |     B,
        | |     - variant not covered
      4 | |     C,
        | |     - variant not covered
      5 | | }
        | |_- `X` defined here
      ...
      9 |       match x {
        |             ^
        |
        = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
      
      error[E0004]: non-exhaustive patterns: `B` and `C` not covered
        --> file.rs:11:11
         |
      1  | / enum X {
      2  | |     A,
      3  | |     B,
      4  | |     C,
         | |     - not covered
      5  | | }
         | |_- `X` defined here
      ...
      11 |       match x {
         |             ^ patterns `C` not covered
      ```
      
      When a match expression doesn't have patterns covering every variant,
      point at the enum's definition span. On a best effort basis, point at the
      variant(s) that are missing. This does not handle the case when the missing
      pattern is due to a field's enum variants:
      
      ```
      enum E1 {
          A,
          B,
          C,
      }
      enum E2 {
          A(E1),
          B,
      }
      fn foo() {
          match E2::A(E1::A) {
              E2::A(E1::B) => {}
              E2::B => {}
          }
          //~^ ERROR `E2::A(E1::A)` and `E2::A(E1::C)` not handled
      }
      ```
      
      Unify look between match with no arms and match with some missing patterns.
      
      Fix #37518.
      0081ef25
    • S
      Update miri · ddd4731f
      Santiago Pastorino 提交于
      ddd4731f
    • B
      Auto merge of #58836 - ljedrz:begone_NodeId, r=Zoxc · 0ea22717
      bors 提交于
      Remove NodeId from even more HIR nodes
      
      The next iteration of HirIdification (#57578).
      
      Removes `NodeId` from:
      
      - [x] `StructField`
      - [x] `ForeignItem`
      - [x] `Item`
      - [x] `Pat`
      - [x] `FieldPat`
      - [x] `VariantData`
      - [x] `ImplItemId` (replaces it with `HirId`)
      - [x] `TraitItemId` (replaces it with `HirId`)
      0ea22717
    • M
      Bootstrap compiler update for 1.35 release · 2870015b
      Mark Rousskov 提交于
      2870015b
  4. 02 3月, 2019 11 次提交