Commit graph

124480 commits

Author SHA1 Message Date
Dylan MacKenzie
fcd1f5bc0a Make MaybeStorageLive correct for all kinds of MIR bodies
Before, it ignored the first argument and marked all variables without
`Storage*` annotations as dead.
2020-04-09 12:45:46 -07:00
Dylan MacKenzie
444ad6255b Add utility to find locals that don't use Storage* annotations 2020-04-09 12:45:45 -07:00
Stein Somers
de39a4f621 Respect the comment: no root unless the borrow type is Mut 2020-04-09 21:37:30 +02:00
bors
34763a5f36 Auto merge of #5442 - rust-lang:revert-5420-newret, r=Manishearth
Revert "Downgrade new_ret_no_self to pedantic"

Reverts rust-lang/rust-clippy#5420

This got through with the big rollup merge, where I didn't recheck every PR of the rollup. Reverting because of the reason given in https://github.com/rust-lang/rust-clippy/pull/5420#issuecomment-610744974 by @joshtriplett

changelog: Move new_ret_no_self back to style category
2020-04-09 19:06:26 +00:00
Stein Somers
607315b2c3 Kill comment left behind by a last minute change in #70795 2020-04-09 20:16:30 +02:00
Philipp Krones
90fb50fabf
Revert "Downgrade new_ret_no_self to pedantic" 2020-04-09 19:38:20 +02:00
Rabi Guha
183c4abb22 Check for clone-on-copy in argument positions
Earlier if arguments to method calls matched the above pattern they were
not reported. This patch ensures such arguments are checked as well.

Fixes #5436
2020-04-09 21:59:42 +05:30
Mazdak Farrokhzad
2c3147f018
Rollup merge of #70958 - Amanieu:android_try_reserve, r=Mark-Simulacrum
Disable try_reserve tests on Android

Calling `realloc` with large sizes seems to be broken on older Android versions that use dlmalloc as the default allocator. This is not an issue for modern Android versions that use jemalloc.

Fixes #55861
2020-04-09 18:17:22 +02:00
Mazdak Farrokhzad
7944f39b5f
Rollup merge of #70939 - varkor:const-generics-regression-tests, r=Centril
Add two const generics regression tests

Closes https://github.com/rust-lang/rust/issues/66596.
Closes https://github.com/rust-lang/rust/issues/61522.
2020-04-09 18:17:20 +02:00
Mazdak Farrokhzad
cb68d6e389
Rollup merge of #70902 - flip1995:clippyup, r=eddyb
Update Clippy

Closes #70875
2020-04-09 18:17:19 +02:00
Mazdak Farrokhzad
15a7ad2804
Rollup merge of #70900 - ehuss:update-cargo, r=ehuss
Update cargo

