about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2020-04-10librustc_middle: return LocalDefId instead of DefId in ↵marmeladema-14/+16
opt_local_def_id_from_node_id
2020-04-10Auto merge of #70447 - ecstatic-morse:storage-live-always, r=tmandrybors-48/+116
Add utility to find locals that don't use `StorageLive` annotations and use it for `MaybeStorageLive` Addresses https://github.com/rust-lang/rust/pull/70004#issuecomment-599271717 (cc @RalfJung). The only dataflow analysis that is incorrect in this case is `MaybeStorageLive`. `transform/generator.rs` implemented custom handling for this class of locals, but other consumers of this analysis (there's one in [clippy](https://github.com/rust-lang/rust-clippy/blob/513b46793e98ce5b412d388a91f6371d6a9b290b/clippy_lints/src/redundant_clone.rs#L402)) would be incorrect. r? @tmandry
2020-04-09Auto merge of #70909 - marmeladema:issue70853/librustc_hir-local-def-id, r=eddybbors-57/+67
librustc_hir: return LocalDefId instead of DefId in local_def_id Its a first try to remove a few calls to `expect_local` and use `LocalDefId` instead of `DefId` where possible for #70853 This adds some calls to `.to_def_id()` to get a `DefId` back when needed. I don't know if I should push `LocalDefId` even further and change, for example, `Res::Def` to accept a `LocalDefId` instead of a `DefId` as second argument. cc @ecstatic-morse
2020-04-09Use `Visitor` for `AlwaysLiveLocals`Dylan MacKenzie-14/+19
2020-04-09Explain why we remove `self` from storage live localsDylan MacKenzie-0/+1
2020-04-09Use new utility in `transform/generator.rs`Dylan MacKenzie-34/+40
2020-04-09Use new utility in `eval_context`Dylan MacKenzie-9/+10
2020-04-09Make `MaybeStorageLive` correct for all kinds of MIR bodiesDylan MacKenzie-5/+17
Before, it ignored the first argument and marked all variables without `Storage*` annotations as dead.
2020-04-09Add utility to find locals that don't use `Storage*` annotationsDylan MacKenzie-0/+43
2020-04-09Rollup merge of #70958 - Amanieu:android_try_reserve, r=Mark-SimulacrumMazdak Farrokhzad-0/+6
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-09Rollup merge of #70939 - varkor:const-generics-regression-tests, r=CentrilMazdak Farrokhzad-0/+64
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-09Rollup merge of #70902 - flip1995:clippyup, r=eddybMazdak Farrokhzad-14/+22
Update Clippy Closes #70875
2020-04-09Rollup merge of #70900 - ehuss:update-cargo, r=ehussMazdak Farrokhzad-0/+0
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-09Rollup merge of #70897 - RalfJung:miri, r=RalfJungMazdak Farrokhzad-7/+10
bump Miri r? @ghost Cc @rust-lang/miri Fixes https://github.com/rust-lang/rust/issues/70894
2020-04-09Disable try_reserve tests on AndroidAmanieu d'Antras-0/+6
2020-04-09Add regression test for #61522varkor-0/+40
2020-04-09Add regression test for #66596varkor-0/+24
2020-04-09Auto merge of #70943 - Centril:rollup-eowm2h3, r=Centrilbors-561/+892
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-09Rollup merge of #70918 - tobithiel:fix_forbid_override, r=davidtwcoMazdak Farrokhzad-2/+25
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-09Rollup merge of #70916 - Centril:track-caller-ffi, r=eddybMazdak Farrokhzad-45/+81
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-09Rollup merge of #70896 - cuviper:optional-chain, r=scottmcmMazdak Farrokhzad-154/+113
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-09Rollup merge of #70868 - petrochenkov:linkorder, r=nagisa,mati865Mazdak Farrokhzad-261/+413
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-09Rollup merge of #70822 - jonas-schievink:curse-of-the-recursion, ↵Mazdak Farrokhzad-97/+152
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-09Rollup merge of #70367 - nikomatsakis:issue-69307, r=Aaron1011Mazdak Farrokhzad-0/+62
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-09Rollup merge of #67705 - lzutao:wmemchr, r=wesleywiserMazdak Farrokhzad-2/+46
Use unrolled loop for searching NULL in [u16] on Windows
2020-04-09Auto merge of #70860 - lcnr:has_local_value, r=nikomatsakisbors-58/+44
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-09track_caller: support on FFI importsMazdak Farrokhzad-41/+52
2020-04-09Auto merge of #70936 - Dylan-DPC:rollup-2ng3e5h, r=Dylan-DPCbors-99/+211
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-08do_normalize_predicates: add delay_span_bugBastian Kauschke-1/+1
2020-04-08replace `has_local_value` with `needs_infer`Bastian Kauschke-59/+43
2020-04-08Rollup merge of #70930 - lcnr:patch-1, r=Dylan-DPCDylan DPC-1/+1
add tracking issue to `VecDeque::make_contiguous` The tracking issue is https://github.com/rust-lang/rust/issues/70929
2020-04-08Rollup merge of #70912 - estebank:reduce-type-param-sugg-verbosity, r=davidtwcoDylan DPC-10/+1
Do not suggest adding type param when `use` is already suggested Fix #70365, cc #70572.
2020-04-08Rollup merge of #70906 - gizmondo:66107, r=estebankDylan DPC-64/+80
Suggest move for closures and async blocks in more cases. Fixes #66107, also improves #67577 Related PR https://github.com/rust-lang/rust/pull/65166
2020-04-08Rollup merge of #70870 - mark-i-m:de-abuse-err, r=eddybDylan DPC-16/+24
Fix abuses of tykind::err r? @eddyb cc https://github.com/rust-lang/rust/issues/70866
2020-04-08Rollup merge of #70828 - ollie27:rustdoc_external_macro_src, r=eddybDylan DPC-7/+47
rustdoc: Don't try to load source files from external crates Local items defined in external macros shouldn't generate rendered source files and should link to the external crate's docs instead. Part of #70757 r? @GuillaumeGomez cc @eddyb
2020-04-08Rollup merge of #70565 - Zoxc:inlines-query-system, r=davidtwcoDylan DPC-0/+4
Add inline attributes for functions used in the query system
2020-04-08Rollup merge of #70134 - hermitcore:osstrext, r=dtolnayDylan DPC-1/+54
add basic support of OsStrExt for HermitCore - this patch increases the compatibility to other operating systems - in principle `ffi.rs` is derived from `src/libstd/sys/unix/ext/ffi.rs`
2020-04-08don't set `HAS_INFER` for fresh typesBastian Kauschke-3/+5
2020-04-08Auto merge of #70721 - anyska:bless-all-mir-opt, r=oli-obkbors-4304/+10198
--bless all mir-opt tests. r? @oli-obk
2020-04-08Add ignore-wasm32-bare to mir-opt tests that need it.Ana-Maria Mihalache-338/+340
2020-04-08rustdoc: Don't try to load source files from external cratesOliver Middleton-7/+47
Local items defined in external macros shouldn't generate rendered source files and should link to the external crate's docs instead.
2020-04-08Rollup merge of #70927 - GuillaumeGomez:cleanup-e0510, r=Dylan-DPCDylan DPC-7/+20
Clean up E0510 explanation r? @Dylan-DPC
2020-04-08Rollup merge of #70915 - tsandstr:remove-nominal-flags, r=eddybDylan DPC-24/+1
Remove unnecessary TypeFlags::NOMINAL_FLAGS This was a relic from when we had "nominal flags" and "cached properties." The latter no longer exists, so nominal flags are no longer necessary. In fact, every flag is considered a nominal flag. I went ahead and removed all references to NOMINAL_FLAGS. Fixes rust-lang#70836
2020-04-08Rollup merge of #70914 - tsandstr:typo1, r=Dylan-DPCDylan DPC-3/+3
Corrects a typo in rustdoc documentation. Fixes rust-lang#70856 Sorry, I am just learning git and I think I may have accidentally done some wacky stuff that closed my last PR. Here it is again.
2020-04-08Rollup merge of #70892 - lcnr:interators_are_nice, r=nikomatsakisDylan DPC-155/+151
wf: refactor `compute_trait_ref` moves `extend_cause_with_original_assoc_item_obligation` out of `compute_trait_ref` and changes `trait_assoc_items` to an iterator. This saves us from building an unnecessary `Vec<_>` r? @eddyb i guess
2020-04-08Rollup merge of #70883 - GuillaumeGomez:cleanup-e0507, r=Dylan-DPCDylan DPC-6/+6
Clean up E0507 explanation r? @Dylan-DPC
2020-04-08Rollup merge of #70876 - nnethercote:smallvec-predecessors, r=estebankDylan DPC-5/+11
Use a `SmallVec` for `Cache::predecessors`. This is a very small win.
2020-04-08Rollup merge of #70850 - ssomers:btreemap_first_last, r=AmanieuDylan DPC-48/+76
BTreeMap first last proposal tweaks Clean-up and following up on a request in #62924. Trying the reviewer of the original code #65637... r? @scottmcm
2020-04-08Rollup merge of #70847 - pietroalbini:ci-move-docker-lib, r=Mark-SimulacrumDylan DPC-0/+6
ci: move /var/lib/docker to /mnt on GHA There are some builders that are running out of disk space while building the Docker images, such as arm-android. This moves and symlinks `/var/lib/docker` to the `/mnt` partition on Linux GHA. Example of a build failing because of this: https://github.com/rust-lang-ci/rust/runs/564628621
2020-04-08Rollup merge of #70789 - lcnr:macros, r=varkorDylan DPC-25/+72
remove false positives of unused_braces fixes #70717 We could potentially be more aggressive when linting let bindings by checking if there are any explicit `ref`s. I have been unable to create a snippet which compiles when using braces but has a borrowck error without them. The closes I've gotten is [the following (playground)](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=4a1552ebe9648cb13fcb8dd969189a6c). r? @eddyb