1. 12 6月, 2020 5 次提交
    • D
      Rollup merge of #73182 - Aaron1011:feature/call-fn-span, r=matthewjasper · 84b91450
      Dylan DPC 提交于
      Track span of function in method calls, and use this in #[track_caller]
      
      Fixes #69977
      
      When we parse a chain of method calls like `foo.a().b().c()`, each
      `MethodCallExpr` gets assigned a span that starts at the beginning of
      the call chain (`foo`). While this is useful for diagnostics, it means
      that `Location::caller` will return the same location for every call
      in a call chain.
      
      This PR makes us separately record the span of the function name and
      arguments for a method call (e.g. `b()` in `foo.a().b().c()`). This
      `Span` is passed through HIR lowering and MIR building to
      `TerminatorKind::Call`, where it is used in preference to
      `Terminator.source_info.span` when determining `Location::caller`.
      
      This new span is also useful for diagnostics where we want to emphasize
      a particular method call - for an example, see
      https://github.com/rust-lang/rust/pull/72389#discussion_r436035990
      84b91450
    • D
      Rollup merge of #73169 - Amanieu:asm-warnings, r=petrochenkov · b3411159
      Dylan DPC 提交于
      Handle assembler warnings properly
      
      Previously all inline asm diagnostics were treated as errors, but LLVM sometimes emits warnings and notes as well.
      
      Fixes #73160
      
      r? @petrochenkov
      b3411159
    • D
      Rollup merge of #73097 - Mark-Simulacrum:clippy-fail, r=oli-obk · 8d620999
      Dylan DPC 提交于
      Try_run must only be used if toolstate is populated
      
      Clippy's tests were failing the build, but that failure was ignored in favor of checking toolstate. This is the correct behavior for toolstate-checked tools, but Clippy no longer updates its toolstate status as it should always build.
      
      The previous PR of this kind didn't catch this as I expected x.py failures to always lead to a non-successful build in CI, but that's not the case specifically for tool testing.
      8d620999
    • D
      Rollup merge of #73012 - Aaron1011:feature/span-debug-ctxt, r=matthewjasper · 80fce369
      Dylan DPC 提交于
      Show `SyntaxContext` in formatted `Span` debug output
      
      This is only really useful in debug messages, so I've switched to
      calling `span_to_string` in any place that causes a `Span` to end up in
      user-visible output.
      80fce369
    • D
      Rollup merge of #72180 - euclio:rustdoc-test-extra-space, r=Dylan-DPC · f23f6acb
      Dylan DPC 提交于
      remove extra space from crate-level doctest names
      
      Before:
      
      ```
      running 2 tests
      test src/test/rustdoc-ui/doctest-output.rs - foo::bar (line 11) ... ok
      test src/test/rustdoc-ui/doctest-output.rs -  (line 5) ... ok
      
      test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
      ```
      
      After:
      
      ```
      running 2 tests
      test src/test/rustdoc-ui/doctest-output.rs - foo::bar (line 11) ... ok
      test src/test/rustdoc-ui/doctest-output.rs - (line 5) ... ok
      
      test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
      ```
      f23f6acb
  2. 11 6月, 2020 25 次提交
    • B
      Auto merge of #73235 - Dylan-DPC:rollup-zp8oxhg, r=Dylan-DPC · 50c0192c
      bors 提交于
      Rollup of 11 pull requests
      
      Successful merges:
      
       - #72380 (Fix `is_const_context`, update `check_for_cast`)
       - #72941 (Ensure stack when building MIR for matches)
       - #72976 (Clean up E0642 explanation)
       - #73080 (doc/rustdoc: Fix incorrect external_doc feature flag)
       - #73155 (save_analysis: better handle paths and functions signature)
       - #73164 (Add new E0762 error code)
       - #73172 (Fix more clippy warnings)
       - #73181 (Automatically prioritize unsoundness issues)
       - #73183 (Support proc macros in intra doc link resolution)
       - #73208 (Fix doctest template)
       - #73219 (x.py: with --json-output, forward cargo's JSON)
      
      Failed merges:
      
      r? @ghost
      50c0192c
    • D
      Rollup merge of #73219 - RalfJung:cargo-json, r=Mark-Simulacrum · ba0a8d2e
      Dylan DPC 提交于
      x.py: with --json-output, forward cargo's JSON
      
      Fixes https://github.com/rust-lang/rust/issues/73209
      
      r? @Mark-Simulacrum
      ba0a8d2e
    • D
      Rollup merge of #73208 - qm3ster:patch-1, r=Amanieu · 822bb9a1
      Dylan DPC 提交于
      Fix doctest template
      
      `saturating_add` example was not parameterized, but passed because the `u8` would saturate successfully
      822bb9a1
    • D
      Rollup merge of #73183 - Manishearth:intra-doc-macro, r=GuillaumeGomez · d9cf7a17
      Dylan DPC 提交于
      Support proc macros in intra doc link resolution
      
      The feature was written pre-proc macro resolution, so it only supported the wacky MBE resolution rules. This adds support for proc macros as well.
      
      cc @GuillaumeGomez
      
      Fixes #73173
      d9cf7a17
    • D
      Rollup merge of #73181 - LeSeulArtichaut:patch-1, r=spastorino · 6cc757e6
      Dylan DPC 提交于
      Automatically prioritize unsoundness issues
      
      r? @spastorino cc @Mark-Simulacrum @rust-lang/wg-prioritization
      6cc757e6
    • D
      Rollup merge of #73172 - matthiaskrgr:cl9ppy, r=Dylan-DPC · 2ac1598d
      Dylan DPC 提交于
      Fix more clippy warnings
      
      Fixes more of:
      
      clippy::unused_unit
      clippy::op_ref
      clippy::useless_format
      clippy::needless_return
      clippy::useless_conversion
      clippy::bind_instead_of_map
      clippy::into_iter_on_ref
      clippy::redundant_clone
      clippy::nonminimal_bool
      clippy::redundant_closure
      clippy::option_as_ref_deref
      clippy::len_zero
      clippy::iter_cloned_collect
      clippy::filter_next
      
      r? @Dylan-DPC
      2ac1598d
    • D
      Rollup merge of #73164 - GuillaumeGomez:add-e0761, r=petrochenkov · 70c14c2d
      Dylan DPC 提交于
      Add new E0762 error code
      70c14c2d
    • D
      Rollup merge of #73155 - marmeladema:save-analysis-various-fixes, r=Xanewok · b4af8740
      Dylan DPC 提交于
      save_analysis: better handle paths and functions signature
      
      This should improve slightly some possible regressions due to hir rework.
      
      r? @Xanewok
      b4af8740
    • D
      Rollup merge of #73080 - ertos-rs:sean.wilson/devel/external_doc-ref-fix, r=ollie27 · 12e5a69f
      Dylan DPC 提交于
      doc/rustdoc: Fix incorrect external_doc feature flag
      12e5a69f
    • D
      Rollup merge of #72976 - GuillaumeGomez:cleanup-e0642, r=Dylan-DPC · f4661e27
      Dylan DPC 提交于
      Clean up E0642 explanation
      
      r? @Dylan-DPC
      f4661e27
    • D
      Rollup merge of #72941 - nagisa:ensure-stack-for-match, r=oli-obk · adc92bec
      Dylan DPC 提交于
      Ensure stack when building MIR for matches
      
      In particular matching on complex types such as strings will cause
      deep recursion to happen.
      
      Fixes #72933
      
      r? @matthewjasper @oli-obk
      adc92bec
    • D
      Rollup merge of #72380 - lcnr:const_context, r=estebank · 298467ee
      Dylan DPC 提交于
      Fix `is_const_context`, update `check_for_cast`
      
      A better version of #71477
      
      Adds `fn enclosing_body_owner` and uses it in `is_const_context`.
      `is_const_context` now uses the same mechanism as `mir_const_qualif` as it was previously incorrect.
      Renames `is_const_context` to `is_inside_const_context`.
      
      I also updated `check_for_cast` in the second commit, so r? @estebank
      
      (I removed one lvl of indentation, so it might be easier to review by hiding whitespace changes)
      298467ee
    • B
      Auto merge of #71896 - spastorino:existential-assoc-types-variance, r=nikomatsakis · 3ddf4805
      bors 提交于
      Relate existential associated types with variance Invariant
      
      Fixes #71550 #72315
      
      r? @nikomatsakis
      
      The test case reported in that issue now errors with the following message ...
      
      ```
      error[E0495]: cannot infer an appropriate lifetime for lifetime parameter 'a in function call due to conflicting requirements
        --> /tmp/test.rs:25:5
         |
      25 |     bad(&Bar(PhantomData), x)
         |     ^^^^^^^^^^^^^^^^^^^^^^^^^
         |
      note: first, the lifetime cannot outlive the lifetime `'a` as defined on the function body at 24:11...
        --> /tmp/test.rs:24:11
         |
      24 | fn extend<'a, T>(x: &'a T) -> &'static T {
         |           ^^
      note: ...so that reference does not outlive borrowed content
        --> /tmp/test.rs:25:28
         |
      25 |     bad(&Bar(PhantomData), x)
         |                            ^
         = note: but, the lifetime must be valid for the static lifetime...
      note: ...so that the types are compatible
        --> /tmp/test.rs:25:9
         |
      25 |     bad(&Bar(PhantomData), x)
         |         ^^^^^^^^^^^^^^^^^
         = note: expected  `&'static T`
                    found  `&T`
      
      error: aborting due to previous error
      
      For more information about this error, try `rustc --explain E0495`.
      ```
      
      I could also add that test case if we want to have a weaponized one too.
      3ddf4805
    • A
      Update src/libcore/num/mod.rs · 7dc19b0b
      Amanieu d'Antras 提交于
      Co-authored-by: Nlzutao <taolzu@gmail.com>
      7dc19b0b
    • B
      Auto merge of #73198 - ehuss:update-cargo, r=ehuss · e93cb961
      bors 提交于
      Update cargo
      
      15 commits in 40ebd52206e25c7a576ee42c137cc06a745a167a..1ec223effbbbf9fddd3453cdcae3a96a967608eb
      2020-06-01 22:35:00 +0000 to 2020-06-09 20:03:14 +0000
      - Default values for `readme` if not specified (rust-lang/cargo#8277)
      - Fix tree completions. (rust-lang/cargo#8342)
      - Support `{prefix}` and `{lowerprefix}` markers in `config.json` `dl` key (rust-lang/cargo#8267)
      - Add environment variables to identify the binary and crate name (rust-lang/cargo#8270)
      - Bump to 0.47.0, update changelog (rust-lang/cargo#8336)
      - Nits: Remove unneeded mut and loop (rust-lang/cargo#8334)
      - 1.45 beta backports (rust-lang/cargo#8331)
      - Better error message when passing in relative path to Workspace::new (rust-lang/cargo#8321)
      - Don't hash executable filenames on apple platforms. (rust-lang/cargo#8329)
      - fix clippy warnings (rust-lang/cargo#8324)
      - Require latest libgit2 to pull in bugfixes (rust-lang/cargo#8320)
      - Fix an accidental raw access of field (rust-lang/cargo#8319)
      - Use mem::take to replace with Default values (rust-lang/cargo#8314)
      - Allow Windows dylibs without dll suffix. (rust-lang/cargo#8310)
      - Show alias in help message (rust-lang/cargo#8307)
      e93cb961
    • A
      Fix test · 9d36fa3d
      Aaron Hill 提交于
      9d36fa3d
    • B
      Auto merge of #73206 - Dylan-DPC:rollup-rha9g8q, r=Dylan-DPC · ec42485e
      bors 提交于
      Rollup of 9 pull requests
      
      Successful merges:
      
       - #72706 (Add windows group to triagebot)
       - #72789 (resolve: Do not suggest imports from the same module in which we are resolving)
       - #72890 (improper ctypes: normalize return types and transparent structs)
       - #72897 (normalize adt fields during structural match checking)
       - #73005 (Don't create impl candidates when obligation contains errors)
       - #73023 (Remove noisy suggestion of hash_map )
       - #73070 (Add regression test for const generic ICE in #72819)
       - #73157 (Don't lose empty `where` clause when pretty-printing)
       - #73184 (Reoder order in which MinGW libs are linked to fix recent breakage)
      
      Failed merges:
      
      r? @ghost
      ec42485e
    • A
      Clippy fixes · e5f3b94d
      Aaron Hill 提交于
      e5f3b94d
    • A
      Add doc comments · bbf497b0
      Aaron Hill 提交于
      bbf497b0
    • A
      Fix pprust-expr-roundtrip · f69a2a6c
      Aaron Hill 提交于
      f69a2a6c
    • A
      Update Clippy for MethodCall changes · 6e4d0b42
      Aaron Hill 提交于
      6e4d0b42
    • A
      Track span of function in method calls, and use this in #[track_caller] · 28946b34
      Aaron Hill 提交于
      Fixes #69977
      
      When we parse a chain of method calls like `foo.a().b().c()`, each
      `MethodCallExpr` gets assigned a span that starts at the beginning of
      the call chain (`foo`). While this is useful for diagnostics, it means
      that `Location::caller` will return the same location for every call
      in a call chain.
      
      This PR makes us separately record the span of the function name and
      arguments for a method call (e.g. `b()` in `foo.a().b().c()`). This
      `Span` is passed through HIR lowering and MIR building to
      `TerminatorKind::Call`, where it is used in preference to
      `Terminator.source_info.span` when determining `Location::caller`.
      
      This new span is also useful for diagnostics where we want to emphasize
      a particular method call - for an example, see
      https://github.com/rust-lang/rust/pull/72389#discussion_r436035990
      28946b34
    • B
      Auto merge of #73213 - ehuss:fix-emsdk, r=Mark-Simulacrum · 449e8eaa
      bors 提交于
      Fix emcc failure for wasm32.
      
      The wasm32 job is currently failing on CI with the error `ERROR: llc executable not found at /usr/bin/llc`.  The issue is that https://github.com/emscripten-core/emsdk/pull/472 has changed how emsdk discovers its configuration.  We were relying on the global behavior that would use a configuration from the home directory.  However, it looks like emsdk is moving away from that approach.  This change adds the necessary env var for emcc to find the correct configuration.
      
      There are a few alternate approaches this could take.  The `--no-embedded` option could be passed to `emsdk activate` to use the old behavior, but it seems like they want to move away from that.  Another option is to source `emsdk_env.sh`, which is how these env vars normally get set.  I'm not entirely sure how to do that easily in a Dockerfile, though.
      449e8eaa
    • R
      x.py: with --json-output, forward cargo's JSON · f507748c
      Ralf Jung 提交于
      f507748c
    • M
      Add tests for macro@ and derive@ · 34c6b38e
      Manish Goregaokar 提交于
      34c6b38e
  3. 10 6月, 2020 10 次提交
    • E
      Fix emcc failure for wasm32. · cd02052a
      Eric Huss 提交于
      cd02052a
    • M
      Fix doctest template · 5859f6e4
      Mihail Malo 提交于
      `saturating_add` example was not parameterized, but passed because the `u8` would saturate successfully
      5859f6e4
    • G
      Add tests for E0762 · 7bd87cfa
      Guillaume Gomez 提交于
      7bd87cfa
    • G
      50a42fe5
    • D
      Rollup merge of #73184 - mati865:fix-mingw-libs-order, r=petrochenkov · 2b8f1ecc
      Dylan DPC 提交于
      Reoder order in which MinGW libs are linked to fix recent breakage
      
      Recent upstream mingw-w64 changes made libmsvcrt depend on libmingwex breaking compilation in some cases when using **external** MinGW.
      
      Applying this change to the master fixes nightly and stage{1,2} build. For stage0 one has to export `RUSTFLAGS_BOOTSTRAP='-C link-arg=-lmsvcrt'` until this PR lands in bootstrap compiler.
      Therefore I'm humbly asking to also backport it to the beta and update bootstrap compiler.
      2b8f1ecc
    • D
      Rollup merge of #73157 - Aaron1011:where-oh-where-has-my-little-span-gone, r=ecstatic-morse · e04e3c89
      Dylan DPC 提交于
      Don't lose empty `where` clause when pretty-printing
      
      Previously, we would parse `struct Foo where;` and `struct Foo;`
      identically, leading to an 'empty' `where` clause being omitted during
      pretty printing. This will cause us to lose spans when proc-macros
      involved, since we will have a collected `where` token that does not
      appear in the pretty-printed item.
      
      We now explicitly track the presence of a `where` token during parsing,
      so that we can distinguish between `struct Foo where;` and `struct Foo;`
      during pretty-printing
      e04e3c89
    • D
      Rollup merge of #73070 - ayazhafiz:i/72819, r=nikomatsakis · 0a77c8c2
      Dylan DPC 提交于
      Add regression test for const generic ICE in #72819
      
      Closes #72819
      0a77c8c2
    • D
      Rollup merge of #73023 - ayushmishra2005:remove_noisy_suggestion, r=davidtwco · e1cd8c41
      Dylan DPC 提交于
      Remove noisy suggestion of hash_map
      
      Remove noisy suggestion of hash_map #72642
      
      fixes #72642
      e1cd8c41
    • D
      Rollup merge of #73005 - Aaron1011:fix/error-overflow, r=estebank · 024f0259
      Dylan DPC 提交于
      Don't create impl candidates when obligation contains errors
      
      Fixes #72839
      
      In PR #72621, trait selection was modified to no longer bail out early
      when an error type was encountered. This allowed us treat `ty::Error` as
      `Sized`, causing us to avoid emitting a spurious "not sized" error after
      a type error had already occured.
      
      However, this means that we may now try to match an impl candidate
      against the error type. Since the error type will unify with almost
      anything, this can cause us to infinitely recurse (eventually triggering
      an overflow) when trying to verify certain `where` clauses.
      
      This commit causes us to skip generating any impl candidates when an
      error type is involved.
      024f0259
    • D
      Rollup merge of #72897 - lcnr:structurally-match-normalize, r=pnkfelix · 8addb2e6
      Dylan DPC 提交于
      normalize adt fields during structural match checking
      
      fixes #72896
      
      currently only fixes the issue itself and compiles stage 1 libs.
      I believe we have to use something else to normalize the adt fields here,
      as I expect some partially resolved adts to cause problems 🤔
      
      stage 1 libs and the test itself pass, not sure about the rest...
      Will spend some more time looking into it tomorrow.
      
      r? @pnkfelix cc @EddyB
      8addb2e6