about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2020-04-11Depend on libc from crates.ioLuca Barbieri-8/+4
2020-04-11Auto merge of #69573 - pnkfelix:issue-53114-add-tests, r=Centrilbors-0/+300
tests encoding current behavior for various cases of "binding" to _. The `_` binding form is special, in that it encodes a "no-op": nothing is actually bound, and thus nothing is moved or borrowed in this scenario. Usually we do the "right" thing in all such cases. The exceptions are explicitly pointed out in this test case, so that we keep track of whether they are eventually fixed. Cc #53114. (This does not close the aforementioned issue; it just adds the tests encoding the current behavior, which we hope to eventually fix.)
2020-04-10Auto merge of #70986 - marmeladema:issue70853/librustc_middle-local-def-id, ↵bors-89/+124
r=eddyb rustc_middle: return `LocalDefId` where possible in hir::map module This changes the return type of the following functions to return a `LocalDefId` instead of a `DefId`: * opt_local_def_id_from_node_id * opt_local_def_id * body_owner_def_id * local_def_id_from_node_id * get_parent_id This is another step in the right direction for #70853 This pull request will be followed by another (substantial one) which changes the return type of `local_def_id` function but this change being more invasive, we might want to wait for #70956 or #70961 (or some other form it) to land first.
2020-04-10Auto merge of #70994 - Centril:rollup-lftv0a3, r=Centrilbors-565/+750
Rollup of 9 pull requests Successful merges: - #69745 (Use `PredicateObligation`s instead of `Predicate`s) - #70938 (Add ThreadSanitizer test case) - #70973 (Use forward traversal for unconditional recursion lint) - #70978 (compiletest: let config flags overwrite -A unused) - #70979 (Follow up on BTreeMap comments) - #70981 (Rearrange BTreeMap::into_iter to match range_mut.) - #70985 (Clean up E0512 explanation) - #70988 (Setup the `@rustbot prioritize` command) - #70991 (fix rustc-dev-guide's url in src/librustc_codegen_ssa) Failed merges: r? @ghost
2020-04-10--bless youMazdak Farrokhzad-8/+8
2020-04-10Rollup merge of #70991 - longfangsong:master, r=jonas-schievinkMazdak Farrokhzad-1/+1
fix rustc-dev-guide's url in src/librustc_codegen_ssa Change the backend-agnostic chapter's url in rustc-dev-guide from [url](https://rustc-dev-guide.rust-lang.org/codegen/backend-agnostic.html), which is 404 now, to [the right one](https://rustc-dev-guide.rust-lang.org/backend/backend-agnostic.html). Sorry for disturbing.
2020-04-10Rollup merge of #70985 - GuillaumeGomez:cleanup-e0512, r=Dylan-DPCMazdak Farrokhzad-2/+3
Clean up E0512 explanation r? @Dylan-DPC
2020-04-10Rollup merge of #70981 - ssomers:btreemap_into_into_iter, r=Mark-SimulacrumMazdak Farrokhzad-13/+13
Rearrange BTreeMap::into_iter to match range_mut. r? @Mark-Simulacrum I wondered why you catered for the optional root differently in `into_iter` than in `range_mut`.
2020-04-10Rollup merge of #70979 - ssomers:btreemap_the_alice_merton_variations, r=AmanieuMazdak Farrokhzad-4/+2
Follow up on BTreeMap comments r? @Amanieu (for the first commit)
2020-04-10Rollup merge of #70978 - RalfJung:compiletest-flags, r=Mark-SimulacrumMazdak Farrokhzad-4/+6
compiletest: let config flags overwrite -A unused Cc https://github.com/laumann/compiletest-rs/issues/216
2020-04-10Rollup merge of #70973 - ecstatic-morse:recursion-lint, r=jonas-schievinkMazdak Farrokhzad-138/+121
Use forward traversal for unconditional recursion lint While reviewing #70822, I noted that #54444 could be solved without requiring the predecessor graph and without allocating a `Vec<Span>` for every basic block. The unconditional recursion lint is not a performance bottleneck however, so I approved #70822 as it was. Nevertheless, I wanted to try implementing my idea using `TriColorDepthFirstSearch`, which is a DFS that can differentiate between [forward/tree edges and backward ones](https://en.wikipedia.org/wiki/Depth-first_search#Output_of_a_depth-first_search). I found this approach more straightforward than the existing one, so I'm opening this PR to see if it is desirable. The pass is now just a DFS across the control-flow graph. We ignore false edges and false unwinds, as well as the successors of recursive calls, just like existing pass does. If we see a back-edge (loop) or a terminator that would cause us to yield control-flow back to the caller (`Return`, `Resume`, etc.), we know that the function does not unconditionally recurse. r? @jonas-schievink
2020-04-10Rollup merge of #70938 - tmiasko:thread-test-case, r=hanna-kruppeMazdak Farrokhzad-0/+57
Add ThreadSanitizer test case
2020-04-10Rollup merge of #69745 - estebank:predicate-obligations-3, r=nikomatsakis,eddybMazdak Farrokhzad-403/+547
Use `PredicateObligation`s instead of `Predicate`s Keep more information about trait binding failures. Use more specific spans by pointing at bindings that introduce obligations. Subset of #69709. r? @eddyb
2020-04-10Auto merge of #66605 - GuillaumeGomez:drop-python2, r=Mark-Simulacrumbors-105/+126
Stop explicitly depending on python 2 This PR revises our previous policy of officially only supporting and testing with python 2 in the CI environment to instead test with python 3. It also changes the defaults to python 3 in our various scripts (usually, by way of `python` rather than `python3` to preserve compatibility with systems that do not have a python 3 available). The effect of this is that we expect all new patches to support python 3 (and will test as such). We explicitly also expect that patches support python 2.7 as well -- and test as such, though only on one builder. This is intended as a temporary, though likely long-lived, measure to preserve compatibility while looking towards the future which is likely to be a python 3 only world. We do not at this point set a timeline for when we'll drop support for python 2.7; it's plausible that this is months or years into the future, depending on how quickly the ecosystem drops support and how painful it is for us to maintain that support over time. Closes #65063 (as far as I can tell; please file explicit and separate issues or PRs if not).
2020-04-10copy test cases to `if let` as well.Felix S. Klock II-2/+59
2020-04-10Update src/test/ui/binding/issue-53114-safety-checks.rsFelix S Klock II-1/+1
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2020-04-10Update src/test/ui/binding/issue-53114-borrow-checks.rsFelix S Klock II-1/+1
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2020-04-10tests encoding current behavior for various cases of "binding" to _.Felix S. Klock II-0/+243
The `_` binding form is special, in that it encodes a "no-op": nothing is actually bound, and thus nothing is moved or borrowed in this scenario. Usually we do the "right" thing in all such cases. The exceptions are explicitly pointed out in this test case, so that we keep track of whether they are eventually fixed.
2020-04-10fix rustc-dev-guide url in src/librustc_codegen_ssalongfangsong-1/+1
2020-04-10Add ThreadSanitizer test caseTomasz Miąsko-0/+57
2020-04-10Enforce Python 3 as much as possibleGuillaume Gomez-105/+126
2020-04-10Auto merge of #70983 - Centril:rollup-npabk7c, r=Centrilbors-153/+150
Rollup of 8 pull requests Successful merges: - #70784 (Consider methods on fundamental `impl` when method is not found on numeric type) - #70843 (Remove the Ord bound that was plaguing drain_filter) - #70913 (Replace "rc"/"arc" lang items with Rc/Arc diagnostic items.) - #70932 (De-abuse TyKind::Error in pattern type checking) - #70952 (Clean up E0511 explanation) - #70964 (rustc_session CLI lint parsing: mark a temporary hack as such) - #70969 (Fix JSON file_name documentation for macros.) - #70975 (Fix internal doc comment nits.) Failed merges: r? @ghost
2020-04-10Clean up E0512 explanationGuillaume Gomez-2/+3
2020-04-10librustc_middle: return LocalDefId instead of DefId in get_parent_didmarmeladema-23/+26
2020-04-10librustc_middle: return LocalDefId instead of DefId in local_def_id_from_node_idmarmeladema-37/+59
2020-04-10librustc_middle: return LocalDefId instead of DefId in body_owner_def_idmarmeladema-32/+30
2020-04-10librustc_middle: return LocalDefId instead of DefId in opt_local_def_idmarmeladema-16/+26
2020-04-10librustc_middle: return LocalDefId instead of DefId in ↵marmeladema-14/+16
opt_local_def_id_from_node_id
2020-04-10Rollup merge of #70975 - lcnr:ok, r=petrochenkovMazdak Farrokhzad-5/+5
Fix internal doc comment nits.
2020-04-10Rollup merge of #70969 - ehuss:json-filename-macros, r=eddybMazdak Farrokhzad-2/+5
Fix JSON file_name documentation for macros. JSON `file_name` paths were changed in #66364 for macros to point to actual source files instead of using `<MACRONAME macros>`. Closes #70396
2020-04-10Rollup merge of #70964 - RalfJung:mark-cli-lint-hack, r=petrochenkovMazdak Farrokhzad-1/+3
rustc_session CLI lint parsing: mark a temporary hack as such This code was added in https://github.com/rust-lang/rust/pull/70918, but it should not be necessary any more once `forbid` works as expected for in-code attributes. Cc @tobithiel @davidtwco
2020-04-10Rollup merge of #70952 - GuillaumeGomez:cleanup-e0511, r=Dylan-DPCMazdak Farrokhzad-2/+3
Clean up E0511 explanation r? @Dylan-DPC
2020-04-10Rollup merge of #70932 - mark-i-m:de-abuse-err-2, r=CentrilMazdak Farrokhzad-16/+22
De-abuse TyKind::Error in pattern type checking r? @eddyb cc https://github.com/rust-lang/rust/issues/70866 In particular, I would appreciate extra scrutiny over the soundness of these changes. Also, this will go a bit slowly because I'm going to use my other PR (#70551) to check if I missed anything.
2020-04-10Rollup merge of #70913 - eddyb:rc-arc-diagnostic-items, r=matthewjasperMazdak Farrokhzad-78/+49
Replace "rc"/"arc" lang items with Rc/Arc diagnostic items. `Rc`/`Arc` should have no special semantics, so it seems appropriate for them to not be lang items. r? @matthewjasper
2020-04-10Rollup merge of #70843 - ssomers:btree_drain_filter_epilogue, r=AmanieuMazdak Farrokhzad-45/+21
Remove the Ord bound that was plaguing drain_filter Now that #70795 made it superfluous. Also removes superfluous lifetime specifiers (at least I think they are).
2020-04-10Rollup merge of #70784 - estebank:suggest-type-fundamental-method, ↵Mazdak Farrokhzad-4/+42
r=matthewjasper Consider methods on fundamental `impl` when method is not found on numeric type Fix #47759.
2020-04-10Auto merge of #70619 - etherealist:musl_lld, r=Mark-Simulacrumbors-0/+1
Enable rust-lld on dist-x86_64-musl Add rust-lld to rustup llvm-tools-preview on nightly for musl I am using a musl distro on my workstation, with `RUSTFLAGS="-C target-feature=-crt-static"` this works fine. I know that `x86_64-unknown-linux-musl` was originally only meant as a target and not as a host. But most problems have been fixed, and I have fewer problems with `unknown` (rustup) than when I am using `x86_64-alpine-linux-musl` (rust installed by the distro). The only thing I am missing is rust-lld in llvm-tools-preview on nightly. I needed rust-lld for a wasm tutorial. I built rust-lld and tested it with that tutorial, and it worked well. I asked [here](https://users.rust-lang.org/t/enable-rust-lld-on-x86-64-unknown-linux-musl/39851) where to request to enable lld and ended up doing this PR. I compared llvm-tools-preview `nightly-x86_64-unknown-linux-musl` and `nightly-x86_64-unknown-linux-gnu`: only rust-lld is missing in musl. I tested the change using: ```bash ./src/ci/docker/run.sh dist-x86_64-musl ``` And I checked that the resulting rust-lld binary runs.
2020-04-10Rearrange BTreeMap::into_iter to match range_mut.Stein Somers-13/+13
2020-04-10compiletest: let config flags overwrite -A unusedRalf Jung-4/+6
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-10wordsBastian Kauschke-5/+5
2020-04-09Use tri-color search for unconditional recursion lintDylan MacKenzie-138/+121
2020-04-09Fix JSON file_name documentation for macros.Eric Huss-2/+5
2020-04-09Consider methods on fundamental `impl` when method is not found on numeric typeEsteban Küber-4/+42
Fix #47759.
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-09mark a temporary hack as suchRalf Jung-1/+3
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