100319 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
19d035c013
Rollup merge of #64922 - spastorino:make-place-builder, r=nikomatsakis
Use PlaceBuilder to avoid a lot of slice -> vec -> slice convertions

r? @oli-obk
2019-10-02 18:24:33 +02:00
Mazdak Farrokhzad
fe5fad8912
Rollup merge of #64914 - pnkfelix:issue-64453-regression-test, r=nikomatsakis
regression test for 64453 borrow check error.

Fix #64453
2019-10-02 18:24:31 +02:00
Mazdak Farrokhzad
b7290a0642
Rollup merge of #64850 - Mark-Simulacrum:dedup-dep-node, r=michaelwoerister
Remove inlines from DepNode code
2019-10-02 18:24:30 +02:00
Mazdak Farrokhzad
18d0c03a13
Rollup merge of #64581 - ztlpn:fix-ok-wrapping-unreachable-code, r=Centril
Fix unreachable_code warnings for try{} block ok-wrapped expressions

Fixes #54165 and fixes #63324.
2019-10-02 18:24:29 +02:00
Charles Gleason
5055d4b1c6 Use zipped iterators in clone_from for LinkedList 2019-10-02 11:29:12 -04:00
BO41
2ab7a67326 Replace mentions of IRC with Discord 2019-10-02 17:28:48 +02:00
Alex Crichton
b3fe511635 Update llvm-project submodule
Bring in rust-lang/llvm-project#24 which brings in some wasm
improvements related to the bulk-memory proposal
2019-10-02 07:47:38 -07:00
Niko Matsakis
81cd596bc5 WIP rebase for shallow_resolve call 2019-10-02 10:39:58 -04:00
Niko Matsakis
094f3a844e WIP tidy hir/lowering/expr.rs 2019-10-02 10:33:07 -04:00
Niko Matsakis
f7ed53c9da extract expected return type from -> impl Future obligation 2019-10-02 10:03:40 -04:00
Niko Matsakis
c8e58512d4 improved debug output 2019-10-02 10:03:28 -04:00
Niko Matsakis
44e801aca6 thread down the body so we can check if this is an async fn body 2019-10-02 10:03:27 -04:00
Niko Matsakis
c845f3d002 track the kind of async generator we are creating 2019-10-02 10:03:27 -04:00
Santiago Pastorino
03455e47d8
Filter out RLS output directories on tidy runs 2019-10-02 11:02:14 -03:00
Santiago Pastorino
79dc862d4a
Use PlaceBuilder to avoid a lot of slice -> vec -> slice convertions 2019-10-02 10:53:22 -03:00
Robin Kruppe
8e9f635a70
rustc book: nitpick SLP vectorization
SLP vectorization (in general and as implemented in LLVM) is not limited to loops.
2019-10-02 14:41:49 +02:00
Guillaume Gomez
70dcb99889 Remove rustdoc warning 2019-10-02 14:24:59 +02:00
Guillaume Gomez
de961a7e12 Fix rustdoc display with js disabled 2019-10-02 14:21:25 +02:00
Ben Boeckel
fb80e6c62e BacktraceStatus: add Eq impl
See discussion on #53487.
2019-10-02 08:17:28 -04:00
Mark Rousskov
675ed489d5 Remove inline annotations from dep_node 2019-10-02 07:49:11 -04:00
Wesley Wiser
3a8932d9b0 [const-prop] Correctly handle locals that can't be propagated
`const_prop()` now handles writing the Rvalue into the Place in the
stack frame for us. So if we're not supported to propagate that value,
we need to clear it.
2019-10-02 06:18:45 -04:00
Shotaro Yamada
f0fddb1a89 Do not collect to vec for debug output 2019-10-02 18:59:05 +09:00
Shotaro Yamada
8e67180c52 Fix async/await ICE #64964 2019-10-02 18:26:57 +09:00
David Wood
2537a8aa7a
syntax: improve parameter without type suggestions
This commit improves the suggestions provided when function parameters
do not have types:

- A new suggestion is added for arbitrary self types, which suggests
adding `self: ` before the type.

- Existing suggestions are now provided when a `<` is found where a `:`
was expected (previously only `,` and `)` or trait items), this gives
suggestions in the case where the unnamed parameter type is generic
in a free function.

- The suggestion that a type name be provided (e.g. `fn foo(HashMap<u32>)`
-> `fn foo(HashMap: TypeName<u32>)`) will no longer occur when a `<` was
found instead of `:`.

- The ident will not be used for recovery when a `<` was found instead
of `:`.

Signed-off-by: David Wood <david@davidtw.co>
2019-10-02 09:51:27 +01:00
bors
f2023ac599 Auto merge of #64981 - tmandry:rollup-slfkhay, r=tmandry
Rollup of 11 pull requests

