]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoEnsure that `drop_elaboration_and_check_consts` runs for all const items
Dylan MacKenzie [Sun, 3 May 2020 04:16:55 +0000 (21:16 -0700)]
Ensure that `drop_elaboration_and_check_consts` runs for all const items

4 years agoAdd MIR phase and query for drop elaboration
Dylan MacKenzie [Sun, 3 May 2020 04:16:17 +0000 (21:16 -0700)]
Add MIR phase and query for drop elaboration

4 years agoAdd `CheckLiveDrops` pass
Dylan MacKenzie [Sun, 3 May 2020 18:18:26 +0000 (11:18 -0700)]
Add `CheckLiveDrops` pass

4 years agoAdd feature gate for precise live drop checking
Dylan MacKenzie [Thu, 11 Jun 2020 21:30:19 +0000 (14:30 -0700)]
Add feature gate for precise live drop checking

4 years agoMake `Qualifs` getters public
Dylan MacKenzie [Fri, 1 May 2020 04:04:59 +0000 (21:04 -0700)]
Make `Qualifs` getters public

4 years agoMove `check_op` logic to `ops` module
Dylan MacKenzie [Fri, 1 May 2020 04:04:46 +0000 (21:04 -0700)]
Move `check_op` logic to `ops` module

4 years agoAuto merge of #73277 - RalfJung:miri-caller-location, r=oli-obk
bors [Sat, 13 Jun 2020 00:55:34 +0000 (00:55 +0000)]
Auto merge of #73277 - RalfJung:miri-caller-location, r=oli-obk

fix caller_location intrinsic for Miri

Fixes https://github.com/rust-lang/rust/issues/73272

r? @oli-obk Cc @Aaron1011

4 years agoAuto merge of #73262 - wesleywiser:simplifyarmidentity_beta_regression, r=oli-obk
bors [Fri, 12 Jun 2020 19:38:15 +0000 (19:38 +0000)]
Auto merge of #73262 - wesleywiser:simplifyarmidentity_beta_regression, r=oli-obk

Disable the `SimplifyArmIdentity` pass

This pass is buggy so I'm disabling it to fix a stable-to-beta
regression.

Related to #73223

4 years agoAuto merge of #73276 - Dylan-DPC:rollup-hfd81qw, r=Dylan-DPC
bors [Fri, 12 Jun 2020 13:10:57 +0000 (13:10 +0000)]
Auto merge of #73276 - Dylan-DPC:rollup-hfd81qw, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #72906 (Migrate to numeric associated consts)
 - #73178 (expand: More precise locations for expansion-time lints)
 - #73225 (Allow inference regions when relating consts)
 - #73236 (Clean up E0666 explanation)
 - #73273 (Fix Zulip pings)

Failed merges:

r? @ghost

4 years agoDisable the `SimplifyArmIdentity` pass on beta
Wesley Wiser [Fri, 12 Jun 2020 00:46:55 +0000 (20:46 -0400)]
Disable the `SimplifyArmIdentity` pass on beta

This pass is buggy so I'm disabling it to fix a stable-to-beta
regression.

Related to #73223

4 years agofix caller_location intrinsic for Miri
Ralf Jung [Fri, 12 Jun 2020 10:35:37 +0000 (12:35 +0200)]
fix caller_location intrinsic for Miri

4 years agoRollup merge of #73273 - LeSeulArtichaut:patch-1, r=Dylan-DPC
Dylan DPC [Fri, 12 Jun 2020 10:28:31 +0000 (12:28 +0200)]
Rollup merge of #73273 - LeSeulArtichaut:patch-1, r=Dylan-DPC

Fix Zulip pings

r? @Dylan-DPC

4 years agoRollup merge of #73236 - GuillaumeGomez:cleanup-e0666, r=Dylan-DPC
Dylan DPC [Fri, 12 Jun 2020 10:28:29 +0000 (12:28 +0200)]
Rollup merge of #73236 - GuillaumeGomez:cleanup-e0666, r=Dylan-DPC

Clean up E0666 explanation

r? @Dylan-DPC

4 years agoRollup merge of #73225 - tmandry:issue-73050, r=oli-obk
Dylan DPC [Fri, 12 Jun 2020 10:28:27 +0000 (12:28 +0200)]
Rollup merge of #73225 - tmandry:issue-73050, r=oli-obk

Allow inference regions when relating consts

As first noticed by @eddyb, `super_relate_consts` doesn't need to check for inference vars since `eval` does it already (and handles lifetimes correctly by erasing them).