4 commits in 6e07d2dfb7fc87b1c9489de41da4dafa239daf03..390e8f245ef2cd7ac698b8a76abf029f9abcab0d
2020-03-31 03:22:39 +0000 to 2020-04-07 17:46:45 +0000
- Compatibility for rust-lang/rust#69926 (rust-lang/cargo#8080)
- Add note about converting triple case in environment variables (rust-lang/cargo#8079)
- Add support for `-Cembed-bitcode=no` (rust-lang/cargo#8066)
- Add triagebot configuration (rust-lang/cargo#8059)
2020-04-09 18:17:17 +02:00
Mazdak Farrokhzad
eecfd195cb
Rollup merge of #70897 - RalfJung:miri, r=RalfJung
bump Miri

r? @ghost Cc @rust-lang/miri

Fixes https://github.com/rust-lang/rust/issues/70894
2020-04-09 18:17:15 +02:00
Amanieu d'Antras
7060a9e683 Disable try_reserve tests on Android 2020-04-09 15:55:12 +01:00
Oliver Scherer
8a03147f22 Normalize MIR locals' types for generator layout computation. 2020-04-09 16:48:36 +02:00
mark
f2e4709f22 improve comments 2020-04-09 09:31:52 -05:00
Guillaume Gomez
44daa4521a Clean up E0511 explanation 2020-04-09 13:48:11 +02:00
varkor
0f0252260c Add regression test for #61522 2020-04-09 11:53:28 +01:00
varkor
61cc8925b2 Add regression test for #66596 2020-04-09 11:52:52 +01:00
bors
93dc97a853 Auto merge of #70943 - Centril:rollup-eowm2h3, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #67705 (Use unrolled loop for searching NULL in [u16] on Windows)
 - #70367 (save/restore `pessimistic_yield` when entering bodies)
 - #70822 (Don't lint for self-recursion when the function can diverge)
 - #70868 (rustc_codegen_ssa: Refactor construction of linker arguments)
 - #70896 (Implement Chain with Option fuses)
 - #70916 (Support `#[track_caller]` on functions in `extern "Rust" { ... }`)
 - #70918 (rustc_session: forbid lints override regardless of position)

Failed merges:

r? @ghost
2020-04-09 09:57:17 +00:00
Ralf Jung
d69c668111 tighten CTFE safety net for accesses to globals 2020-04-09 11:54:45 +02:00
Waffle
3ae2d21c12 simplify vec! macro
Simplify `vec!` macro by replacing 2 following branches:
- `($($x:expr),*) => (...)`
- `($($x:expr,)*) => (...)`
with one:
- `($($x:expr),* $(,)?) => (...)`
2020-04-09 11:03:57 +03:00
ThibsG
629cc4ada3 Update doc generation script 2020-04-09 09:17:41 +02:00
ThibsG
380f7218b3 Add lint on large const arrays 2020-04-09 09:09:39 +02:00
Marcin Serwin
4449cc799b Make the epsilon note spanless 2020-04-09 08:18:52 +02:00
Marcin Serwin
4e01ca35a0 Split check_fn function 2020-04-09 08:11:46 +02:00
Marcin Serwin
f637c45f8b Indicate when arrays are compared in error message 2020-04-09 08:10:14 +02:00
Marcin Serwin
84ae3d8bc8 Make epsilon note spanless when comparing arrays 2020-04-09 08:10:14 +02:00
Marcin Serwin
c7b5e30423 Add float cmp const tests for arrays 2020-04-09 08:08:36 +02:00
Marcin Serwin
3c738b2286 Add float cmp tests for arrays 2020-04-09 08:08:36 +02:00
Marcin Serwin
d3167c63f8 Handle constant arrays with single value 2020-04-09 08:07:18 +02:00
Marcin Serwin
1bab67c72b Don't show comparison suggestion for arrays 2020-04-09 08:07:18 +02:00
Marcin Serwin
bcbb9d9acb Allow for const arrays of zeros 2020-04-09 08:05:51 +02:00
Marcin Serwin
621767136e Handle evaluating constant index expression 2020-04-09 08:05:51 +02:00
Marcin Serwin
2153abb412 Add handling of float arrays to miri_to_const 2020-04-09 08:05:51 +02:00
Marcin Serwin
b4ff774d72 Update stderr of float_cmp test 2020-04-09 08:05:51 +02:00
Marcin Serwin
03f584c0c7 Update field names in is_float 2020-04-09 08:05:51 +02:00
briankabiro
0d00eafd32 Add tests for float in array comparison 2020-04-09 08:05:51 +02:00
briankabiro
d4409350dc Add lint when comparing floats in an array
Finishes #4277
2020-04-09 08:05:51 +02:00
mark
e1c838d737 de-abuse TyKind::Error: ice on missing slice type 2020-04-08 23:41:54 -05:00
mark
f9a691faac de-abuse TyKind::Error: handle empty slices in array patterns 2020-04-08 22:54:36 -05:00
Mazdak Farrokhzad
09052a6d35
Rollup merge of #70918 - tobithiel:fix_forbid_override, r=davidtwco
rustc_session: forbid lints override regardless of position

Addresses the regression reported in #70819 for command line arguments, but does not address the source code flag regression.
2020-04-09 05:29:47 +02:00
Mazdak Farrokhzad
4f00396f14
Rollup merge of #70916 - Centril:track-caller-ffi, r=eddyb
Support `#[track_caller]` on functions in `extern "Rust" { ... }`

Fixes https://github.com/rust-lang/rust/issues/70830 which is the follow-up to @eddyb's suggestion in https://github.com/rust-lang/rust/pull/69251#discussion_r380791634 to allow `#[track_caller]` on `fn`s in FFI imports, that is, on functions in `extern "Rust" { ... }` blocks.

This requires that the other side, the FFI export, also have the `#[track_caller]` attribute. Otherwise, undefined behavior is triggered and the blame lies, as usual, with the `unsafe { ... }` block which called the FFI imported function.

After this PR, all forms of `fn` items with the right ABI (`"Rust"`) support `#[track_caller]`.

As a drive-by, the PR also hardens the check rejecting `#[naked] #[track_caller]` such that methods and other forms of `fn` items are also considered.

r? @eddyb
cc @rust-lang/lang
2020-04-09 05:29:45 +02:00
Mazdak Farrokhzad
ecc4e2a647
Rollup merge of #70896 - cuviper:optional-chain, r=scottmcm
Implement Chain with Option fuses

The iterators are now "fused" with `Option` so we don't need separate state to track which part is already exhausted, and we may also get niche layout for `None`. We don't use the real `Fuse` adapter because its specialization for `FusedIterator` unconditionally descends into the iterator, and that could be expensive to keep revisiting stuff like nested chains. It also hurts compiler performance to add more iterator layers to `Chain`.

This change was inspired by the [proposal](https://internals.rust-lang.org/t/proposal-implement-iter-chain-using-fuse/12006) on the internals forum. This is an alternate to #70332, directly employing some of the same `Fuse` optimizations as #70366 and #70750.

r? @scottmcm
2020-04-09 05:29:43 +02:00
Mazdak Farrokhzad
cefee7bd9a
Rollup merge of #70868 - petrochenkov:linkorder, r=nagisa,mati865
rustc_codegen_ssa: Refactor construction of linker arguments

And add comments.

This PR doesn't reorder any linker arguments and therefore shouldn't contain any observable changes.

The next goal here is to
- Factor out order-independent linker arguments in the compiler code and in target specifications and pass them together. Such arguments generally apply to the whole linking session or the produced linking result rather to individual object files or libraries.
- Figure out where exactly among the remaining order-dependent arguments we should place customization points like `-C link-args` and `-Z pre-link-args`.
- Possibly provide command line opt-outs for options that are currently passed unconditionally (like CRT objects or arguments defined by the target spec).
- Document and stabilize the customization points that are not yet stable (https://github.com/rust-lang/rust/pull/70505).
2020-04-09 05:29:42 +02:00
Mazdak Farrokhzad
a209b4f447
Rollup merge of #70822 - jonas-schievink:curse-of-the-recursion, r=ecstatic-morse
Don't lint for self-recursion when the function can diverge

Fixes https://github.com/rust-lang/rust/issues/54444
2020-04-09 05:29:40 +02:00
Mazdak Farrokhzad
ba50bc588e
Rollup merge of #70367 - nikomatsakis:issue-69307, r=Aaron1011
save/restore `pessimistic_yield` when entering bodies

This flag is used to make the execution order around `+=` operators
pessimistic. Failure to save/restore the flag was causing independent
async blocks to effect one another, leading to strange ICEs and failed
assumptions.

Fixes #69307

r? @Zoxc
2020-04-09 05:29:38 +02:00
Mazdak Farrokhzad
e89cb0733a
Rollup merge of #67705 - lzutao:wmemchr, r=wesleywiser
Use unrolled loop for searching NULL in [u16] on Windows
2020-04-09 05:29:36 +02:00
bors
11f6096a9e Auto merge of #70860 - lcnr:has_local_value, r=nikomatsakis
remove `KEEP_IN_LOCAL_TCX` flag

closes #70285

I did not rename `needs_infer` here as this complex enough as is.
Will probably open a followup for that.

r? @eddyb
2020-04-09 03:28:16 +00:00
Mazdak Farrokhzad
45589b52fe track_caller: support on FFI imports 2020-04-09 04:55:05 +02:00
bors
d249d75637 Auto merge of #70936 - Dylan-DPC:rollup-2ng3e5h, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #70134 (add basic support of OsStrExt for HermitCore)
 - #70565 (Add inline attributes for functions used in the query system)
 - #70828 (rustdoc: Don't try to load source files from external crates)
 - #70870 (Fix abuses of tykind::err)
 - #70906 (Suggest move for closures and async blocks in more cases.)
 - #70912 (Do not suggest adding type param when `use` is already suggested)
 - #70930 (add tracking issue to `VecDeque::make_contiguous`)

Failed merges:

r? @ghost
2020-04-09 00:11:27 +00:00