Commit graph

30568 commits

Author SHA1 Message Date
Santiago Pastorino
365807f057
Make Box<dyn FnOnce> respect self alignment 2020-04-18 14:37:44 -03:00
Eduard-Mihai Burtescu
289f46a7f5 Detect mistyped associated consts in Instance::resolve. 2020-04-18 18:39:59 +03:00
bors
52fa23add6 Auto merge of #71218 - eddyb:a-lifetime-stranded-in-fn-def, r=nikomatsakis
outlives: ignore lifetimes shallowly found in `ty::FnDef`s.

Fixes #70917 by restoring the pre-#70164 behavior for now.

r? @nikomatsakis
2020-04-18 14:15:31 +00:00
Ralf Jung
cf3470a5fc miri-unleashed: test that we detect heap allocations 2020-04-18 11:38:25 +02:00
bors
28742a1146 Auto merge of #71147 - cuviper:min-llvm8, r=Mark-Simulacrum
Update the minimum external LLVM to 8

LLVM 8 was released on March 20, 2019, over a year ago.
2020-04-18 01:37:27 +00:00
Dylan DPC
4b9eeca5c5
Rollup merge of #71243 - Duddino:Fix2, r=estebank
Account for use of `try!()` in 2018 edition and guide users in the right direction

fixes #71155
2020-04-17 23:56:04 +02:00
Dylan DPC
43cf9d791b
Rollup merge of #70467 - wesleywiser:invoke-vs-call, r=nagisa
Use `call` instead of `invoke` for functions that cannot unwind

The `FnAbi` now knows if the function is allowed to unwind. If a
function isn't allowed to unwind, we can use a `call` instead of an
`invoke`.

This resolves an issue when calling LLVM intrinsics which cannot unwind
LLVM will generate an error if you attempt to invoke them so we need to
ignore cleanup blocks in codegen and generate a call instead.

Fixes #69911

r? @eddyb
cc @rust-lang/wg-ffi-unwind
2020-04-17 23:55:56 +02:00
Josh Stone
ccecae5fdd Fix unused results from mem::replace 2020-04-17 13:59:14 -07:00
Jonas Schievink
ae533151c3 Ignore generator-drop-cleanup on wasm32-bare 2020-04-17 20:37:34 +02:00
Jonas Schievink
7bbdd2d4d6 Adjust mir-opt test and make it drop something 2020-04-17 20:36:46 +02:00
Dylan DPC
d30292caa7
Rollup merge of #71239 - JohnTitor:llvm-asm, r=Amanieu
Rename `asm` test directory in favor of `llvm_asm`

r? @Amanieu
2020-04-17 20:35:21 +02:00
Dylan DPC
a12d42ba86
Rollup merge of #69642 - ecstatic-morse:issue-69615, r=oli-obk
Use query to determine whether function needs const checking

Resolves #69615.

The HIR const-checker was checking the `constness` of a function's `fn_sig` to determine whether a function needed const-checking. Now that const trait impls are a thing, this is no longer enough. All code should use the `is_const_fn_raw` query instead, which takes the constness of the impl block into account.

r? @oli-obk
2020-04-17 20:35:19 +02:00
Jonas Schievink
50c1c295ee Make needs_drop less pessimistic on generators 2020-04-17 20:30:23 +02:00
Duddino
ba61fe432a Account for use of try!() in 2018 edition and guide users in the right direction 2020-04-17 14:08:08 +02:00
bors
8d67f576b5 Auto merge of #71049 - eddyb:const-err, r=oli-obk
Add `ConstKind::Error` and convert `ErrorHandled::Reported` to it.

By replicating the `ty::Error` approach to encoding "an error has occurred", all of the mechanisms that skip redundant/downstream errors are engaged and help out (see the reduction in test output).

This PR also adds `ErrorHandled::Linted` for the lint case because using `ErrorHandled::Reported` *without* having emitted an error that is *guaranteed* to stop compilation, is incorrect now.