Fixes #73050

r? @oli-obk

4 years agoRollup merge of #73178 - petrochenkov:explint, r=varkor
Dylan DPC [Fri, 12 Jun 2020 10:28:25 +0000 (12:28 +0200)]
Rollup merge of #73178 - petrochenkov:explint, r=varkor

expand: More precise locations for expansion-time lints

First commit: a macro expansion doesn't have a `NodeId` associated with it, but it has a parent `DefId` which we can use for linting.
The observable effect is that lints associated with macro expansions can now be `allow`ed at finer-grained level than whole crate.

Second commit: each macro definition has a `NodeId` which we can use for linting, unless that macro definition was decoded from other crate.

4 years agoRollup merge of #72906 - lzutao:migrate-numeric-assoc-consts, r=dtolnay
Dylan DPC [Fri, 12 Jun 2020 10:28:23 +0000 (12:28 +0200)]
Rollup merge of #72906 - lzutao:migrate-numeric-assoc-consts, r=dtolnay

Migrate to numeric associated consts

The deprecation PR is #72885

cc #68490
cc rust-lang/rfcs#2700

4 years agoFix Zulip pings
LeSeulArtichaut [Fri, 12 Jun 2020 08:40:41 +0000 (10:40 +0200)]
Fix Zulip pings

4 years agoAuto merge of #73266 - ehuss:update-cargo, r=ehuss
bors [Fri, 12 Jun 2020 04:46:03 +0000 (04:46 +0000)]
Auto merge of #73266 - ehuss:update-cargo, r=ehuss

Update cargo

