Commit Graph

65058 Commits

Author SHA1 Message Date
Nick Cameron
f2340a0146 Update RLS submod 2017-06-20 18:55:14 +12:00
Nick Cameron
7a18a77e1b Update rls-data dep 2017-06-20 18:55:14 +12:00
bors
e00c0401b8 Auto merge of #42754 - alexcrichton:update-cargo, r=jonathandturner
Update `wincolor` dep for Cargo

Closes rust-lang/cargo#4189
2017-06-20 02:34:41 +00:00
Alex Crichton
5bc4031e63 Update wincolor dep for Cargo
Closes rust-lang/cargo#4189
2017-06-19 10:44:12 -07:00
bors
04145943a2 Auto merge of #39409 - pnkfelix:mir-borrowck2, r=nikomatsakis
MIR EndRegion Statements (was MIR dataflow for Borrows)

This PR adds an `EndRegion` statement to MIR (where the `EndRegion` statement is what terminates a borrow).

An earlier version of the PR implemented a dataflow analysis on borrow expressions, but I am now factoring that into a follow-up PR so that reviewing this one is easier. (And also because there are some revisions I want to make to that dataflow code, but I want this PR to get out of WIP status...)

This is a baby step towards MIR borrowck. I just want to get the review process going while I independently work on the remaining steps.
2017-06-19 13:01:27 +00:00
bors
5ce5126199 Auto merge of #42737 - fhahn:rust-log-crash, r=michaelwoerister
rustc: Check if def_path_hash_to_def_id is populated before accessing.

Without this patch, there is an ICE when running rustc with
RUST_LOG=debug. This patch updates extract_def_id to check if the map
has been populated before accessing it. This fixes the problem, but
maybe we do not need to compute the incremental hashes maps in the first
place when we are not in incremental mode?
2017-06-19 08:45:00 +00:00
bors
8525eb820b Auto merge of #42722 - est31:master, r=Mark-Simulacrum
Remove SUMMARY.md of the unstable book as its autogenerated

Its being autogenerated now, as of PR #42612.
It seems I forgot to remove it.

Also, sort the entries of SUMMARY.md alphabetically.
2017-06-19 03:42:27 +00:00
bors
8e26c0eb38 Auto merge of #42740 - arielb1:bad-arm-2, r=alexcrichton
Backport fixes to LLVM 4.0 ARM codegen bugs

So ARM had quite a few codegen bugs on LLVM 4.0 which are fixed on LLVM
trunk. This backports 5 of them:
r297871 - ARM: avoid clobbering register in v6 jump-table expansion.
    - fixes rust-lang/rust#42248
r294949 - [Thumb-1] TBB generation: spot redefinitions of index
r295816 - [ARM] Fix constant islands pass.
r300870 - [Thumb-1] Fix corner cases for compressed jump tables
r302650 - [IfConversion] Add missing check in
IfConversion/canFallThroughTo
    - unblocks rust-lang/rust#39409

r? @alexcrichton
beta-nominating because this fixes regressions introduced by LLVM 4.0.
2017-06-19 01:31:31 +00:00
bors
30322efee2 Auto merge of #42735 - arielb1:generic-closure-fn, r=eddyb
collector: apply param substs to closures cast to fn items

Fixes #42718.

r? @eddyb
beta-nominating because serious ICE in newly-stabilized feature.
2017-06-18 23:22:35 +00:00
Ariel Ben-Yehuda
207951b169 Backport fixes to LLVM 4.0 ARM codegen bugs
So ARM had quite a few codegen bugs on LLVM 4.0 which are fixed on LLVM
trunk. This backports 5 of them:
r297871 - ARM: avoid clobbering register in v6 jump-table expansion.
    - fixes rust-lang/rust#42248
r294949 - [Thumb-1] TBB generation: spot redefinitions of index
r295816 - [ARM] Fix constant islands pass.
r300870 - [Thumb-1] Fix corner cases for compressed jump tables
r302650 - [IfConversion] Add missing check in
IfConversion/canFallThroughTo
    - unblocks rust-lang/rust#39409
2017-06-19 00:53:27 +03:00
est31
696085faee Sort entries of SUMMARY.md alphabetically 2017-06-18 23:26:39 +02:00
est31
9f6fb8e88f Remove SUMMARY.md of the unstable book as its autogenerated
Its being autogenerated now, as of PR #42612.
It seems I forgot to remove it.
2017-06-18 23:26:39 +02:00
bors
10d7cb44c9 Auto merge of #42676 - alexcrichton:update-cargo, r=Mark-Simulacrum
Update cargo/rls submodules and dependencies