r? @oli-obk cc @rust-lang/wg-const-eval @varkor @yodaldevoid
2020-04-17 11:52:01 +00:00
Yuki Okushi
af442d964d
Rename asm test directory in favor of llvm_asm 2020-04-17 18:36:16 +09:00
bors
b2c1a606fe Auto merge of #70629 - anyska:fields-variant, r=oli-obk
rustc_target::abi: add Primitive variant to FieldsShape.

Originally suggested by @eddyb.
2020-04-17 08:42:51 +00:00
bors
861996e138 Auto merge of #71230 - Dylan-DPC:rollup-rofigbv, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #70578 (Add long error explanation for E0657)
 - #70910 (Hides default fns inside Fuse impl to avoid exposing it to any crate)
 - #71164 (reword Miri validity errors: undefined -> uninitialized)
 - #71182 (Add some regression tests)
 - #71206 (Miri error messages: avoid try terminology)
 - #71220 (Dogfood or_patterns in the standard library)
 - #71225 (Fix typo in Default trait docs: Provides -> Provide)

Failed merges:

r? @ghost
2020-04-17 04:15:18 +00:00
Eduard-Mihai Burtescu
eccb28e3d6 ty/print: pretty-print constant aggregates (arrays, tuples and ADTs). 2020-04-17 05:18:32 +03:00
Eduard-Mihai Burtescu
aabed9322e mir: pretty-print Rvalue::Aggregate correctly. 2020-04-17 04:58:37 +03:00
Dylan DPC
b2e4d4836f
Rollup merge of #71206 - RalfJung:dont-try, r=oli-obk
Miri error messages: avoid try terminology

r? @oli-obk
2020-04-17 03:05:18 +02:00
Dylan DPC
b347097e4d
Rollup merge of #71182 - JohnTitor:regression-tests, r=Mark-Simulacrum
Add some regression tests

Closes #24843
Closes #28575
Closes #54067
Closes #66868
Closes #67893
Closes #68813
2020-04-17 03:05:16 +02:00
Dylan DPC
5280d15d62
Rollup merge of #71164 - RalfJung:uninit-not-undef, r=oli-obk
reword Miri validity errors: undefined -> uninitialized

I don't think we say "undefined value" or anything like that anywhere in the docs or so, but we do use the term "uninitialized memory", so I think we should do the same here.

Longer-term, I think we should also internally rename "undef" to "uninit".

r? @oli-obk
2020-04-17 03:05:15 +02:00
Dylan DPC
abd72f7fc2
Rollup merge of #70578 - PankajChaudhary5:master, r=GuillaumeGomez
Add long error explanation for E0657

Added proper error explanation for issue E0657 in the Rust compiler.

Part of #61137

r? @GuillaumeGomez
2020-04-17 03:05:11 +02:00
bors
318726b301 Auto merge of #71131 - pnkfelix:issue-69798-dont-reuse-post-lto-products-when-exports-change, r=nagisa
Do not reuse post LTO products when exports change

Do not reuse post lto products when exports change

Generalizes code from PR #67020, which handled case when imports change.

Fix #69798
2020-04-17 00:44:24 +00:00
Dylan DPC
c68c71e24e
Rollup merge of #70611 - pawanbisht62:doc/61137-add-long-error-code-e0708, r=GuillaumeGomez
Add long error explanation for E0708 #61137

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

r? @GuillaumeGomez
2020-04-16 23:34:41 +02:00
Yuki Okushi
a6855b918b
Avoid emitting stderr for now 2020-04-17 06:16:15 +09:00
Yuki Okushi
0b85356387
Add test for issue-67893 2020-04-17 06:16:15 +09:00
Yuki Okushi
119bbbe31a
Add test for issue-54067 2020-04-17 06:16:15 +09:00
Yuki Okushi
077a7f741f
Add test for issue-28575 2020-04-17 06:16:14 +09:00
Yuki Okushi
9fb3f55211
Add test for issue-24843 2020-04-17 06:16:14 +09:00
Eduard-Mihai Burtescu
f86f03263c outlives: ignore lifetimes shallowly found in ty::FnDefs. 2020-04-16 23:18:44 +03:00
bors
7f3df57724 Auto merge of #71201 - Dylan-DPC:rollup-23202uf, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #70566 (Don't bail out before linting in generic contexts.)
 - #71141 (Provide better compiler output when using `?` on `Option` in fn returning `Result` and vice-versa)
 - #71149 (remove an impossible branch from check_consts)
 - #71179 (fix more clippy warnings)
 - #71191 (Clean up E0520 explanation)