2 commits in 1ec223effbbbf9fddd3453cdcae3a96a967608eb..79c769c3d7b4c2cf6a93781575b7f592ef974255
2020-06-09 20:03:14 +0000 to 2020-06-11 22:13:37 +0000
- Fix failure with missing readme. (rust-lang/cargo#8353)
- Some LTO fixes. (rust-lang/cargo#8349)

4 years agoUpdate cargo
Eric Huss [Fri, 12 Jun 2020 01:47:27 +0000 (18:47 -0700)]
Update cargo

4 years agoAuto merge of #69478 - avr-rust:avr-support-upstream, r=jonas-schievink
bors [Fri, 12 Jun 2020 01:28:37 +0000 (01:28 +0000)]
Auto merge of #69478 - avr-rust:avr-support-upstream, r=jonas-schievink

Enable AVR as a Tier 3 target upstream

Tracking issue: #44052.

Things intentionally left out of the initial upstream:

* The `target_cpu` flag

I have made the cleanup suggestions by @jplatte and @jplatte in https://github.com/avr-rust/rust/commit/043550d9db0582add42e5837f636f61acb26b915.

Anybody feel free to give the branch a test and see how it fares, or make suggestions on the code patch itself.

4 years agoAuto merge of #73259 - Dylan-DPC:rollup-m6nw1n0, r=Dylan-DPC
bors [Thu, 11 Jun 2020 22:08:01 +0000 (22:08 +0000)]
Auto merge of #73259 - Dylan-DPC:rollup-m6nw1n0, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #73033 (Fix #[thread_local] statics as asm! sym operands)
 - #73036 (std: Enable atomic.fence emission on wasm32)
 - #73163 (Add long error explanation for E0724)
 - #73187 (Remove missed `cfg(bootstrap)`)
 - #73195 (Provide suggestion to convert numeric op LHS rather than unwrapping RHS)
 - #73247 (Add various Zulip notifications for prioritization)
 - #73254 (Add comment about LocalDefId -> DefId)

Failed merges:

r? @ghost

4 years agoRollup merge of #73254 - jyn514:local-def-id-comment, r=lcnr
Dylan DPC [Thu, 11 Jun 2020 22:05:36 +0000 (00:05 +0200)]
Rollup merge of #73254 - jyn514:local-def-id-comment, r=lcnr

Add comment about LocalDefId -> DefId

Now there are instructions on how to convert back and forth on both
structs, not just one.

See also https://github.com/rust-lang/rust/pull/73076

r? @lcnr

4 years agoRollup merge of #73247 - LeSeulArtichaut:patch-1, r=spastorino
Dylan DPC [Thu, 11 Jun 2020 22:05:34 +0000 (00:05 +0200)]
Rollup merge of #73247 - LeSeulArtichaut:patch-1, r=spastorino

Add various Zulip notifications for prioritization

Adapts `triagebot.toml` for rust-lang/triagebot#616 and adds various Zulip notifications for the Prioritization WG workflow.
We should also add indications about the procedure for handling those events, cc @rust-lang/wg-prioritization.

r? @spastorino
This should be merged as soon as possible after rust-lang/triagebot#616 is merged, cc @Mark-Simulacrum

4 years agoRollup merge of #73195 - ayazhafiz:i/73145, r=estebank
Dylan DPC [Thu, 11 Jun 2020 22:05:33 +0000 (00:05 +0200)]
Rollup merge of #73195 - ayazhafiz:i/73145, r=estebank

Provide suggestion to convert numeric op LHS rather than unwrapping RHS

Given a code

```rust
fn foo(x: u8, y: u32) -> bool {
    x > y
}
fn main() {}
```

it could be more helpful to provide a suggestion to do "u32::from(x)"
rather than "y.try_into().unwrap()", since the latter may panic.

We do this by passing the LHS of a binary expression up the stack into
the coercion checker.

Closes #73145

4 years agoRollup merge of #73187 - mati865:bootstrap-cleanup, r=Mark-Simulacrum
Dylan DPC [Thu, 11 Jun 2020 22:05:31 +0000 (00:05 +0200)]
Rollup merge of #73187 - mati865:bootstrap-cleanup, r=Mark-Simulacrum

Remove missed `cfg(bootstrap)`

4 years agoRollup merge of #73163 - ayushmishra2005:61137-add-long-error-code-e0724, r=davidtwco
Dylan DPC [Thu, 11 Jun 2020 22:05:29 +0000 (00:05 +0200)]
Rollup merge of #73163 - ayushmishra2005:61137-add-long-error-code-e0724, r=davidtwco

Add long error explanation for E0724

Add long explanation for the E0724 error code
Part of #61137

4 years agoRollup merge of #73036 - alexcrichton:update-wasm-fence, r=Mark-Simulacrum
Dylan DPC [Thu, 11 Jun 2020 22:05:27 +0000 (00:05 +0200)]
Rollup merge of #73036 - alexcrichton:update-wasm-fence, r=Mark-Simulacrum

std: Enable atomic.fence emission on wasm32

This commit removes the `#[cfg]` guards in `atomic::fence` on wasm
targets. Since these guards were originally added the upstream wasm
specification for threads gained an `atomic.fence` instruction, so LLVM
no longer panics on these intrinsics.

Although there aren't a ton of tests in-repo for this right now I've
tested locally and all of these fences generate `atomic.fence`
instructions in wasm.

Closes #65687
Closes #72997

4 years agoRollup merge of #73033 - Amanieu:asm-tls, r=oli-obk
Dylan DPC [Thu, 11 Jun 2020 22:05:19 +0000 (00:05 +0200)]
Rollup merge of #73033 - Amanieu:asm-tls, r=oli-obk

Fix #[thread_local] statics as asm! sym operands

The `asm!` RFC specifies that `#[thread_local]` statics may be used as `sym` operands for inline assembly.

This also fixes a regression in the handling of `#[thread_local]` during monomorphization which caused link-time errors with multiple codegen units, most likely introduced by #71192.

r? @oli-obk

4 years agoAdd comment about LocalDefId -> DefId
Joshua Nelson [Thu, 11 Jun 2020 21:16:38 +0000 (17:16 -0400)]
Add comment about LocalDefId -> DefId

Now there are instructions on how to convert back and forth on both
structs, not just one.

4 years agoAuto merge of #73246 - Dylan-DPC:rollup-xnm531f, r=Dylan-DPC
bors [Thu, 11 Jun 2020 18:11:07 +0000 (18:11 +0000)]
Auto merge of #73246 - Dylan-DPC:rollup-xnm531f, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #72180 (remove extra space from crate-level doctest names)
 - #73012 (Show `SyntaxContext` in formatted `Span` debug output)
 - #73097 (Try_run must only be used if toolstate is populated)
 - #73169 (Handle assembler warnings properly)
 - #73182 (Track span of function in method calls, and use this in #[track_caller])
 - #73207 (Clean up E0648 explanation)
 - #73230 (Suggest including unused asm arguments in a comment to avoid error)

Failed merges:

r? @ghost

4 years agoAdd long error explanation for E0724
Ayush Kumar Mishra [Tue, 9 Jun 2020 10:56:21 +0000 (16:26 +0530)]
Add long error explanation for E0724

Minor refactoring

Minor refactoring

Update src/librustc_error_codes/error_codes/E0724.md

Co-authored-by: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
Update src/librustc_error_codes/error_codes/E0724.md

Co-authored-by: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
Update src/librustc_error_codes/error_codes/E0724.md

Co-authored-by: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
Minor refactoring

4 years agoAdd various Zulip notifications for prioritization
LeSeulArtichaut [Thu, 11 Jun 2020 17:21:09 +0000 (19:21 +0200)]
Add various Zulip notifications for prioritization

4 years agoRollup merge of #73230 - Amanieu:asm-unused2, r=petrochenkov
Dylan DPC [Thu, 11 Jun 2020 17:04:20 +0000 (19:04 +0200)]
Rollup merge of #73230 - Amanieu:asm-unused2, r=petrochenkov

Suggest including unused asm arguments in a comment to avoid error

We require all arguments to an `asm!` to be used in the template string, just like format strings. However in some cases (e.g. `black_box`) it may be desirable to have `asm!` arguments that are not used in the template string.

Currently this is a hard error rather than a lint since `#[allow]` does not work on macros (#63221), so this PR suggests using the unused arguments in an asm comment as a workaround.

r? @petrochenkov

4 years agoRollup merge of #73207 - GuillaumeGomez:cleanup-e0648, r=Dylan-DPC
Dylan DPC [Thu, 11 Jun 2020 17:04:18 +0000 (19:04 +0200)]
Rollup merge of #73207 - GuillaumeGomez:cleanup-e0648, r=Dylan-DPC

Clean up E0648 explanation

r? @Dylan-DPC

4 years agoRollup merge of #73182 - Aaron1011:feature/call-fn-span, r=matthewjasper
Dylan DPC [Thu, 11 Jun 2020 17:04:16 +0000 (19:04 +0200)]
Rollup merge of #73182 - Aaron1011:feature/call-fn-span, r=matthewjasper

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

4 years agoRollup merge of #73169 - Amanieu:asm-warnings, r=petrochenkov
Dylan DPC [Thu, 11 Jun 2020 17:04:14 +0000 (19:04 +0200)]
Rollup merge of #73169 - Amanieu:asm-warnings, r=petrochenkov

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

4 years agoRollup merge of #73097 - Mark-Simulacrum:clippy-fail, r=oli-obk
Dylan DPC [Thu, 11 Jun 2020 17:04:12 +0000 (19:04 +0200)]
Rollup merge of #73097 - Mark-Simulacrum:clippy-fail, r=oli-obk

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.

4 years agoRollup merge of #73012 - Aaron1011:feature/span-debug-ctxt, r=matthewjasper
Dylan DPC [Thu, 11 Jun 2020 17:04:09 +0000 (19:04 +0200)]
Rollup merge of #73012 - Aaron1011:feature/span-debug-ctxt, r=matthewjasper

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.

4 years agoRollup merge of #72180 - euclio:rustdoc-test-extra-space, r=Dylan-DPC
Dylan DPC [Thu, 11 Jun 2020 17:04:08 +0000 (19:04 +0200)]
Rollup merge of #72180 - euclio:rustdoc-test-extra-space, r=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
```

4 years agofixup! Provide suggestion to convert numeric op LHS rather than unwrapping RHS
Ayaz Hafiz [Thu, 11 Jun 2020 15:34:12 +0000 (08:34 -0700)]
fixup! Provide suggestion to convert numeric op LHS rather than unwrapping RHS

4 years agoProvide suggestion to convert numeric op LHS rather than unwrapping RHS
Ayaz Hafiz [Tue, 9 Jun 2020 18:45:40 +0000 (11:45 -0700)]
Provide suggestion to convert numeric op LHS rather than unwrapping RHS

Given a code

```rust
fn foo(x: u8, y: u32) -> bool {
    x > y
}
fn main() {}
```

it could be more helpful to provide a suggestion to do "u32::from(x)"
rather than "y.try_into().unwrap()", since the latter may panic.

We do this by passing the LHS of a binary expression up the stack into
the coercion checker.

Closes #73145

4 years agoClean up E0666 explanation
Guillaume Gomez [Thu, 11 Jun 2020 11:34:04 +0000 (13:34 +0200)]
Clean up E0666 explanation

4 years agoAuto merge of #73235 - Dylan-DPC:rollup-zp8oxhg, r=Dylan-DPC
bors [Thu, 11 Jun 2020 11:17:37 +0000 (11:17 +0000)]
Auto merge of #73235 - Dylan-DPC:rollup-zp8oxhg, r=Dylan-DPC

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

4 years agoRollup merge of #73219 - RalfJung:cargo-json, r=Mark-Simulacrum
Dylan DPC [Thu, 11 Jun 2020 11:16:12 +0000 (13:16 +0200)]
Rollup merge of #73219 - RalfJung:cargo-json, r=Mark-Simulacrum

x.py: with --json-output, forward cargo's JSON

Fixes https://github.com/rust-lang/rust/issues/73209

r? @Mark-Simulacrum

4 years agoRollup merge of #73208 - qm3ster:patch-1, r=Amanieu
Dylan DPC [Thu, 11 Jun 2020 11:16:10 +0000 (13:16 +0200)]
Rollup merge of #73208 - qm3ster:patch-1, r=Amanieu

Fix doctest template

`saturating_add` example was not parameterized, but passed because the `u8` would saturate successfully

4 years agoRollup merge of #73183 - Manishearth:intra-doc-macro, r=GuillaumeGomez
Dylan DPC [Thu, 11 Jun 2020 11:16:08 +0000 (13:16 +0200)]
Rollup merge of #73183 - Manishearth:intra-doc-macro, r=GuillaumeGomez

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

4 years agoRollup merge of #73181 - LeSeulArtichaut:patch-1, r=spastorino
Dylan DPC [Thu, 11 Jun 2020 11:16:06 +0000 (13:16 +0200)]
Rollup merge of #73181 - LeSeulArtichaut:patch-1, r=spastorino

Automatically prioritize unsoundness issues

r? @spastorino cc @Mark-Simulacrum @rust-lang/wg-prioritization

4 years agoRollup merge of #73172 - matthiaskrgr:cl9ppy, r=Dylan-DPC
Dylan DPC [Thu, 11 Jun 2020 11:16:04 +0000 (13:16 +0200)]
Rollup merge of #73172 - matthiaskrgr:cl9ppy, r=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

4 years agoRollup merge of #73164 - GuillaumeGomez:add-e0761, r=petrochenkov
Dylan DPC [Thu, 11 Jun 2020 11:16:02 +0000 (13:16 +0200)]
Rollup merge of #73164 - GuillaumeGomez:add-e0761, r=petrochenkov

Add new E0762 error code

4 years agoRollup merge of #73155 - marmeladema:save-analysis-various-fixes, r=Xanewok
Dylan DPC [Thu, 11 Jun 2020 11:16:00 +0000 (13:16 +0200)]
Rollup merge of #73155 - marmeladema:save-analysis-various-fixes, r=Xanewok

save_analysis: better handle paths and functions signature

This should improve slightly some possible regressions due to hir rework.

r? @Xanewok

4 years agoRollup merge of #73080 - ertos-rs:sean.wilson/devel/external_doc-ref-fix, r=ollie27
Dylan DPC [Thu, 11 Jun 2020 11:15:58 +0000 (13:15 +0200)]
Rollup merge of #73080 - ertos-rs:sean.wilson/devel/external_doc-ref-fix, r=ollie27

doc/rustdoc: Fix incorrect external_doc feature flag

4 years agoRollup merge of #72976 - GuillaumeGomez:cleanup-e0642, r=Dylan-DPC
Dylan DPC [Thu, 11 Jun 2020 11:15:57 +0000 (13:15 +0200)]
Rollup merge of #72976 - GuillaumeGomez:cleanup-e0642, r=Dylan-DPC

Clean up E0642 explanation

r? @Dylan-DPC

4 years agoRollup merge of #72941 - nagisa:ensure-stack-for-match, r=oli-obk
Dylan DPC [Thu, 11 Jun 2020 11:15:54 +0000 (13:15 +0200)]
Rollup merge of #72941 - nagisa:ensure-stack-for-match, r=oli-obk

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

4 years agoRollup merge of #72380 - lcnr:const_context, r=estebank
Dylan DPC [Thu, 11 Jun 2020 11:15:53 +0000 (13:15 +0200)]
Rollup merge of #72380 - lcnr:const_context, r=estebank

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)

4 years agoAuto merge of #71896 - spastorino:existential-assoc-types-variance, r=nikomatsakis
bors [Thu, 11 Jun 2020 04:58:48 +0000 (04:58 +0000)]
Auto merge of #71896 - spastorino:existential-assoc-types-variance, r=nikomatsakis

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.

4 years agoAdd a suggestion to use unused asm arguments in comments
Amanieu d'Antras [Thu, 11 Jun 2020 00:27:48 +0000 (01:27 +0100)]
Add a suggestion to use unused asm arguments in comments

4 years agoUpdate src/libcore/num/mod.rs
Amanieu d'Antras [Thu, 11 Jun 2020 04:21:15 +0000 (05:21 +0100)]
Update src/libcore/num/mod.rs

Co-authored-by: lzutao <taolzu@gmail.com>
4 years agoAuto merge of #73198 - ehuss:update-cargo, r=ehuss
bors [Thu, 11 Jun 2020 01:27:03 +0000 (01:27 +0000)]
Auto merge of #73198 - ehuss:update-cargo, r=ehuss

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)

4 years agoAllow inference regions when relating consts
Tyler Mandry [Thu, 11 Jun 2020 00:08:22 +0000 (17:08 -0700)]
Allow inference regions when relating consts

Fixes #73050

4 years agoCleanup docs
Amanieu d'Antras [Thu, 11 Jun 2020 00:27:39 +0000 (01:27 +0100)]
Cleanup docs

4 years agoFix test
Aaron Hill [Wed, 10 Jun 2020 22:39:05 +0000 (18:39 -0400)]
Fix test

4 years agoAuto merge of #73206 - Dylan-DPC:rollup-rha9g8q, r=Dylan-DPC
bors [Wed, 10 Jun 2020 22:01:37 +0000 (22:01 +0000)]
Auto merge of #73206 - Dylan-DPC:rollup-rha9g8q, r=Dylan-DPC

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

4 years agoClippy fixes
Aaron Hill [Wed, 10 Jun 2020 03:45:32 +0000 (23:45 -0400)]
Clippy fixes

4 years agoAdd doc comments
Aaron Hill [Wed, 10 Jun 2020 00:31:12 +0000 (20:31 -0400)]
Add doc comments

4 years agoFix pprust-expr-roundtrip
Aaron Hill [Wed, 10 Jun 2020 00:25:47 +0000 (20:25 -0400)]
Fix pprust-expr-roundtrip

4 years agoUpdate Clippy for MethodCall changes
Aaron Hill [Tue, 9 Jun 2020 21:44:04 +0000 (17:44 -0400)]
Update Clippy for MethodCall changes

4 years agoTrack span of function in method calls, and use this in #[track_caller]
Aaron Hill [Tue, 9 Jun 2020 19:34:23 +0000 (15:34 -0400)]
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

4 years agoAuto merge of #73213 - ehuss:fix-emsdk, r=Mark-Simulacrum
bors [Wed, 10 Jun 2020 18:02:34 +0000 (18:02 +0000)]
Auto merge of #73213 - ehuss:fix-emsdk, r=Mark-Simulacrum

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.

4 years agox.py: with --json-output, forward cargo's JSON
Ralf Jung [Wed, 10 Jun 2020 16:59:48 +0000 (18:59 +0200)]
x.py: with --json-output, forward cargo's JSON

4 years agoAdd tests for macro@ and derive@
Manish Goregaokar [Wed, 10 Jun 2020 16:11:17 +0000 (09:11 -0700)]
Add tests for macro@ and derive@

4 years agoFix emcc failure for wasm32.
Eric Huss [Wed, 10 Jun 2020 13:02:42 +0000 (06:02 -0700)]
Fix emcc failure for wasm32.

4 years agoFix doctest template
Mihail Malo [Wed, 10 Jun 2020 10:55:40 +0000 (13:55 +0300)]
Fix doctest template

`saturating_add` example was not parameterized, but passed because the `u8` would saturate successfully

4 years agoAdd tests for E0762
Guillaume Gomez [Wed, 10 Jun 2020 09:55:50 +0000 (11:55 +0200)]
Add tests for E0762

4 years agoCreate new error code E0762 for unterminated char literals
Guillaume Gomez [Wed, 10 Jun 2020 09:53:57 +0000 (11:53 +0200)]
Create new error code E0762 for unterminated char literals

4 years agoClean up E0648 explanation
Guillaume Gomez [Wed, 10 Jun 2020 09:44:32 +0000 (11:44 +0200)]
Clean up E0648 explanation

4 years agoRollup merge of #73184 - mati865:fix-mingw-libs-order, r=petrochenkov
Dylan DPC [Wed, 10 Jun 2020 09:03:51 +0000 (11:03 +0200)]
Rollup merge of #73184 - mati865:fix-mingw-libs-order, r=petrochenkov

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.

4 years agoRollup merge of #73157 - Aaron1011:where-oh-where-has-my-little-span-gone, r=ecstatic...
Dylan DPC [Wed, 10 Jun 2020 09:03:49 +0000 (11:03 +0200)]
Rollup merge of #73157 - Aaron1011:where-oh-where-has-my-little-span-gone, r=ecstatic-morse

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

4 years agoRollup merge of #73070 - ayazhafiz:i/72819, r=nikomatsakis
Dylan DPC [Wed, 10 Jun 2020 09:03:47 +0000 (11:03 +0200)]
Rollup merge of #73070 - ayazhafiz:i/72819, r=nikomatsakis

Add regression test for const generic ICE in #72819

Closes #72819

4 years agoRollup merge of #73023 - ayushmishra2005:remove_noisy_suggestion, r=davidtwco
Dylan DPC [Wed, 10 Jun 2020 09:03:45 +0000 (11:03 +0200)]
Rollup merge of #73023 - ayushmishra2005:remove_noisy_suggestion, r=davidtwco

Remove noisy suggestion of hash_map

Remove noisy suggestion of hash_map #72642

fixes #72642

4 years agoRollup merge of #73005 - Aaron1011:fix/error-overflow, r=estebank
Dylan DPC [Wed, 10 Jun 2020 09:03:43 +0000 (11:03 +0200)]
Rollup merge of #73005 - Aaron1011:fix/error-overflow, r=estebank

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.

4 years agoRollup merge of #72897 - lcnr:structurally-match-normalize, r=pnkfelix
Dylan DPC [Wed, 10 Jun 2020 09:03:42 +0000 (11:03 +0200)]
Rollup merge of #72897 - lcnr:structurally-match-normalize, r=pnkfelix

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 :thinking:

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

4 years agoRollup merge of #72890 - davidtwco:issue-66202-normalize-and-transparent-improper...
Dylan DPC [Wed, 10 Jun 2020 09:03:40 +0000 (11:03 +0200)]
Rollup merge of #72890 - davidtwco:issue-66202-normalize-and-transparent-improper-ctypes, r=varkor

improper ctypes: normalize return types and transparent structs

Fixes #66202.

See each commit individually (except the first which adds a test) for more detailed explanations on the changes made.

In summary, this PR ensures that return types are normalized before being checked for FFI-safety, and that transparent newtype wrappers are FFI-safe if the type being wrapped is FFI-safe (often true previously, but not if, after substitution, all types in a transparent newtype were zero sized).

4 years agoRollup merge of #72789 - petrochenkov:impcand, r=davidtwco
Dylan DPC [Wed, 10 Jun 2020 09:03:38 +0000 (11:03 +0200)]
Rollup merge of #72789 - petrochenkov:impcand, r=davidtwco

resolve: Do not suggest imports from the same module in which we are resolving

Based on the idea from https://github.com/rust-lang/rust/pull/72623.

4 years agoRollup merge of #72706 - spastorino:add-windows-group, r=nikomatsakis
Dylan DPC [Wed, 10 Jun 2020 09:03:36 +0000 (11:03 +0200)]
Rollup merge of #72706 - spastorino:add-windows-group, r=nikomatsakis

Add windows group to triagebot

r? @nikomatsakis

4 years agoDon't print bang diagnostics for derives
Manish Goregaokar [Wed, 10 Jun 2020 07:38:13 +0000 (00:38 -0700)]
Don't print bang diagnostics for derives

4 years agoAvoid collisions between traits and their derive macros
Manish Goregaokar [Wed, 10 Jun 2020 07:33:10 +0000 (00:33 -0700)]
Avoid collisions between traits and their derive macros

4 years agoUpdate cargo
Eric Huss [Wed, 10 Jun 2020 02:55:04 +0000 (19:55 -0700)]
Update cargo

4 years agoMigrate to numeric associated consts
Lzu Tao [Tue, 2 Jun 2020 07:59:11 +0000 (07:59 +0000)]
Migrate to numeric associated consts

4 years agoAuto merge of #73190 - Dylan-DPC:rollup-9wbyh4y, r=Dylan-DPC
bors [Wed, 10 Jun 2020 00:48:35 +0000 (00:48 +0000)]
Auto merge of #73190 - Dylan-DPC:rollup-9wbyh4y, r=Dylan-DPC

Rollup of 8 pull requests

Successful merges:

 - #72417 (Remove `RawVec::reserve_in_place`.)
 - #73098 (Add Item::is_fake for rustdoc)
 - #73122 (Resolve E0584 conflict)
 - #73123 (Clean up E0647 explanation)
 - #73133 (Enforce unwind invariants)
 - #73148 (Fix a typo (size of the size))
 - #73149 (typo: awailable -> available)
 - #73161 (Add mailmap entry)

Failed merges:

r? @ghost

4 years agoFix rustc-dev-guide url
Santiago Pastorino [Wed, 10 Jun 2020 00:19:26 +0000 (21:19 -0300)]
Fix rustc-dev-guide url

4 years agoAdd test for proc macro resolution in intra doc links
Manish Goregaokar [Tue, 9 Jun 2020 21:13:23 +0000 (14:13 -0700)]
Add test for proc macro resolution in intra doc links

4 years agointra-doc macro resolution should also handle proc macros
Manish Goregaokar [Tue, 9 Jun 2020 19:59:15 +0000 (12:59 -0700)]
intra-doc macro resolution should also handle proc macros

4 years agoRollup merge of #73161 - tspiteri:mailmap, r=nikomatsakis
Dylan DPC [Tue, 9 Jun 2020 23:06:35 +0000 (01:06 +0200)]
Rollup merge of #73161 - tspiteri:mailmap, r=nikomatsakis

Add mailmap entry

4 years agoRollup merge of #73149 - cuviper:awailable, r=steveklabnik
Dylan DPC [Tue, 9 Jun 2020 23:06:34 +0000 (01:06 +0200)]
Rollup merge of #73149 - cuviper:awailable, r=steveklabnik

typo: awailable -> available

4 years agoRollup merge of #73148 - DarkEld3r:patch-1, r=jonas-schievink
Dylan DPC [Tue, 9 Jun 2020 23:06:32 +0000 (01:06 +0200)]
Rollup merge of #73148 - DarkEld3r:patch-1, r=jonas-schievink

Fix a typo (size of the size)

4 years agoRollup merge of #73133 - doctorn:unwind-mir-validation, r=jonas-schievink
Dylan DPC [Tue, 9 Jun 2020 23:06:30 +0000 (01:06 +0200)]
Rollup merge of #73133 - doctorn:unwind-mir-validation, r=jonas-schievink

Enforce unwind invariants

I had a quick look at #72959. The failure message probably needs to be more detailed but I just wanted to check I got the right idea. I have no idea how to right a test for this either...

r? @jonas-schievink

Resolves #72959 (hypothetically)

4 years agoRollup merge of #73123 - GuillaumeGomez:cleanup-e0647, r=Dylan-DPC
Dylan DPC [Tue, 9 Jun 2020 23:06:29 +0000 (01:06 +0200)]
Rollup merge of #73123 - GuillaumeGomez:cleanup-e0647, r=Dylan-DPC

Clean up E0647 explanation

r? @Dylan-DPC

4 years agoRollup merge of #73122 - doctorn:issue-73116, r=varkor
Dylan DPC [Tue, 9 Jun 2020 23:06:27 +0000 (01:06 +0200)]
Rollup merge of #73122 - doctorn:issue-73116, r=varkor

Resolve E0584 conflict

Adds a new error code (`E0761`) to indicate ambiguity in module file names and an accompanying expanded description to resolve a conflict over `E0584`.

Resolves #73116

4 years agoRollup merge of #73098 - jyn514:rustdoc-is-fake, r=GuillaumeGomez
Dylan DPC [Tue, 9 Jun 2020 23:06:25 +0000 (01:06 +0200)]
Rollup merge of #73098 - jyn514:rustdoc-is-fake, r=GuillaumeGomez

Add Item::is_fake for rustdoc

I wasn't aware items _could_ be fake, so I think having a function
mentioning it could be helpful. Also, I'd need to make this change for
cross-crate intra-doc links anyway, so I figured it's better to make the
refactor separate.

4 years agoRollup merge of #72417 - nnethercote:rm-RawVec-reserve_in_place, r=Amanieu
Dylan DPC [Tue, 9 Jun 2020 23:06:23 +0000 (01:06 +0200)]
Rollup merge of #72417 - nnethercote:rm-RawVec-reserve_in_place, r=Amanieu

Remove `RawVec::reserve_in_place`.

And some related clean-ups.

r? @oli-obk