Brings in a few regression fixes on the Cargo side, updates the rls to work
with the newer Cargo, and also updates other crates.io dependencies to pull in
various bug fixes and such.
2017-06-18 21:10:33 +00:00
bors
247a0184ff Auto merge of #42738 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 7 pull requests

- Successful merges: #42695, #42714, #42720, #42723, #42730, #42731, #42734
- Failed merges: #42722
2017-06-18 17:29:58 +00:00
Mark Simulacrum
3bed3bd146 Rollup merge of #42734 - MaloJaffre:tests, r=Mark-Simulacrum
Add tests for various issues

Fixes #11740.
Fixes #19601.
Fixes #22603
Fixes #22789.
Fixes #26614.

r? @Mark-Simulacrum.
2017-06-18 10:34:14 -06:00
Mark Simulacrum
db9c12c2ef Rollup merge of #42731 - MaloJaffre:issue-24889, r=Mark-Simulacrum
Add test for #24889

Fixes #24889.
r? @Mark-Simulacrum (Thanks for the instructions).
2017-06-18 10:34:13 -06:00
Mark Simulacrum
27a3f7340a Rollup merge of #42730 - VBChunguk:boxed-wild-pattern, r=eddyb
Use T as the subpattern type of Box<T>

The subpattern type of boxes being nil does not make sense because of box patterns. They should have their inner type as the subpattern type.

Fixes #42679, which describes ICE caused by the bug.
2017-06-18 10:34:12 -06:00
Mark Simulacrum
2068596a54 Rollup merge of #42723 - ubsan:master, r=QuietMisdreavus
Add `_` to the list of keywords

also, make sure the keyword table is correctly spaced

note: the reference also needs to be updated. This is not the only way to do this in the grammar, but it's my preferred way.
2017-06-18 10:34:11 -06:00
Mark Simulacrum
c982529327 Rollup merge of #42720 - murarth:deprecated-collections, r=alexcrichton
Reintroduce deprecated `collections` crate
2017-06-18 10:34:10 -06:00
Mark Simulacrum
9b4c4d001f Rollup merge of #42714 - alexbool:master, r=alexcrichton
Inline StrSearcher::haystack()
2017-06-18 10:34:09 -06:00
Mark Simulacrum
7eff974454 Rollup merge of #42695 - Mark-Simulacrum:fix-verbose, r=alexcrichton
Use custom cargo/rustc paths when parsing flags.

Fixes https://github.com/rust-lang/rust/issues/41779, probably also https://github.com/rust-lang/rust/issues/42543 (I think they're duplicates).

I'm not entirely happy with the implementation, since it means we parse the configuration twice, but it's the minimal solution. I think the other choice is to move both calls to Config::parse inside Flags::parse and merge them, but I don't know if that's a good idea.

r? @alexcrichton
2017-06-18 10:34:08 -06:00
Malo Jaffré
5fe89e8eb1 Add tests for various issues
Fixes #11740.
Fixes #19601.
Fixes #22603
Fixes #22789.
Fixes #26614.

r? @Mark-Simulacrum.
2017-06-18 18:18:08 +02:00
Florian Hahn
8723f28772 rustc: Check if def_path_hash_to_def_id is populated before accessing it.
Without this patch, there is an ICE when running rustc with
RUST_LOG=debug. This patch updates extract_def_id to check if the map
has been populated before accessing it. This fixes the problem, but
maybe we do not need to compute the incremental hashes maps in the first
place when we are not in incremental mode?
2017-06-18 17:01:25 +01:00
Ariel Ben-Yehuda
09219d6a49 collector: apply param substs to closures cast to fn items
Fixes #42718.
2017-06-18 18:57:39 +03:00
Malo Jaffré
a5403d09f5 Add test for #24889
Fixes #24889.
r? @Mark-Simulacrum.
2017-06-18 14:30:33 +02:00
bors
28cc0c5a7b Auto merge of #42593 - ibabushkin:on-demand-external-source, r=eddyb
Implement lazy loading of external crates' sources. Fixes #38875

Fixes #38875. This is a follow-up to #42507. When a (now correctly translated) span from an external crate is referenced in a error, warning or info message, we still don't have the source code being referenced.
Since stuffing the source in the serialized metadata of an rlib is extremely wasteful, the following scheme has been implemented:

* File maps now contain a source hash that gets serialized as well.
* When a span is rendered in a message, the source hash in the corresponding file map(s) is used to try and load the source from the corresponding file on disk. If the file is not found or the hashes don't match, the failed attempt is recorded (and not retried).
* The machinery fetching source lines from file maps is augmented to use the lazily loaded external source as a secondary fallback for file maps belonging to external crates.

This required a small change to the expected stderr of one UI test (it now renders a span, where previously was none).

Further work can be done based on this - some of the machinery previously used to hide external spans is possibly obsolete and the hashing code can be reused in different places as well.

r? @eddyb
2017-06-18 10:41:05 +00:00
Wonwoo Choi
abebe8afde Use T as the subpattern type of Box<T>
The subpattern type of boxes being nil does not make sense because of
box patterns. They should have their inner type as the subpattern type.
2017-06-18 16:07:26 +09:00
Murarth
6484258f17 Reintroduce deprecated collections crate 2017-06-17 13:18:18 -07:00
ubsan
723772fc55 Add _ to the list of keywords
also, make sure the keyword table is correctly spaced
2017-06-17 13:14:26 -07:00
Alex Crichton
1cede109d8 Update cargo/rls submodules and dependencies
Brings in a few regression fixes on the Cargo side, updates the rls to work
with the newer Cargo, and also updates other crates.io dependencies to pull in
various bug fixes and such.
2017-06-17 12:00:49 -07:00
bors
78d8416caf Auto merge of #42649 - estebank:if-cond, r=nikomatsakis
Report error for assignment in `if` condition

For code like `if x = 3 {}`, output:

```
error[E0308]: mismatched types
  --> $DIR/issue-17283.rs:25:8
   |
25 |     if x = x {
   |        ^^^^^
   |        |
   |        help: did you mean to compare equality? `x == x`
   |        expected bool, found ()
   |
   = note: expected type `bool`
              found type `()`
```

Fix #40926.
2017-06-17 16:54:07 +00:00
bors
dfb8c80e11 Auto merge of #42659 - nikomatsakis:issue-42545-type-inference-regression, r=eddyb
Issue 42545 type inference regression

Fix an ICE that results from type inference obligations being dropped on the floor. Specifically, when computing the implied bounds, we would sometimes do normalizations that get stored in the cache, but we would *not* try to solve the resulting obligations. This can sometimes leave type variables uninferred. Occurs only rarely because implied bounds are processed in regionck which happens very late, so usually the cache is populated already from somewhere else.

I think that the *proper* fix here is probably lazy normalization. This fix is intentionally very narrow both because this code is on the chopping block and because this needs a beta backport.

r? @eddyb
cc @arielb1
2017-06-17 11:22:08 +00:00
Alexander Bulaev
ca52d80338 Inline StrSearcher::haystack() 2017-06-17 13:51:36 +03:00
Niko Matsakis
9fec4093df register the obligations from wf::implied_bounds
Fixes #42552.
Fixes #42545.
2017-06-17 05:40:39 -04:00
Niko Matsakis
a65d8d3d71 move implied_bounds into regionck 2017-06-17 05:39:48 -04:00
bors
ff9f2d2ae9 Auto merge of #42712 - frewsxcv:rollup, r=frewsxcv
Rollup of 3 pull requests

- Successful merges: #42660, #42662, #42705
- Failed merges:
2017-06-17 06:47:54 +00:00
Corey Farwell
6062bf7aca Rollup merge of #42705 - est31:master, r=alexcrichton
Introduce tidy lint to check for inconsistent tracking issues

This PR
* Refactors the collect_lib_features function to work in a
      non-checking mode (no bad pointer needed, and list of
      lang features).
* Introduces checking whether unstable/stable tags for a
      given feature have inconsistent tracking issues, as in,
      multiple tracking issues per feature.
* Fixes such inconsistencies throughout the codebase.
2017-06-16 23:10:50 -07:00
Corey Farwell
881ea1ef04 Rollup merge of #42662 - Mark-Simulacrum:doc-fix, r=estebank
Correct note as to location of section.

Fixes #37226.
2017-06-16 23:10:49 -07:00
Corey Farwell
adc5e8f811 Rollup merge of #42660 - steveklabnik:gh42632, r=frewsxcv
update book with redirect fixes

Fixes #42632
2017-06-16 23:10:48 -07:00
bors
08d920cd4d Auto merge of #42650 - nrc:save-slim, r=eddyb
save-analysis: remove a lot of stuff

