Commit Graph

101665 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
8bb039fb83
Rollup merge of #65315 - spastorino:intern-place-projection, r=oli-obk
Intern place projection

This should sit on top of https://github.com/rust-lang/rust/pull/65197. After that one merged, I'm gonna rebase on top of it.

The important commits are the last three and there's a bunch of code repetition that I'm going to remove but for that I need to refactor some things that probably need to be added before this PR.

Anyway this work helps as is because we can run perf tests :).

r? @oli-obk /cc @nikomatsakis
2019-10-25 13:12:46 +02:00
Mazdak Farrokhzad
1f93be1bb3
Rollup merge of #65074 - Rantanen:json-byte-pos, r=matklad
Fix the start/end byte positions in the compiler JSON output

Track the changes made during normalization in the `SourceFile` and use this information to correct the `start_byte` and `end_byte` fields in the JSON output.

This should ensure the start/end byte fields can be used to index the original file, even if Rust normalized the source code for parsing purposes. Both CRLF to LF and BOM removal are handled with this one.

The rough plan was discussed with @matklad in rust-lang-nursery/rustfix#176 - although I ended up going with `u32` offset tracking so I wouldn't need to deal with `u32 + i32` arithmetics when applying the offset to the span byte positions.

Fixes #65029
2019-10-25 13:12:45 +02:00
Mazdak Farrokhzad
959b6e324c
Rollup merge of #64639 - davidtwco:rfc-2008-stabilization, r=Centril
Stabilize `#[non_exhaustive]` (RFC 2008)

Fixes #44109.

This pull request stabilizes the `#[non_exhaustive]` attribute, which is used to indicate that a type will have more fields / variants added in the future. It can be applied to `struct`s, `enum`s and `enum` variants. See https://github.com/rust-lang/rust/issues/44109#issuecomment-533356866 for the stabilization report.