Successful merges:

 - #64649 (Avoid ICE on return outside of fn with literal array)
 - #64722 (Make all alt builders produce parallel-enabled compilers)
 - #64801 (Avoid `chain()` in `find_constraint_paths_between_regions()`.)
 - #64805 (Still more `ObligationForest` improvements.)
 - #64840 (SelfProfiler API refactoring and part one of event review)
 - #64885 (use try_fold instead of try_for_each to reduce compile time)
 - #64942 (Fix clippy warnings)
 - #64952 (Update cargo.)
 - #64974 (Fix zebra-striping in generic dataflow visualization)
 - #64978 (Fully clear `HandlerInner` in `Handler::reset_err_count`)
 - #64979 (Update books)

Failed merges:

 - #64959 (syntax: improve parameter without type suggestions)

r? @ghost
2019-10-02 06:08:24 +00:00
Tyler Mandry
0878ca51f0
Rollup merge of #64979 - ehuss:update-books, r=ehuss
Update books

## reference

3 commits in fa5dfb832ef8a7568e17dabf612f486d641ff4ac..320d232b206edecb67489316f71a14e31dbc6c08
2019-09-16 20:42:56 +0200 to 2019-10-01 17:05:35 +0200
- Update async/await keywords to real keywords. (rust-lang-nursery/reference#687)
- Remove the warning that appears on every page. (rust-lang-nursery/reference#685)
- Eschew fp lit pattern (rust-lang-nursery/reference#683)

## book

9 commits in 871416b85c1a73717d65d6f4a9ea29e5aef3db0e..04806c80be0f54b1290287e3f85e84bdfc0b6ec7
2019-09-16 09:46:20 -0400 to 2019-10-01 20:20:22 -0400
- Fix tidy error. (rust-lang/book#2104)
- Fancy quotes
- Commit autogenerated cargo content
- Move all scripts into tools
- We can start lines with numbers without creating ordered lists
- ci: validate that all used references are defined (rust-lang/book#2032)
- Remove the check for unstable features
- Specify the rustc version we're using in a rust-toolchain file
- Fix broken link to Chapter 13-01 in Chapter 12-04 (rust-lang/book#2025)

## rust-by-example

9 commits in 67cfbf31df880728dcf7cb35b15b028ec92caf31..a6288e7407a6c4c19ea29de6d43f40c803883f21
2019-09-18 09:36:40 -0300 to 2019-10-01 10:09:14 -0300
- Add reference to lifetime in structs (rust-lang/rust-by-example#1274)
- Rectangle ambiguity (rust-lang/rust-by-example#1270)
- Make Parsing a String code editable (rust-lang/rust-by-example#1268)
- Fix match range pattern usage (rust-lang/rust-by-example#1269)
- Added type alias enum variant rfc (rust-lang/rust-by-example#1267)
- Chapter 9.2.5: impl FnOnce() works in 1.35 (rust-lang/rust-by-example#1266)
- Move chapters from folder "traits" to "trait" (rust-lang/rust-by-example#1263)
- Capturing changes (rust-lang/rust-by-example#1265)
- Fix rust-lang/rust-by-example#1261: document Iterator::position (rust-lang/rust-by-example#1262)

r? @ghost
2019-10-01 23:06:25 -07:00
Tyler Mandry
4e2bfe2852
Rollup merge of #64978 - AnthonyMikh:librustc_errors/lib__fully_clear_inner_handler, r=Mark-Simulacrum
Fully clear `HandlerInner` in `Handler::reset_err_count`

Address [`FIXME`](702b45e409/src/librustc_errors/lib.rs (L472)) for `Handler::reset_err_count` in the way suggested by @Mark-Simulacrum, i. e. clear all the fields of `HandlerInner`.

cc @estebank
2019-10-01 23:06:24 -07:00
Tyler Mandry
643ae957d2
Rollup merge of #64974 - ecstatic-morse:generic-graphviz-zebra, r=petrochenkov
Fix zebra-striping in generic dataflow visualization

A small formatting improvement to #64828.

Prior to this, the background color of the first row of the table for each basic block changed seemingly at random. You can see this in [basic block #5](https://github.com/rust-lang/rust/pull/64828#issuecomment-536690047) under "New table". Now it is always light.

This also updates the example table to match the current output.
2019-10-01 23:06:22 -07:00
Tyler Mandry
2f29548cb4
Rollup merge of #64952 - michaelwoerister:update-cargo, r=alexcrichton
Update cargo.

Pulls f3c92ed52e into nightly Rust.

r? @alexcrichton
2019-10-01 23:06:20 -07:00
Tyler Mandry
73aa2bd707
Rollup merge of #64942 - JohnTitor:fix-clippy, r=eddyb
Fix clippy warnings

* Use `match` instead of `if` chain
* Remove redundant `into_iter()`
* Use `copied()` instead of `map()`

etc.
2019-10-01 23:06:19 -07:00
Tyler Mandry
76fb91be84
Rollup merge of #64885 - andjo403:iter, r=scottmcm
use try_fold instead of try_for_each to reduce compile time

as it was stated in #64572 that the biggest gain was due to less code was generated I tried to reduce the number of functions to inline by using try_fold direct instead of calling try_for_each that calls try_fold.

as there is some gains with using the try_fold function this is maybe a way forward.
when I tried to compile the clap-rs benchmark I get times gains only some % from #64572

there is more function that use eg. fold that calls try_fold that also can be changed but the question is how mush "duplication" that is tolerated in std to give faster compile times

can someone start a perf run?

cc @nnethercote @scottmcm @bluss
r? @ghost
2019-10-01 23:06:17 -07:00
Tyler Mandry
8f5f92a07a
Rollup merge of #64840 - michaelwoerister:self-profiling-raii-refactor, r=wesleywiser
SelfProfiler API refactoring and part one of event review

This PR refactors the `SelfProfiler` a little bit so that most profiling methods are RAII-based. The codegen backend code already had something similar, this refactoring pulls this functionality up into `SelfProfiler` itself, for general use.

The second commit of this PR is a review and update of the existing events we are already recording. Names have been made more consistent. CGU names have been removed from event names. They will be added back in when function parameter recording is implemented.

There is still some work to be done for adding new events, especially around trait resolution and the incremental system.

r? @wesleywiser
2019-10-01 23:06:16 -07:00
Tyler Mandry
0e88e56a9a
Rollup merge of #64805 - nnethercote:ObligForest-still-more, r=nikomatsakis
Still more `ObligationForest` improvements.

Following on from #64627, more readability improvements, but negligible effects on speed.

r? @nikomatsakis
2019-10-01 23:06:14 -07:00
Tyler Mandry
bd9d843ae4
Rollup merge of #64801 - nnethercote:improve-find_constraint_paths_between_regions, r=estebank
Avoid `chain()` in `find_constraint_paths_between_regions()`.

This iterator can be hot, and chained iterators are slow. The second
half of the chain is almost always empty, so this commit specializes the
code to avoid the chained iteration.

This change reduces instruction counts for the `wg-grammar` benchmark by
up to 1.5%.
2019-10-01 23:06:12 -07:00
Tyler Mandry
65a050fddc
Rollup merge of #64722 - Mark-Simulacrum:alt-parallel, r=alexcrichton
Make all alt builders produce parallel-enabled compilers

We're not quite ready to ship parallel compilers by default, but the alt
builders are not used too much (in theory), so we believe that shipping
a possibly-broken compiler there is not too problematic.

r? @nikomatsakis
2019-10-01 23:06:11 -07:00
Tyler Mandry
c11cb25262
Rollup merge of #64649 - estebank:returnator, r=varkor
Avoid ICE on return outside of fn with literal array

Do not ICE when encountering `enum E { A = return [0][0] }`.

Fix #64638.
2019-10-01 23:06:09 -07:00
Dylan MacKenzie
33aa5e855e Add test exposing unsoundness in IndirectlyMutableLocals 2019-10-01 22:16:15 -07:00
Aaron Hill
84b680f56f
Add missing 'bump' 2019-10-02 01:04:22 -04:00
Aaron Hill
73b50d211b
Add support for 'extern const fn'
This works just as you might expect - an 'extern const fn' is a 'const
fn' that is callable from foreign code.

Currently, panicking is not allowed in consts. When RFC 2345 is
stabilized, then panicking in an 'extern const fn' will produce a
compile-time error when invoked at compile time, and an abort when
invoked at runtime.

Since this is extending the language (we're allowing the `const` keyword
in a new context), I believe that this will need an FCP. However, it's a
very minor change, so I didn't think that filing an RFC was necessary.

This will allow libc (and other FFI crates) to make many functions
`const`, without having to give up on making them `extern` as well.
2019-10-02 00:38:52 -04:00
Guanqun Lu
11c2d43485 typo fix in the code 2019-10-02 12:09:30 +08:00
Dylan MacKenzie
767550ef0f Add rustc_peek support for IndirectlyMutableLocals 2019-10-01 20:29:57 -07:00
Dylan MacKenzie
f18535fa46 Refactor rustc_peek
We now use `DataflowResultsCursor` to get the dataflow state before
calls to `rustc_peek`. The original version used a custom implementation
that only looked at assignment statements. This also extends
`rustc_peek` to take arguments by-value as well as by-reference, and
allows *all* dataflow analyses, not just those dependent on `MoveData`,
to be inspected.
2019-10-01 20:28:08 -07:00
Eric Huss
04427b159d Update books 2019-10-01 19:35:13 -07:00
bors
ff191b54cc Auto merge of #64963 - Manishearth:clippyup, r=Manishearth
Update clippy

r? @ghost
2019-10-02 02:01:20 +00:00
Aaron Hill
ba54ef8110
Add comments, rename variable 2019-10-01 21:44:13 -04:00
Aaron Hill
9c5a5c471a
Rename to was_placeholder to from_forall 2019-10-01 21:39:19 -04:00
Aaron Hill
1caa6dc546
Fixup tests 2019-10-01 21:22:46 -04:00
AnthonyMikh
bd7cd80299
Fully clear HandlerInner in Handler::reset_err_count 2019-10-02 04:13:02 +03:00
Guanqun Lu
51482d0b75 fix unit tests 2019-10-02 09:06:37 +08:00
Guanqun Lu
5abc5e9b3d add FIXME and use 'span_label' 2019-10-02 09:06:37 +08:00