Failed merges:

r? @ghost
2020-04-16 18:02:11 +00:00
Ralf Jung
250b27d996 bikeshed 2020-04-16 18:47:05 +02:00
Eduard-Mihai Burtescu
77f38dc284 ty: convert ErrorHandled::Reported to ConstKind::Error. 2020-04-16 19:00:30 +03:00
Ralf Jung
18d0907dcc Miri error messages: avoid try terminology 2020-04-16 17:41:28 +02:00
Matthias Schiffer
6c700dc11c
Extend UI tests for fixed check_attr()
Add testcases for the `#[track_caller]` and `#[target_feature(..)]`
function attributes for errors that were not not caught before.
2020-04-16 17:24:01 +02:00
Matthias Schiffer
9a2bca6a52
rustc: fix check_attr() for methods, closures and foreign functions
UI tests are updated with additional error messages that were missing
before.
2020-04-16 17:23:57 +02:00
Ana-Maria Mihalache
8f081d5b2b rustc_target::abi: add Primitive variant to FieldsShape. 2020-04-16 15:15:51 +00:00
Dylan DPC
e4ec7965ef
Rollup merge of #71141 - Duddino:master, r=estebank
Provide better compiler output when using `?` on `Option` in fn returning `Result` and vice-versa

Fixes #71089
2020-04-16 16:34:27 +02:00
Dylan DPC
33500a2bbf
Rollup merge of #70566 - jumbatm:exceeding-bitshifts-constprop, r=RalfJung
Don't bail out before linting in generic contexts.

Fixes #69021.

cc #70017

r? @RalfJung
2020-04-16 16:34:23 +02:00
bors
7fb5187d04 Auto merge of #70755 - wesleywiser:simplify_locals_2_electric_boogaloo, r=oli-obk
[mir-opt] Run SimplifyLocals to a fixedpoint and handle most rvalues

Follow up to review feedback left on #70595.
2020-04-16 14:26:43 +00:00
Duddino
f36f78f571 Fixed issue with self: &Box<Self> 2020-04-16 14:05:57 +02:00
Duddino
da59b8ff65 fixed missing trait method suggests incorrect code (self parameter not named self) 2020-04-16 13:23:01 +02:00
Ralf Jung
69423bf049 test fast path offset reporting 2020-04-16 13:21:23 +02:00
Ralf Jung
0d01ce6a1b switch back to 'bytes' 2020-04-16 13:19:51 +02:00
Niko Matsakis
b8caef423d reserve variable for empty root region 2020-04-16 11:03:41 +00:00
Niko Matsakis
771fdd9985 enforce that R1: R2 requires univ(R1) <= univ(R2) 2020-04-16 11:03:41 +00:00
bors
4e4d49d60f Auto merge of #70831 - sfackler:shrink-future-stack, r=matthewjasper
Remove a stack frame from .await calls

The stack frames when `.await`ing one async fn from another currently look like this:

```
  12: foo:🅱️:{{closure}}
             at src/main.rs:2
  13: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /home/sfackler/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/future/mod.rs:66
  14: core::future::poll_with_context
             at /home/sfackler/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/future/mod.rs:84
  15: foo:🅰️:{{closure}}
             at src/main.rs:6
```

Since the move away from using TLS to pass the Context around, it's now easy to remove frame 14 by removing poll_with_context in favor of calling Future::poll directly. This still leaves the `GenFuture` frame, but that seems significantly harder to deal with.

It also improves diagnostics a bit since they no longer talk about the private poll_with_context function.
2020-04-16 09:13:07 +00:00
Wesley Wiser
7c0802b341 Remove other Rvalues 2020-04-15 14:53:41 -04:00