r? @Centril
2019-10-25 13:12:43 +02:00
Hideki Sekine
95442ae251 fix doctest 2019-10-25 19:55:58 +09:00
Hideki Sekine
30e8f65549 Simplify .drain_sorted() and its doc. 2019-10-25 19:31:35 +09:00
Hideki Sekine
2dbf268562 Remove unused uses. 2019-10-25 18:48:19 +09:00
Felix S. Klock II
620083ad16 refactoring: move const_to_pat code into its own submodule. 2019-10-25 11:39:12 +02:00
Lukas Kalbertodt
dcf3436899 Fill tracking issue number for array_value_iter and fix Rust version 2019-10-25 11:37:30 +02:00
Felix S. Klock II
4f7b922afe refactor: move structural_match analysis into its own module. 2019-10-25 11:27:36 +02:00
Michael Woerister
9c083068e3 self-profiling: Switch query-blocking measurements to RAII-style API. 2019-10-25 11:14:29 +02:00
Felix S. Klock II
f0e370f067 fix typo in filename. 2019-10-25 11:08:07 +02:00
Felix S. Klock II
c2b4c433a5 fix typo in test. 2019-10-25 11:07:59 +02:00
Mazdak Farrokhzad
9e3e3a470e
with_desugared_doc: correctly refer to attr instead of self
Co-Authored-By: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
2019-10-25 10:43:08 +02:00
David Wood
e0590ea76f
RFC 2008: Stabilization
This commit stabilizes RFC 2008 (#44109) by removing the feature gate.

Signed-off-by: David Wood <david@davidtw.co>
2019-10-25 09:34:05 +01:00
Stefan Lankes
805a330ab4 rerun cargo to generate lock file 2019-10-25 10:24:14 +02:00
Hideki Sekine
6b8807333a Add .into_iter_sorted() and .drain_sorted()
* `.drain_sorted()` doc change suggested by @KodrAus
2019-10-25 17:06:58 +09:00
Stefan Lankes
88a7736083 update Cargo.lock 2019-10-25 10:03:41 +02:00
bors
85943fd7c8 Auto merge of #65764 - Manishearth:clippyup, r=Manishearth
Update clippy

Fixes #65754

r? @ghost
2019-10-25 07:47:13 +00:00
Stefan Lankes
d349e32fc7 Merge branch 'master' into rusty-hermit, resolve conflicts 2019-10-25 09:09:55 +02:00
bors
dd2df8f97d Auto merge of #65793 - Centril:rollup-v40xke9, r=Centril
Rollup of 9 pull requests

Successful merges:

 - #62959 (Add by-value iterator for arrays )
 - #65390 (Add long error explanation for E0576)
 - #65408 (reorder config.toml.example options and add one missing option)
 - #65414 (ignore uninhabited non-exhaustive variant fields)
 - #65666 (Deprecated proc_macro doesn't trigger warning on build library)
 - #65742 (Pre-expansion gate most of the things)
 - #65747 (Adjust the tracking issue for `untagged_unions`.)
 - #65763 (Changed APIT with explicit generic args span to specific arg spans)
 - #65775 (Fix more `ReEmpty` ICEs)

Failed merges:

 - #65519 (trait-based structural match implementation)

r? @ghost
2019-10-25 04:24:40 +00:00
Mazdak Farrokhzad
100c924527
Rollup merge of #65775 - matthewjasper:reempty, r=pnkfelix
Fix more `ReEmpty` ICEs

closes #65553

r? @pnkfelix
2019-10-25 06:18:14 +02:00
Mazdak Farrokhzad
2b7cc64e43
Rollup merge of #65763 - ObsidianMinor:diag/65642, r=varkor
Changed APIT with explicit generic args span to specific arg spans

Fixes #65642.
2019-10-25 06:18:12 +02:00
Mazdak Farrokhzad
8b9661bbb0
Rollup merge of #65747 - Centril:union-issue-fix, r=varkor
Adjust the tracking issue for `untagged_unions`.

Makes https://github.com/rust-lang/rust/issues/55149 the new tracking issue for `untagged_unions`.
Closes https://github.com/rust-lang/rust/issues/32836 which is the old tracking issue.

r? @varkor
2019-10-25 06:18:11 +02:00
Mazdak Farrokhzad
d6a18b6baf
Rollup merge of #65742 - Centril:gate-pre-expansion-subset, r=davidtwco
Pre-expansion gate most of the things

This is a subset of https://github.com/rust-lang/rust/pull/64672. A crater run has already been done and this PR implements conclusions according to https://github.com/rust-lang/rust/pull/64672#issuecomment-542703363.

r? @davidtwco
cc @petrochenkov
2019-10-25 06:18:09 +02:00
Mazdak Farrokhzad
fb602c7e4f
Rollup merge of #65666 - XiangQingW:proc_macro, r=petrochenkov
Deprecated proc_macro doesn't trigger warning on build library

Fix #65189
2019-10-25 06:18:08 +02:00
Mazdak Farrokhzad
50e8c41a81
Rollup merge of #65414 - davidtwco:issue-65157-non-exhaustive-always-useful, r=varkor
ignore uninhabited non-exhaustive variant fields

Fixes #65157.

This PR modifies the uninhabitedness checking so that the fields of
a non-exhaustive variant (which is not local) are ignored if they are
uninhabited. This is an improvement over the previous behaviour which
considered all non-local non-exhaustive variants useful because
unreachable patterns are now detected.

r? @arielb1
cc @varkor
2019-10-25 06:18:06 +02:00
Mazdak Farrokhzad
ee7f9de4c4
Rollup merge of #65408 - guanqun:remove-rust-optimize, r=Mark-Simulacrum
reorder config.toml.example options and add one missing option

r? @Mark-Simulacrum
2019-10-25 06:18:04 +02:00
Mazdak Farrokhzad
e25720f106
Rollup merge of #65390 - GuillaumeGomez:long-err-explanation-E0576, r=matthewjasper,kinnison
Add long error explanation for E0576

Part of #61137.
2019-10-25 06:18:02 +02:00
Mazdak Farrokhzad
a302155344
Rollup merge of #62959 - LukasKalbertodt:array-value-iter, r=scottmcm
Add by-value iterator for arrays

This adds an iterator that can iterate over arrays by value, yielding all elements by value. However, **this PR does _not_ add a corresponding `IntoIterator` impl for arrays**. The `IntoIterator` impl needs some discussion about backwards-compatibility that should take place in a separate PR. With this patch, this code should work (but there is currently still a bug):

```rust
#![feature(array_value_iter)]
use std::array::IntoIter;

let arr = [1, 2, 3];
for x in IntoIter::new(arr) {
    println!("{}", x);
}
```

**TODO**:
- [x] Get initial feedback
- [x] Add tests
- [x] Figure out why stage1 produces weird bugs ([comment](https://github.com/rust-lang/rust/pull/62959#issuecomment-516016524))
- [x] Add UI tests as mentioned [here](https://github.com/rust-lang/rust/pull/62959#discussion_r307061894) (will do that soon-ish)
- [x] Fix [this new bug](https://github.com/rust-lang/rust/pull/62959#issuecomment-544732159)

**Notes for reviewers**
- Is the use of `MaybeUninit` correct here? I think it has to be used due to the `Clone` impl which has to fill the dead array elements with something, but cannot fill it with a correct instance.
- Are the unit tests sufficient?

CC #25725
2019-10-25 06:18:01 +02:00
Yves Dorfsman
9733b0f122 Adding doc on keyword continue 2019-10-24 21:35:16 -06:00
Mazdak Farrokhzad
5ff7349ef7 move report_invalid_macro_expansion_item to item.rs 2019-10-25 05:26:36 +02:00
Mazdak Farrokhzad
0a5b38f9c3 move Attribute::with_desugared_doc to librustdoc 2019-10-25 04:38:42 +02:00
Mazdak Farrokhzad
d7f6ba83fc move panictry! to where it is used. 2019-10-25 04:29:37 +02:00
bors
d54111afc0 Auto merge of #65771 - Centril:rollup-upfsvrb, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #65625 (Turn crate store into a resolver output)
 - #65627 (Forbid non-`structural_match` types in const generics)
 - #65710 (Update cargo)
 - #65729 (Update test cases for vxWorks)
 - #65746 (Tweak format string error to point at arguments always)
 - #65753 (Don't assert for different instance on impl trait alias)
 - #65755 (Avoid ICE when adjusting bad self ty)
 - #65766 (Update hashbrown to 0.6.2)

Failed merges:

r? @ghost
2019-10-25 00:40:55 +00:00
Esteban Küber
508d032647 review comment: deduplicate logic 2019-10-24 15:44:43 -07:00
Guillaume Gomez
e836b1b9d0 Prevent help popup to disappear when clicking on it 2019-10-24 22:52:54 +02:00
Matthew Jasper
707315857a Don't ICE for completely unexpandable impl Trait types 2019-10-24 21:33:09 +01:00
Matthew Jasper
d724174346 Fix more ReEmpty ICEs 2019-10-24 21:15:08 +01:00
Esteban Küber
0baf61bfdb Increase spacing for suggestions in diagnostics
Make the spacing between the code snippet and verbose structured
suggestions consistent with note and help messages.
2019-10-24 12:26:01 -07:00
Mark Mansi
1a93bc5c35 remove the last remaining READMEs 2019-10-24 13:32:54 -05:00
Mazdak Farrokhzad
fd6795b46a
Rollup merge of #65766 - alexcrichton:less-inline-hashbrown, r=Mark-Simulacrum
Update hashbrown to 0.6.2

Pulls in rust-lang/hashbrown#119 which should be a good improvement for
compile times of hashmap-heavy crates.
2019-10-24 20:20:10 +02:00
Mazdak Farrokhzad
7b3896fdf2
Rollup merge of #65755 - estebank:icicle, r=davidtwco
Avoid ICE when adjusting bad self ty

Fix #65611.
2019-10-24 20:20:08 +02:00
Mazdak Farrokhzad
1b0367146a
Rollup merge of #65753 - csmoe:derive_fold, r=Centril
Don't assert for different instance on impl trait alias

Closes https://github.com/rust-lang/rust/issues/65679
r? @Centril @nikomatsakis
2019-10-24 20:20:07 +02:00
Mazdak Farrokhzad
1e4a2ee6d5
Rollup merge of #65746 - estebank:newcomer-format, r=Centril
Tweak format string error to point at arguments always

Add secondary span labels with no text to make it clear when there's a
mismatch bewteen the positional arguments in a format string and the
arguments to the macro. This shouldn't affect experienced users, but it
should make it easier for newcomers to more clearly understand how
`format!()` and `println!()` are supposed to be used.

```
error: 2 positional arguments in format string, but there is 1 argument
 --> file8.rs:2:14
  |
2 |     format!("{} {}", 1);
  |              ^^ ^^   -
```

instead of

```
error: 2 positional arguments in format string, but there is 1 argument
 --> file8.rs:2:14
  |
2 |     format!("{} {}", 1);
  |              ^^ ^^
```

r? @Centril
2019-10-24 20:20:05 +02:00
Mazdak Farrokhzad
efa50378d5
Rollup merge of #65729 - Wind-River:master_003, r=alexcrichton
Update test cases for vxWorks
2019-10-24 20:20:04 +02:00
Mazdak Farrokhzad
0da94a45e9
Rollup merge of #65710 - ehuss:update-cargo, r=alexcrichton
Update cargo

6 commits in 3a9abe3f065554a7fbc59f440df2baba4a6e47ee..3ba5f27170db10af7a92f2b682e049397197b8fa
2019-10-15 15:55:35 +0000 to 2019-10-22 15:05:18 +0000
- Fix typo in `cargo install --profile` help (rust-lang/cargo#7532)
- Use stricter -Z flag parsing. (rust-lang/cargo#7531)
- Set timestamp on generated files in archive to now (rust-lang/cargo#7523)
- Support rustc's `-Z panic-abort-tests` in Cargo (rust-lang/cargo#7460)
- rustfmt for nightly changes. (rust-lang/cargo#7526)
- Allow --all-features in root of virtual workspace. (rust-lang/cargo#7525)
2019-10-24 20:20:02 +02:00
Mazdak Farrokhzad
9c04bd1b4d
Rollup merge of #65627 - varkor:const-generics-forbid-non-structural_match, r=petrochenkov
Forbid non-`structural_match` types in const generics

Fixes https://github.com/rust-lang/rust/issues/60286.
2019-10-24 20:20:01 +02:00
Mazdak Farrokhzad
cdb7634f0c
Rollup merge of #65625 - petrochenkov:cstore, r=Mark-Simulacrum,Zoxc
Turn crate store into a resolver output

Crate store (`CStore`) is a vector of data (`CrateMetadata`) associated with extern crates loaded during the current compilation session.

All crates are loaded in the resolver when resolving either paths pointing to extern prelude or `extern crate` items. (There are also a couple of crates like panic runtime that are loaded kind of like implicit `extern crate`s, but that also happens in resolve.)

The use of `CStore` from `rustc_plugin` (which is outside of the resolver) was unnecessary because legacy plugins are not added to the crate store and don't use `CrateNum`s.

So, `CStore` can be produced by the resolver instead of being kept in some really global data (`rustc_interface::Compiler`) like now.

As a result of crate store being more "local" we can now remove some locks and `Lrc`s.
2019-10-24 20:19:59 +02:00
Vadim Petrochenkov
94216ce3ad rustc_interface: Remove ExpansionResult and some Steals 2019-10-24 21:12:05 +03:00
Vadim Petrochenkov
9f5a530b84 rustc_metadata: Minimize use of Lrc in crate store
Crate metadatas are still stored as `Lrc<CrateMetadata>` in `CStore` because crate store has to be cloneable due to `Resolver::clone_outputs`.
2019-10-24 20:54:16 +03:00