about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-03-04Add test for the behaviour of `fs::copy` when `to` is a symlinkEdward Barnard-0/+20
2019-03-04Change `std::fs::copy` to use `copyfile` on MacOS and iOSEdward Barnard-2/+88
2019-03-04Regression test for #58435.Felix S. Klock II-0/+17
2019-03-04Make the Entry API of HashMap<K, V> Sync and Send (fixes #45219)Anthony Ramine-0/+11
2019-03-04Update rand versionYuki Okushi-1/+1
2019-03-04Auto merge of #58380 - estebank:missing-match-pats, r=zackmdavisbors-96/+401
Point at enum definition when match patterns are not exhaustive ``` error[E0004]: non-exhaustive patterns: type `X` is non-empty --> file.rs:9:11 | 1 | / enum X { 2 | | A, | | - variant not covered 3 | | B, | | - variant not covered 4 | | C, | | - variant not covered 5 | | } | |_- `X` defined here ... 9 | match x { | ^ | = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `B` and `C` not covered --> file.rs:11:11 | 1 | / enum X { 2 | | A, 3 | | B, 4 | | C, | | - not covered 5 | | } | |_- `X` defined here ... 11 | match x { | ^ patterns `C` not covered ``` When a match expression doesn't have patterns covering every variant, point at the enum's definition span. On a best effort basis, point at the variant(s) that are missing. This does not handle the case when the missing pattern is due to a field's enum variants: ``` enum E1 { A, B, C, } enum E2 { A(E1), B, } fn foo() { match E2::A(E1::A) { E2::A(E1::B) => {} E2::B => {} } //~^ ERROR `E2::A(E1::A)` and `E2::A(E1::C)` not handled } ``` Unify look between match with no arms and match with some missing patterns. Fix #37518.
2019-03-04Auto merge of #58807 - Xanewok:update-clippy, r=Xanewokbors-5/+8
Update Clippy Should fix the fallout caused by https://github.com/rust-lang/rust/pull/58321 (still testing it locally). r? @oli-obk
2019-03-03Permit getting stage 0 rustdocMark Rousskov-20/+21
This allows us to e.g. test compiletest, including doctests, in stage 0 without building a fresh compiler and rustdoc.
2019-03-03Tools built by the bootstrap compiler must be built by itMark Rousskov-42/+78
This avoids building compilers that we don't need -- most tools will work just fine with the downloaded compiler.
2019-03-03Update ClippyIgor Matuszewski-5/+8
2019-03-03Auto merge of #58505 - schomatis:fix/nll/remove-live-var, r=matthewjasperbors-267/+179
[NLL] Remove `LiveVar` The `LiveVar` type (and related) made it harder to reason about the code. It seemed as an abstraction that didn't bring any useful concept to the reader (when transitioning from the RFC theory to the actual implementation code). It achieved a compactness in the vectors storing the def/use/drop information that was related only to the `LocalUseMap`. This PR went in the other direction and favored time over memory (but this decision can be easily reverted to the other side without reintroducing `LiveVar`). What this PR aims at is to clarify that there's no significant transformation between the MIR `Local` and the `LiveVar` (now refactored as `live_locals: Vec<Local>`): we're just filtering (not mapping) the entire group of `Local`s into a meaningful subset that we should perform the liveness analysis on. As a side note, there is no guarantee that the liveness analysis is performed only on (what the code calls) "live" variables, if the NLL facts are requested it will be performed on *any* variable so there can't be any assumptions on that regard. (Still, this PR didn't change the general naming convention to reduce the number of changes here and streamline the review process). **Acceptance criteria:** This PR attempts to do only a minor refactoring and not to change the logic so it can't have any performance impact, particularly, it can't lose any of the significant performance improvement achieved in the great work done in https://github.com/rust-lang/rust/pull/52115. r? @nikomatsakis
2019-03-03Add .nll.stderr outputTim-0/+39
2019-03-04Monomorphize generator field types for debuginfoWim Looman-0/+28
2019-03-03Use the correct state for poisoning a generatorMatthew Jasper-13/+42
2019-03-03Don't incorrectly mark blocks in generator drop shims as cleanupMatthew Jasper-24/+65
This also ensure that dropping a generator won't leak upvars if dropping one of them panics
2019-03-03Check which blocks are cleanup in mir-opt testsMatthew Jasper-23/+22
2019-03-03race condition in thread local storage examplebenaryorg-1/+4
The example had a potential race condition that would still pass the test. If the thread which was supposed to modify it's own thread local was slower than the instruction to modify in the main thread, then the test would pass even in case of a failure. This is would be minor if the child thread was waited for since it check using an `assert_eq` for the same thing, but vice versa. However, if the `assert_eq` failed this would trigger a panic, which is not at all caught by the example since the thread is not waited on. Signed-off-by: benaryorg <binary@benary.org>
2019-03-03Auto merge of #58425 - wesleywiser:more_profiler_changes, r=michaelwoeristerbors-372/+342
[self-profiler] Make the profiler faster/more efficient Related to #58372 r? @michaelwoerister
2019-03-03Auto merge of #58673 - matthewjasper:typeck-ptr-coercions, r=pnkfelixbors-16/+408
[NLL] Type check operations with pointer types It seems these were forgotten about. Moving to `Rvalue::AddressOf` simplifies the coercions from references, but I want this to be fixed as soon as possible. r? @pnkfelix
2019-03-03Use FxHashMapWesley Wiser-3/+4
2019-03-03Reduce the size of events by using a u64 instead of InstantWesley Wiser-37/+37
Part of #58372
2019-03-03Remove profiler output and replace with a raw event dumpWesley Wiser-329/+271
Related to #58372
2019-03-03Wrap the self-profiler in an `Arc<Mutex<>>`Wesley Wiser-32/+59
This will allow us to send it across threads and measure things like LLVM time.
2019-03-03Remove stray ` in the documentation for the FromIterator implementation for ↵Alexandra V-1/+1
Option
2019-03-03Auto merge of #58879 - spastorino:update_miri, r=oli-obkbors-14/+14
Update miri Related to #58841 r? @RalfJung
2019-03-03Auto merge of #58866 - kennytm:rollup, r=kennytmbors-96/+125
Rollup of 14 pull requests Successful merges: - #58730 (Have all methods of Filter and FilterMap use internal iteration) - #58780 (ManuallyDrop != MaybeUninit) - #58782 (Replace `s` with `self` in docs for str methods taking self.) - #58785 (allow specifying attributes for tool lints) - #58802 (Ensure `record_layout_for_printing()` is inlined.) - #58821 (Fixed a syntax error in the pin docs) - #58830 (tidy: deny(rust_2018_idioms)) - #58832 (Revert switching to GCP on AppVeyor) - #58833 (tools/rustbook: deny(rust_2018_idioms)) - #58835 (tools/remote-test-{client,server}: deny(rust_2018_idioms)) - #58838 (Fix typo in Vec#resize_with documentation) - #58842 (Forbid duplicating Cargo as a dependency) - #58852 (Update toolchain to build NetBSD release) - #58865 (Fix C-variadic function printing)
2019-03-03Rollup merge of #58865 - dlrobertson:fix-varargs, r=alexregkennytm-3/+15
Fix C-variadic function printing There is no longer a need to append the string `", ..."` to a functions args as `...` is parsed as an argument and will appear in the functions arguments. Fixes: #58853
2019-03-03Auto merge of #58793 - Mark-Simulacrum:master-next, r=alexcrichtonbors-152/+26
Bootstrap compiler update for 1.35 release r? @alexcrichton
2019-03-02Call clang and llvm-objdump with correct library pathMark Rousskov-6/+6
2019-03-03Auto merge of #58464 - jethrogb:jb/std-test-panic-output, r=alexcrichtonbors-19/+41
Use the correct stderr when testing libstd When compiling the unit tests for libstd, there are two copies of `std` in existence, see [lib.rs](https://github.com/rust-lang/rust/blob/919cf42/src/libstd/lib.rs#L335-L341). This means there are two copies of everything, including thread local variable definitions. Before this PR, it's possible that libtest would configure a stderr sink in one of those copies, whereas the panic logic would inspect the sink in the other copy, resulting in libtest missing the relevant panic message. This PR makes sure that when testing, the panic logic always accesses the stderr sink from “realstd”, using the same logic that libtest uses.
2019-03-03NitAlexander Regueiro-1/+1
2019-03-02Reword error messageEsteban Küber-9/+19
2019-03-02Use anonymous explicit lifetimesEsteban Küber-3/+3
2019-03-02Point at enum definition when match patterns are not exhaustiveEsteban Küber-95/+390
``` error[E0004]: non-exhaustive patterns: type `X` is non-empty --> file.rs:9:11 | 1 | / enum X { 2 | | A, | | - variant not covered 3 | | B, | | - variant not covered 4 | | C, | | - variant not covered 5 | | } | |_- `X` defined here ... 9 | match x { | ^ | = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `B` and `C` not covered --> file.rs:11:11 | 1 | / enum X { 2 | | A, 3 | | B, 4 | | C, | | - not covered 5 | | } | |_- `X` defined here ... 11 | match x { | ^ patterns `C` not covered ``` When a match expression doesn't have patterns covering every variant, point at the enum's definition span. On a best effort basis, point at the variant(s) that are missing. This does not handle the case when the missing pattern is due to a field's enum variants: ``` enum E1 { A, B, C, } enum E2 { A(E1), B, } fn foo() { match E2::A(E1::A) { E2::A(E1::B) => {} E2::B => {} } //~^ ERROR `E2::A(E1::A)` and `E2::A(E1::C)` not handled } ``` Unify look between match with no arms and match with some missing patterns. Fix #37518.
2019-03-02Update miriSantiago Pastorino-14/+14
2019-03-02Suggest appropriate code for unused field when desrtucturing pattternEsteban Küber-1/+54
Fix #56472.
2019-03-02Suggest removal of `&` when borrowing macro and appropriateEsteban Küber-3/+54
Fix #58815.
2019-03-02Auto merge of #58836 - ljedrz:begone_NodeId, r=Zoxcbors-558/+528
Remove NodeId from even more HIR nodes The next iteration of HirIdification (#57578). Removes `NodeId` from: - [x] `StructField` - [x] `ForeignItem` - [x] `Item` - [x] `Pat` - [x] `FieldPat` - [x] `VariantData` - [x] `ImplItemId` (replaces it with `HirId`) - [x] `TraitItemId` (replaces it with `HirId`)
2019-03-02Fix "Auto-hide item methods documentation" settingGuillaume Gomez-32/+37
2019-03-02Bootstrap compiler update for 1.35 releaseMark Rousskov-146/+20
2019-03-02Fix C-variadic function printingDan Robertson-3/+15
There is no longer a need to append the string `", ..."` to a functions args as `...` is parsed as an argument and will appear in the functions arguments.
2019-03-02Rollup merge of #58842 - mati865:53005, r=alexcrichtonkennytm-1/+1
Forbid duplicating Cargo as a dependency Fixes https://github.com/rust-lang/rust/issues/53005
2019-03-02Rollup merge of #58852 - alexcrichton:update-netbsd, r=Mark-Simulacrumkennytm-24/+8
Update toolchain to build NetBSD release This allows us to remove the "allow old toolchains" flag we pass to LLVM, ensuring that we'll be up to date when LLVM needs us to be! This is a follow-up from https://github.com/rust-lang/rust/pull/58408 where NetBSD was explicitly whitelisted to allow older toolchains.
2019-03-02Rollup merge of #58838 - jens1o:patch-1, r=Centrilkennytm-1/+1
Fix typo in Vec#resize_with documentation
2019-03-02Rollup merge of #58835 - Centril:rust_2018_idioms-remote-test, r=oli-obkkennytm-2/+6
tools/remote-test-{client,server}: deny(rust_2018_idioms) r? @oli-obk (+ tiny amount of cleanup)
2019-03-02Rollup merge of #58833 - Centril:rust_2018_idioms-rustbook, r=oli-obkkennytm-4/+5
tools/rustbook: deny(rust_2018_idioms) r? @oli-obk
2019-03-02Rollup merge of #58830 - Centril:rust_2018_idioms-tidy, r=oli-obkkennytm-8/+9
tidy: deny(rust_2018_idioms) r? @oli-obk
2019-03-02Rollup merge of #58821 - alex:patch-1, r=Centrilkennytm-1/+1
Fixed a syntax error in the pin docs
2019-03-02Rollup merge of #58802 - nnethercote:inline-record_layout, r=oli-obkkennytm-10/+12
Ensure `record_layout_for_printing()` is inlined. This reduces instruction counts for the `ctfe-stress-2` benchmark by about 1%. r? @oli-obk
2019-03-02Rollup merge of #58785 - euclio:tool-lint-attrs, r=estebankkennytm-7/+19
allow specifying attributes for tool lints Needed for clippy to fix `unused_doc_comments` warnings that will be exposed by #57882 (and thus unblock it).