Commit graph

97237 commits

Author SHA1 Message Date
bors
db7c773a6b Auto merge of #63363 - ehuss:update-cargo, r=alexcrichton
Update cargo

9 commits in 26092da337b948719549cd5ed3d1051fd847afd7..42a8c0adf91323c01228268c651aef5366b25b69
2019-07-31 23:24:32 +0000 to 2019-08-07 20:41:07 +0000
- Add support for customizing JSON diagnostics from Cargo (rust-lang/cargo#7214)
- Bump rustfix (rust-lang/cargo#7221)
- Fix remap-path-prefix from failing. (rust-lang/cargo#7219)
- Clean up build script stuff and documentation. (rust-lang/cargo#7215)
- Remove debug panic in package-features. (rust-lang/cargo#7213)
- Fix an old test. (rust-lang/cargo#7208)
- Remove unused AstBuilder (rust-lang/cargo#7210)
- Revert "Release a jobserver token while locking a file" (rust-lang/cargo#7201)
- improve error message for unmatched prerelease dependencies (rust-lang/cargo#7191)
2019-08-08 01:48:31 +00:00
Eric Huss
266fa0c26a Update cargo 2019-08-07 17:23:54 -07:00
bors
476af31d59 Auto merge of #62457 - zackmdavis:minimax_search_and_the_structure_of_cognition, r=varkor
pretty-pretty extremal constants!

(A resurrection of the defunct #57073.)

While many programmers may intuitively appreciate the significance of "magic numbers" like −2147483648, Rust is about empowering everyone to build reliable and efficient software! It's a bit more legible to print the constant names (even noisy fully-qualified-paths thereof).

The bit-manipulation methods mirror those in `librustc_mir::hair::pattern::_match::all_constructors`; thanks to the immortal Varkor for guidance.

Resolves #56393.

r? @varkor
2019-08-07 22:07:24 +00:00
bors
ad7c55e1fc Auto merge of #60547 - redox-os:redox-unix, r=alexcrichton
redox: convert to target_family unix

This is the second step to supporting rust-lang/rust#60139.

In order to have a smooth transition, there will need to be a change made in liblibc at the same time, switching Redox over to the unix target family. See https://github.com/rust-lang/libc/pull/1332
2019-08-07 16:56:46 +00:00
bors
647ed20e43 Auto merge of #63280 - lzutao:update-clippy, r=Mark-Simulacrum
submodules: Update clippy

r? @Manishearth
Fixes clippy toolstate in https://github.com/rust-lang/rust/pull/63228#issuecomment-517886963
2019-08-07 13:15:53 +00:00
bors
d4abb08be6 Auto merge of #61919 - alexreg:fix-atb-1, r=nikomatsakis
Fix for "ambiguous associated type" issue with ATBs

Fixes #61752.

r? @nikomatsakis

CC @Centril
2019-08-07 09:33:34 +00:00
Lzu Tao
070eb0c707 submodules: Update clippy 2019-08-07 09:00:43 +00:00
bors
5421d94960 Auto merge of #63152 - estebank:big-array, r=oli-obk
Always error on `SizeOverflow` during mir evaluation

Fix #55878, fix #25116.

r? @oli-obk
2019-08-07 04:28:08 +00:00
Zack M. Davis
d1cdb02e4d pretty-pretty extremal constants!
While many programmers may intuitively appreciate the significance of
"magic numbers" like −2147483648, Rust is about empowering everyone to
build reliable and efficient software! It's a bit more legible to
print the constant names (even noisy fully-qualified-paths thereof).

The bit-manipulation methods mirror those in
`librustc_mir::hair::pattern::_match::all_constructors`; thanks to the
immortal Varkor for guidance.

Resolves #56393.
2019-08-06 21:00:46 -07:00
Jeremy Soller
ebb648d4fb
Fix cfg_if usage 2019-08-06 19:32:39 -06:00
bors
615c46086a Auto merge of #63341 - Centril:rollup-hkhxahb, r=Centril
Rollup of 9 pull requests

Successful merges:

 - #63034 (Fix generator size regressions due to optimization)
 - #63035 (Use MaybeUninit to produce more correct layouts)
 - #63163 (add a pair of whitespace after remove parentheses)
 - #63294 (tests for async/await drop order)
 - #63307 (don't ignore mir_dump folder)
 - #63308 (PlaceRef's base is already a reference)
 - #63310 (Tests around moving parts of structs and tuples across await points)
 - #63314 (doc: the content has since been moved to the guide)
 - #63333 (Remove unnecessary features from compiler error code list)

Failed merges:

r? @ghost
2019-08-07 00:45:00 +00:00
Esteban Küber
3144b0aa04 review comment: reword test comment 2019-08-06 16:51:17 -07:00
Mazdak Farrokhzad
c8ea26e6ff
Rollup merge of #63333 - jethrogb:jb/error-codes-features, r=Mark-Simulacrum
Remove unnecessary features from compiler error code list
2019-08-07 01:39:38 +02:00
Mazdak Farrokhzad
2c81d606f9
Rollup merge of #63314 - tshepang:update-src-readme, r=matthewjasper
doc: the content has since been moved to the guide
2019-08-07 01:39:36 +02:00
Mazdak Farrokhzad
051f94d588
Rollup merge of #63310 - gorup:partial-moves, r=cramertj
Tests around moving parts of structs and tuples across await points

r? cramertj

Per the [dropbox paper](https://paper.dropbox.com/doc/async.await-Call-for-Tests--AiR3vlp1s_Kw0yzWZ1sWMnaIAQ-nMyZGrra7dz9KcFRMLKJy) about more tests, it appears there are some tests wanted around local variables (under the section ["Dynamic semantics"](https://paper.dropbox.com/doc/async.await-Call-for-Tests--AiR3vlp1s_Kw0yzWZ1sWMnaIAg-nMyZGrra7dz9KcFRMLKJy#:uid=122335511260129643493892&h2=Dynamic-semantics)). Here is one commit, and I can probably get code up for other scenarios listed there, although I may not have the full background to know what is being targeted by the tests. Please assist me if I'm off course, thanks!

---
- Executed all 4 new tests
- Executed `tidy` command
2019-08-07 01:39:35 +02:00
Mazdak Farrokhzad
f635ce590d
Rollup merge of #63308 - spastorino:place-ref-base-is-ref, r=oli-obk
PlaceRef's base is already a reference

r? @oli-obk
2019-08-07 01:39:33 +02:00
Mazdak Farrokhzad
3c76ab3e73
Rollup merge of #63307 - RalfJung:gitignore, r=alexcrichton
don't ignore mir_dump folder

I dumped some MIR and wondered why `git status` wouldn't show the tree as dirty, reminding me to clean up after myself. Turns out this folder was explicitly gitignored. I don't think it should be.

If someone doesn't want to clean up that way, they can add it to `.git/info/exclude`.

(That file seems like it could need some general cleanup, honestly, but that's for another day.)
2019-08-07 01:39:32 +02:00
Mazdak Farrokhzad
7860cf4542
Rollup merge of #63294 - alsuren:async-tests, r=cramertj
tests for async/await drop order

This is just me helping out with https://github.com/rust-lang/rust/issues/62121 where I can.

I'm also going to use this as a public place to collect my thoughts about what has already been done and what hasn't (adding comments to the dropbox paper doc was quickly getting spammy).

I've tried to keep my commit messages similar to the line items on https://paper.dropbox.com/doc/async.await-Call-for-Tests--AiKouT0L41mSnK1741s~TiiRAg-nMyZGrra7dz9KcFRMLKJy as possible.

A bunch of my tests are likely to be either redundant with other tests, or lower quality than other tests that people are writing. A reasonable approach might be to tell me which commits you want to keep and I'll throw away the rest of them.

The part from the dropbox paper doc that I'm concentrating on here is:
(items marked with `?` are ones that I can't immediately think of how to test, so I will leave for other people. Items with checkboxes are things that I have done or will try to do next)

### Dynamic semantics
- `async`/`await` with unusual locals:
    - ? partially uninhabited
    - ? conditionally initialized
    - ~drop impls~ already done in src/test/ui/async-await/drop-order/*
    - ? nested drop impls
    - ~partially moved (e.g., `let x = (vec![], vec![]); drop(x.0); foo.await; drop(x.1);`)~ see  https://github.com/rust-lang/rust/pull/63310
- Control flow:
    - basic
    - complex
- [x] `.await` while holding variables of different sizes
- (possibly) drop order
    - [x] including drop order for locals when a future is dropped part-way through execution
         - Parameters' drop order is covered in my commit f40190a
    - ~An async fn version of `dynamic-drop.rs`~
        - already done by matthewjasper in https://github.com/rust-lang/rust/pull/62193/files
- ? interaction with const eval, promoteds, and temporaries
- [x] drop the resulting future and check that local variables and parameters are dropped in the expected order (interaction with cancellation, in other words)
    - also in f40190a

Explanation of commits:

* 0a1bdd4 is the simplest place I could think of to explicitly test `.await` while holding variables of different sizes. I'm pretty sure that this will end up being redundant with something else, so I'm happy to drop it.
* f40190a is a copy-paste from `drop-order-for-async-fn-parameters.rs` with `NeverReady.await` dumped on the end of each testcase.
    * Normally I don't like copy-paste-based tests, but `drop-order-for-async-fn-parameters-by-ref-binding.rs` is also copy-paste, so I thought it might be okay.
    * [x] I'm a bit sad that this doesn't cover non-parameter locals, but I think it should be easy enough to extend in that direction, so I might have a crack at that tomorrow.
* c4940e0f90 makes a bunch of local variables and moves them into either `{}` blocks or `async move {}` blocks, checking for any surprising differences.
    * I have tried to give the test functions descriptive names
    * I have not duplicated the tests for methods with/without self.
    * I think that all of these tests could be rewritten to be clearer if I could write down the expected drop order next to each test.
2019-08-07 01:39:30 +02:00
Mazdak Farrokhzad
fb79a74020
Rollup merge of #63163 - bravomikekilo:master, r=cramertj
add a pair of whitespace after remove parentheses

fix [issue-63156](https://github.com/rust-lang/rust/issues/63156).
add a pair of whitespace after remove parentheses.
2019-08-07 01:39:28 +02:00
Mazdak Farrokhzad
fb1f57e0e5
Rollup merge of #63034 - tmandry:reduce-generator-size-regressions, r=cramertj
Fix generator size regressions due to optimization

I tested the generator optimizations in #60187 and #61922 on the Fuchsia
build, and noticed that some small generators (about 8% of the async fns
in our build) increased in size slightly.

This is because in #60187 we split the fields into two groups, a
"prefix" non-overlap region and an overlap region, and lay them out
separately. This can introduce unnecessary padding bytes between the two
groups.

In every single case in the Fuchsia build, it was due to there being
only a single variant being used in the overlap region. This means that
we aren't doing any overlapping, period. So it's better to combine the
two regions into one and lay out all the fields at once, which is what
this change does.

r? @cramertj
cc @eddyb @Zoxc
2019-08-07 01:39:25 +02:00
Jeremy Soller
0498da9a3d
redox: convert to target_family unix 2019-08-06 16:18:23 -06:00
Tyler Mandry
b40788e89f Fix generator size regressions due to optimization
I tested the generator optimizations in #60187 and #61922 on the Fuchsia
build, and noticed that some small generators (about 8% of the async fns
in our build) increased in size slightly.

This is because in #60187 we split the fields into two groups, a
"prefix" non-overlap region and an overlap region, and lay them out
separately. This can introduce unnecessary padding bytes between the two
groups.

In every single case in the Fuchsia build, it was due to there being
only a single variant being used in the overlap region. This means that
we aren't doing any overlapping, period. So it's better to combine the
two regions into one and lay out all the fields at once, which is what
this change does.
2019-08-06 14:16:47 -07:00
bors
c326c2e0f1 Auto merge of #63320 - RalfJung:miri, r=oli-obk
bump Miri

r? @oli-obk

Fixes https://github.com/rust-lang/rust/issues/63219.
2019-08-06 21:05:10 +00:00
Esteban Küber
64469ac344 review comments 2019-08-06 11:23:32 -07:00
Jethro Beekman
c22cc1d67a Remove unnecessary features from compiler error code list 2019-08-06 10:49:45 -07:00
Esteban Küber
613c0a8780 move error with diverging output to compile-fail 2019-08-06 10:28:09 -07:00
bors
6a91782b72 Auto merge of #61515 - shepmaster:boxed-slice-to-array, r=cramertj
Add implementations for converting boxed slices into boxed arrays

This mirrors the implementations of reference slices into arrays.

# Discussion

- [x] Should we use const generics? ([probably not](https://github.com/rust-lang/rust/pull/61515#issuecomment-498690649))
- [ ] [What's the safety rationale here](https://github.com/rust-lang/rust/pull/61515#discussion_r290296613)?
- [ ] [Should the errors return the original object](https://github.com/rust-lang/rust/pull/61515#discussion_r290336592)?

# Remaining

- [ ] Implement `Error`
- [ ] Create a tracking issue
2019-08-06 17:19:05 +00:00
David Laban
c4940e0f90 test drop order for locals when a future is dropped part-way through execution 2019-08-06 15:20:47 +01:00
bors
188ab5c976 Auto merge of #63328 - Centril:rollup-482ujaf, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #62459 (Use internal iteration in the Sum and Product impls of Result and Option)
 - #62821 (Not listed methods)
 - #62837 (Fix theme picker blur handler: always hide instead of switching)
 - #63286 (Replace error callback with Result)
 - #63296 (Deduplicate rustc_demangle in librustc_codegen_llvm)
 - #63298 (assume_init: warn about valid != safe)

Failed merges:

r? @ghost
2019-08-06 13:37:22 +00:00
Mazdak Farrokhzad
d72cb093f4
Rollup merge of #63298 - RalfJung:assume_init, r=Mark-Simulacrum,Centril
assume_init: warn about valid != safe

We have this warning in the type-level docs, but it seems worth repeating it on the function.
2019-08-06 15:36:35 +02:00
Mazdak Farrokhzad
fbf268bfd4
Rollup merge of #63296 - alexcrichton:deduplicate-demangle, r=Mark-Simulacrum
Deduplicate rustc_demangle in librustc_codegen_llvm

This commit removes the crates.io dependency of `rustc-demangle` from
`rustc_codegen_llvm`. This crate is actually already pulled in to part
of the `librustc_driver` build and with the upcoming pipelining
implementation in Cargo it causes build issues if `rustc-demangle` is
left to its own devices.

This is not currently required, but once pipelining is enabled for
rustc's own build it will be required to build correctly.
2019-08-06 15:36:34 +02:00
Mazdak Farrokhzad
949b49a53d
Rollup merge of #63286 - Mark-Simulacrum:resolve-no-cb, r=petrochenkov
Replace error callback with Result

r? @petrochenkov
2019-08-06 15:36:32 +02:00
Mazdak Farrokhzad
a389521c90
Rollup merge of #62837 - Kinrany:patch-1, r=GuillaumeGomez
Fix theme picker blur handler: always hide instead of switching

Fixes a minor bug in UI generated by rustdoc.

For example, this page: https://doc.rust-lang.org/std/

Reproduction steps:
1. Click the theme picker twice
   * The list of themes will be shown and then hidden
2. Click anywhere else
   * The list of themes will be show again, which is unexpected

The bug was caused by blur event handler toggling the state of the element instead of always hiding it regardless of the current state.
2019-08-06 15:36:30 +02:00
Mazdak Farrokhzad
e6994714d9
Rollup merge of #62821 - GuillaumeGomez:not-listed-methods, r=Mark-Simulacrum
Not listed methods

Fixes #60326.

cc @rust-lang/rustdoc
r? @QuietMisdreavus
2019-08-06 15:36:28 +02:00
Mazdak Farrokhzad
c32735d03c
Rollup merge of #62459 - timvermeulen:result_sum_internal_iteration, r=scottmcm
Use internal iteration in the Sum and Product impls of Result and Option

This PR adds internal iteration to the `ResultShunt` iterator type underlying the `Sum` and `Product` impls of `Result`. I had to change `ResultShunt` to hold a mutable reference to an error instead, similar to `itertools::ProcessResults`, in order to be able to pass the `ResultShunt` itself by value (which is necessary for internal iteration).

`ResultShunt::process` can unfortunately no longer be an associated function because that would make it generic over the lifetime of the error reference, which wouldn't work, so I turned it into the free function `process_results`.

I removed the `OptionShunt` type and forwarded the `Sum` and `Product` impls of `Option` to their respective impls of `Result` instead, to avoid having to repeat the internal iteration logic.
2019-08-06 15:36:27 +02:00
David Laban
3882ed4abc fixup! test drop order for parameters when a future is dropped part-way through execution 2019-08-06 10:26:37 +01:00
Ralf Jung
1821414b7b clarify 2019-08-06 10:41:48 +02:00
bors
8996328ebf Auto merge of #63319 - Centril:rollup-d89rmey, r=Centril
Rollup of 14 pull requests

Successful merges:

 - #61457 (Implement DoubleEndedIterator for iter::{StepBy, Peekable, Take})
 - #63017 (Remove special code-path for handing unknown tokens)
 - #63184 (Explaining the reason why validation is performed in to_str of path.rs)
 - #63230 (Make use of possibly uninitialized data [E0381] a hard error)
 - #63260 (fix UB in a test)
 - #63264 (Revert "Rollup merge of #62696 - chocol4te:fix_#62194, r=estebank")
 - #63272 (Some more libsyntax::attr cleanup)
 - #63285 (Remove leftover AwaitOrigin)
 - #63287 (Don't store &Span)
 - #63293 (Clarify align_to's requirements and obligations)
 - #63295 (improve align_offset docs)
 - #63299 (Make qualify consts in_projection use PlaceRef)
 - #63312 (doc: fix broken sentence)
 - #63315 (Fix #63313)

Failed merges:

r? @ghost
2019-08-06 08:21:32 +00:00
bravomikekilo
3a95c716dc Add rustfix test and fix test name. 2019-08-06 16:00:13 +08:00
Ralf Jung
1b9eb4ac4c be clear that 1-init Vec being valid (but not safe) is not a stable guarantee 2019-08-06 09:47:42 +02:00
Ralf Jung
c0480875f8 bump Miri 2019-08-06 09:06:54 +02:00
Mazdak Farrokhzad
c27405f829
Rollup merge of #63315 - rust-lang:fix-63313, r=alexreg
Fix #63313

Fixes #63313

r? @alexreg
2019-08-06 08:17:53 +02:00
Mazdak Farrokhzad
5710a23d46
Rollup merge of #63312 - tshepang:doc-fix, r=Centril
doc: fix broken sentence

Also, the move was done nearly a year ago
2019-08-06 08:17:52 +02:00
Mazdak Farrokhzad
5a3359d7cc
Rollup merge of #63299 - spastorino:in-projection-use-ref, r=oli-obk
Make qualify consts in_projection use PlaceRef

r? @oli-obk
2019-08-06 08:17:50 +02:00
Mazdak Farrokhzad
d7b49a8a85
Rollup merge of #63295 - RalfJung:align_offset, r=dtolnay
improve align_offset docs

Cc @shepmaster
2019-08-06 08:17:48 +02:00
Mazdak Farrokhzad
000d646424
Rollup merge of #63293 - shepmaster:align-to-doc, r=RalfJung
Clarify align_to's requirements and obligations

Based on discussions with @RalfJung around my misunderstandings when using this.

r? @RalfJung
2019-08-06 08:17:47 +02:00
Mazdak Farrokhzad
505d68e739
Rollup merge of #63287 - Mark-Simulacrum:span-no-ref, r=Centril
Don't store &Span

This is just needless indirection.
2019-08-06 08:17:45 +02:00
Mazdak Farrokhzad
2301ecd429
Rollup merge of #63285 - Mark-Simulacrum:rm-await-origin, r=Centril
Remove leftover AwaitOrigin

This was missed in PR #62293.
2019-08-06 08:17:44 +02:00
Mazdak Farrokhzad
b2603d6386
Rollup merge of #63272 - Mark-Simulacrum:clean-attr, r=petrochenkov
Some more libsyntax::attr cleanup

Much smaller patch than the last one, mostly just finishing up by removing some Span arguments.

r? @petrochenkov
2019-08-06 08:17:42 +02:00
Mazdak Farrokhzad
61da2f4d19
Rollup merge of #63264 - arielb1:revert-private-coherence-errors, r=estebank
Revert "Rollup merge of #62696 - chocol4te:fix_#62194, r=estebank"

This reverts commit df21a6f040 (#62696), reversing
changes made to cc16d04869.

That PR makes error messages worse than before, and we couldn't come up with a way of actually making them better, so revert it for now. Any idea for making this error message better is welcome!

Fixes #63145.

r? @estebank
2019-08-06 08:17:41 +02:00