This commits us to the JSON format and the more general def/ref style of output, rather than also supporting different data formats for different data structures. This does not affect the RLS at all, but will break any clients of the CSV form - AFAIK there are none (beyond a few of my own toy projects) - DXR stopped working long ago.

r? @eddyb
2017-06-17 04:36:02 +00:00
bors
3438c0fa8c Auto merge of #42613 - stepancheg:lossy, r=alexcrichton
Avoid allocations in Display for OsStr and Path

#38879
2017-06-17 02:21:38 +00:00
bors
1169a1fb13 Auto merge of #42604 - stepancheg:timedwait, r=alexcrichton
Fix condvar.wait(distant future) return immediately on OSX

Fixes issue #37440: `pthread_cond_timedwait` on macOS Sierra seems
to overflow `ts_sec` parameter and returns immediately. To work
around this problem patch rounds timeout down to year 3000.

Patch also fixes overflow when converting `u64` to `time_t`.
2017-06-17 00:05:50 +00:00
bors
3cb803460b Auto merge of #42598 - cramertj:track-more-metadata, r=nikomatsakis
Track more crate metadata

Part of https://github.com/rust-lang/rust/issues/41417
r? @nikomatsakis
2017-06-16 21:42:17 +00:00
Esteban Küber
da78b4d88e Review comments
- exhaustive match
- rename method to `check_expr_meets_expectation_or_error`
- formatting
- add `delay_span_bug`
- add test
2017-06-16 12:15:06 -07:00
est31
c6afde6c46 Introduce tidy lint to check for inconsistent tracking issues
This commit
    * Refactors the collect_lib_features function to work in a
      non-checking mode (no bad pointer needed, and list of
      lang features).
    * Introduces checking whether unstable/stable tags for a
      given feature have inconsistent tracking issues.
    * Fixes such inconsistencies throughout the codebase.
2017-06-16 20:40:40 +02:00
bors
fe7227f6c8 Auto merge of #42430 - nagisa:core-float, r=alexcrichton
Re-implement float min/max in rust

This also adds the relevant implementations into libcore.

See #42423
2017-06-16 17:52:11 +00:00
bors
b40be00a0c Auto merge of #42612 - est31:master, r=nagisa
Autogenerate stubs and SUMMARY.md in the unstable book

Removes a speed bump in compiler development by autogenerating stubs for features in the unstable book. See #42454 for discussion.

The PR contains three commits, separated in order to make review easy:

* The first commit converts the tidy tool from a binary crate to a crate that contains both a library and a binary. In the second commit, we'll use the tidy library
* The second and main commit introduces autogeneration of SUMMARY.md and feature stub files
* The third commit turns off the tidy lint that checks for features without a stub, and removes the stub files. A separate commit due to the large number of files touched

Members of the doc team who wish to document some features can either do this (where `$rustsrc` is the root of the rust repo git checkout):

1. cd to `$rustsrc/src/tools/unstable-book-gen` and then do `cargo run $rustsrc/src $rustsrc/src/doc/unstable-book` to put the stubs into the unstable book
2. cd to `$rustsrc` and run `git ls-files --others --exclude-standard` to list the newly added stubs
3. choose a file to edit, then `git add` it and `git commit`
4. afterwards, remove all changes by the tool by doing `git --reset hard` and `git clean -f`

Or they can do this:

1. remove the comment marker in `src/tools/tidy/src/unstable_book.rs` line 122
2. run `./x.py test src/tools/tidy` to list the unstable features which only have stubs
3. revert the change in 1
3. document one of the chosen unstable features

The changes done by this PR also allow for further development:

* tidy obtains information about tracking issues. We can now forbid differing tracking issues between differing `#![unstable]` annotations. I haven't done this but plan to in a future PR
* we now have a general framework for generating stuff for the unstable book at build time. Further changes can autogenerate a list of the API a given library feature exposes.

The old way to simply click through the documentation after it has been uploaded to rust-lang.org works as well.

r? @nagisa

Fixes #42454
2017-06-16 14:41:15 +00:00
Mark Simulacrum
73267374d4 Use custom cargo/rustc paths when parsing flags. 2017-06-16 07:44:09 -06:00
est31
b34ac5dbda Fix cross compilation 2017-06-16 15:07:55 +02:00
bors
ebbc9ea914 Auto merge of #42410 - nagisa:llvmup, r=sanxiyn
Upgrade LLVM

Includes https://github.com/rust-lang/llvm/pull/80
2017-06-16 12:18:45 +00:00