]> git.lizzy.rs Git - rust.git/log
rust.git
7 years agoAuto merge of #42664 - alexcrichton:moar-crates, r=eddyb
bors [Wed, 21 Jun 2017 06:27:36 +0000 (06:27 +0000)]
Auto merge of #42664 - alexcrichton:moar-crates, r=eddyb

Remove in-tree flate/getopts crates

Remove `src/libflate` in favor of `flate2` on crates.io and `src/libgetopts` in favor of `getopts` on crates.io. The replacements have slightly different APIs and the usage in the compiler has been updated to reflect this.

This uncovered an unfortunate limitation of the compiler today to deal with linking everything correctly, and the workaround can be found documented in `src/librustc/Cargo.toml`.

7 years agoAuto merge of #42002 - sfackler:trusted-read, r=alexcrichton
bors [Wed, 21 Jun 2017 04:14:46 +0000 (04:14 +0000)]
Auto merge of #42002 - sfackler:trusted-read, r=alexcrichton

Add a Read::initializer method

This is an API that allows types to indicate that they can be passed
buffers of uninitialized memory which can improve performance.

cc @SimonSapin

r? @alexcrichton

7 years agoAdd `Read::initializer`.
Steven Fackler [Mon, 15 May 2017 01:29:18 +0000 (21:29 -0400)]
Add `Read::initializer`.

This is an API that allows types to indicate that they can be passed
buffers of uninitialized memory which can improve performance.

7 years agoAuto merge of #42076 - alex-ozdemir:master, r=nrc
bors [Wed, 21 Jun 2017 00:06:02 +0000 (00:06 +0000)]
Auto merge of #42076 - alex-ozdemir:master, r=nrc

Clearer Error Message for Duplicate Definition

Clearer use of the error message and span labels to communicate duplication definitions/imports.

fixes #42061

7 years agoAuto merge of #42780 - frewsxcv:rollup, r=frewsxcv
bors [Tue, 20 Jun 2017 21:08:28 +0000 (21:08 +0000)]
Auto merge of #42780 - frewsxcv:rollup, r=frewsxcv

Rollup of 6 pull requests

- Successful merges: #42271, #42717, #42728, #42749, #42756, #42772
- Failed merges:

7 years agoRollup merge of #42772 - MaloJaffre:libc, r=alexcrichton
Corey Farwell [Tue, 20 Jun 2017 20:28:32 +0000 (16:28 -0400)]
Rollup merge of #42772 - MaloJaffre:libc, r=alexcrichton

Update libc to 0.2.24

Fixes  #42427.

7 years agoRollup merge of #42756 - sanxiyn:name-for-must-use, r=estebank
Corey Farwell [Tue, 20 Jun 2017 20:28:31 +0000 (16:28 -0400)]
Rollup merge of #42756 - sanxiyn:name-for-must-use, r=estebank

Show type name for unused_must_use lint

Fix #42688.

7 years agoRollup merge of #42749 - frewsxcv:frewsxcxv/doc-examples, r=QuietMisdreavus
Corey Farwell [Tue, 20 Jun 2017 20:28:30 +0000 (16:28 -0400)]
Rollup merge of #42749 - frewsxcv:frewsxcxv/doc-examples, r=QuietMisdreavus

Additions/improvements for doc examples.

None

7 years agoRollup merge of #42728 - jseyfried:fix_resolve_perf, r=nrc
Corey Farwell [Tue, 20 Jun 2017 20:28:27 +0000 (16:28 -0400)]
Rollup merge of #42728 - jseyfried:fix_resolve_perf, r=nrc

resolve: fix perf bug

Fixes #42544.
r? @nrc

7 years agoRollup merge of #42717 - ollie27:into_to_from2, r=sfackler
Corey Farwell [Tue, 20 Jun 2017 20:28:26 +0000 (16:28 -0400)]
Rollup merge of #42717 - ollie27:into_to_from2, r=sfackler

Convert `Into<Box<[T]>> for Vec<T>` into `From<Vec<T>> for Box<[T]>`

As the `collections` crate has been merged into `alloc` in #42648 this impl is now possible. This is the final part of #42129 missing from #42227.

7 years agoRollup merge of #42271 - tinaun:charfromstr, r=alexcrichton
Corey Farwell [Tue, 20 Jun 2017 20:28:25 +0000 (16:28 -0400)]
Rollup merge of #42271 - tinaun:charfromstr, r=alexcrichton

add `FromStr` Impl for `char`

fixes #24939.

is it possible to use pub(restricted) instead of using a stability attribute for the internal error representation? is it needed at all?

7 years agoSwitch to the crates.io `getopts` crate
Alex Crichton [Thu, 8 Jun 2017 21:20:55 +0000 (14:20 -0700)]
Switch to the crates.io `getopts` crate

This commit deletes the in-tree `getopts` crate in favor of the crates.io-based
`getopts` crate. The main difference here is with a new builder-style API, but
otherwise everything else remains relatively standard.

7 years agoAdd a couple doc additional examples for `env::join_paths`.
Corey Farwell [Mon, 19 Jun 2017 02:21:17 +0000 (19:21 -0700)]
Add a couple doc additional examples for `env::join_paths`.

7 years agoAdd doc example for `CString::from_raw`.
Corey Farwell [Mon, 19 Jun 2017 01:22:54 +0000 (18:22 -0700)]
Add doc example for `CString::from_raw`.

7 years agoAdd doc example for `FromBytesWithNulError`.
Corey Farwell [Mon, 19 Jun 2017 00:44:41 +0000 (17:44 -0700)]
Add doc example for `FromBytesWithNulError`.

7 years agoAdd doc example for `NulError`.
Corey Farwell [Mon, 19 Jun 2017 00:31:06 +0000 (17:31 -0700)]
Add doc example for `NulError`.

7 years agoAdd doc example for `CStr::to_str`.
Corey Farwell [Sun, 18 Jun 2017 23:12:39 +0000 (16:12 -0700)]
Add doc example for `CStr::to_str`.

7 years agoAdd doc example for `CString::as_c_str`.
Corey Farwell [Sun, 18 Jun 2017 23:05:00 +0000 (16:05 -0700)]
Add doc example for `CString::as_c_str`.

7 years agoAdd doc example for `Box<CStr>::into_c_string`.
Corey Farwell [Sun, 18 Jun 2017 22:48:00 +0000 (15:48 -0700)]
Add doc example for `Box<CStr>::into_c_string`.

7 years agoAdd doc example for `CString::into_boxed_c_str`.
Corey Farwell [Sun, 18 Jun 2017 22:45:00 +0000 (15:45 -0700)]
Add doc example for `CString::into_boxed_c_str`.

7 years agoAdd doc example for `CStr::to_string_lossy`.
Corey Farwell [Sun, 18 Jun 2017 21:46:19 +0000 (14:46 -0700)]
Add doc example for `CStr::to_string_lossy`.

7 years agoAdd error scenario doc examples for `CStr::from_bytes_with_nul`.
Corey Farwell [Sun, 18 Jun 2017 21:28:10 +0000 (14:28 -0700)]
Add error scenario doc examples for `CStr::from_bytes_with_nul`.

7 years agoAdd doc example for `CStr::to_bytes_with_nul`.
Corey Farwell [Sun, 18 Jun 2017 21:12:17 +0000 (14:12 -0700)]
Add doc example for `CStr::to_bytes_with_nul`.

7 years agoAdd doc example for `CStr::to_bytes`.
Corey Farwell [Sun, 18 Jun 2017 21:11:34 +0000 (14:11 -0700)]
Add doc example for `CStr::to_bytes`.

7 years agoRemove the in-tree `flate` crate
Alex Crichton [Thu, 8 Jun 2017 21:10:36 +0000 (14:10 -0700)]
Remove the in-tree `flate` crate

A long time coming this commit removes the `flate` crate in favor of the
`flate2` crate on crates.io. The functionality in `flate2` originally flowered
out of `flate` itself and is additionally the namesake for the crate. This will
leave a gap in the naming (there's not `flate` crate), which will likely cause a
particle collapse of some form somewhere.

7 years agoAuto merge of #42716 - alexbool:cstr-inlines, r=BurntSushi
bors [Tue, 20 Jun 2017 13:25:21 +0000 (13:25 +0000)]
Auto merge of #42716 - alexbool:cstr-inlines, r=BurntSushi

Mark smaller CStr and CString functions as #[inline]

7 years agoUpdate libc to 0.2.24
Malo Jaffré [Tue, 20 Jun 2017 11:42:52 +0000 (13:42 +0200)]
Update libc to 0.2.24

Fixes  #42427.

7 years agoAuto merge of #42571 - tlively:wasm-dev, r=alexcrichton
bors [Tue, 20 Jun 2017 09:44:40 +0000 (09:44 +0000)]
Auto merge of #42571 - tlively:wasm-dev, r=alexcrichton

Enable wasm LLVM backend

Enables compilation to WebAssembly with the LLVM backend using the target triple "wasm32-unknown-unknown". This is the beginning of my work on #38804.

**edit:** The new new target is now wasm32-experimental-emscripten instead of wasm32-unknown-unknown.

7 years agoadded `FromStr` Impl for `char`
tinaun [Sat, 27 May 2017 22:12:16 +0000 (18:12 -0400)]
added `FromStr` Impl for `char`

7 years agoMark smaller CStr and CString functions as #[inline]
Alexander Bulaev [Sat, 17 Jun 2017 12:50:55 +0000 (15:50 +0300)]
Mark smaller CStr and CString functions as #[inline]

7 years agoAuto merge of #42495 - alexcrichton:new-stage0, r=Mark-Simulacrum
bors [Tue, 20 Jun 2017 07:22:38 +0000 (07:22 +0000)]
Auto merge of #42495 - alexcrichton:new-stage0, r=Mark-Simulacrum

Bump to 1.20.0 and update stage0 compiler

Betas are hot off the bots, let's get them while they're fresh.

7 years agoBump version and stage0 compiler
Alex Crichton [Wed, 7 Jun 2017 02:32:43 +0000 (19:32 -0700)]
Bump version and stage0 compiler

7 years agoAuto merge of #42313 - pnkfelix:allocator-integration, r=alexcrichton
bors [Tue, 20 Jun 2017 05:02:19 +0000 (05:02 +0000)]
Auto merge of #42313 - pnkfelix:allocator-integration, r=alexcrichton

Allocator integration

Lets start getting some feedback on `trait Alloc`.

Here is:
 *  the `trait Alloc` itself,
 * the `struct Layout` and `enum AllocErr` that its API relies on
 * a `struct HeapAlloc` that exposes the system allocator as an instance of `Alloc`
 * an integration of `Alloc` with `RawVec`
 * ~~an integration of `Alloc` with `Vec`~~

 TODO
 * [x] split `fn realloc_in_place` into `grow` and `shrink` variants
 * [x] add `# Unsafety` and `# Errors` sections to documentation for all relevant methods
 * [x] remove `Vec` integration with `Allocator`
 * [x] add `allocate_zeroed` impl to `HeapAllocator`
 * [x] remove typedefs e.g. `type Size = usize;`
 * [x] impl `trait Error` for all error types in PR
 * [x] make `Layout::from_size_align` public
 * [x] clarify docs of `fn padding_needed_for`.
 * [x] revise `Layout` constructors to ensure that [size+align combination is valid](https://github.com/rust-lang/rust/pull/42313#issuecomment-306845446)
 * [x] resolve mismatch re requirements of align on dealloc. See [comment](https://github.com/rust-lang/rust/pull/42313#issuecomment-306202489).

7 years agoAuto merge of #42754 - alexcrichton:update-cargo, r=jonathandturner
bors [Tue, 20 Jun 2017 02:34:41 +0000 (02:34 +0000)]
Auto merge of #42754 - alexcrichton:update-cargo, r=jonathandturner

Update `wincolor` dep for Cargo

Closes rust-lang/cargo#4189

7 years agoIgnore a spuriously failing test on asmjs
Alex Crichton [Mon, 19 Jun 2017 19:40:51 +0000 (12:40 -0700)]
Ignore a spuriously failing test on asmjs

Other tests are already ignored for missing `rust_begin_unwind`, let's add
another.

7 years agoShow type name for unused_must_use lint
Seo Sanghyeon [Mon, 19 Jun 2017 19:36:56 +0000 (04:36 +0900)]
Show type name for unused_must_use lint

7 years agoUpdate `wincolor` dep for Cargo
Alex Crichton [Mon, 19 Jun 2017 17:44:12 +0000 (10:44 -0700)]
Update `wincolor` dep for Cargo

Closes rust-lang/cargo#4189

7 years agoMinor Allocator doc fix
Alex Crichton [Mon, 19 Jun 2017 14:51:00 +0000 (07:51 -0700)]
Minor Allocator doc fix

7 years agoIgnore test for not-closed issue
Alex Crichton [Mon, 19 Jun 2017 14:49:50 +0000 (07:49 -0700)]
Ignore test for not-closed issue

Confirmed on IRC that the bug isn't fully fixed, and the "resurgence" here isn't
the fault of this PR.

7 years agoAuto merge of #39409 - pnkfelix:mir-borrowck2, r=nikomatsakis
bors [Mon, 19 Jun 2017 13:01:27 +0000 (13:01 +0000)]
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.

7 years agoAuto merge of #42737 - fhahn:rust-log-crash, r=michaelwoerister
bors [Mon, 19 Jun 2017 08:45:00 +0000 (08:45 +0000)]
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?

7 years agoresolve: fix perf bug.
Jeffrey Seyfried [Sat, 17 Jun 2017 10:28:31 +0000 (10:28 +0000)]
resolve: fix perf bug.

7 years agoAuto merge of #42722 - est31:master, r=Mark-Simulacrum
bors [Mon, 19 Jun 2017 03:42:27 +0000 (03:42 +0000)]
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.

7 years agoAuto merge of #42740 - arielb1:bad-arm-2, r=alexcrichton
bors [Mon, 19 Jun 2017 01:31:31 +0000 (01:31 +0000)]
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.

7 years agoAuto merge of #42735 - arielb1:generic-closure-fn, r=eddyb
bors [Sun, 18 Jun 2017 23:22:35 +0000 (23:22 +0000)]
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.

7 years agoBackport fixes to LLVM 4.0 ARM codegen bugs
Ariel Ben-Yehuda [Sun, 18 Jun 2017 16:01:34 +0000 (19:01 +0300)]
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

7 years agoSort entries of SUMMARY.md alphabetically
est31 [Sat, 17 Jun 2017 19:54:09 +0000 (21:54 +0200)]
Sort entries of SUMMARY.md alphabetically

7 years agoRemove SUMMARY.md of the unstable book as its autogenerated
est31 [Sat, 17 Jun 2017 19:40:22 +0000 (21:40 +0200)]
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.

7 years agoAuto merge of #42676 - alexcrichton:update-cargo, r=Mark-Simulacrum
bors [Sun, 18 Jun 2017 21:10:33 +0000 (21:10 +0000)]
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.

7 years agoAuto merge of #42738 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
bors [Sun, 18 Jun 2017 17:29:58 +0000 (17:29 +0000)]
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

7 years agoRollup merge of #42734 - MaloJaffre:tests, r=Mark-Simulacrum
Mark Simulacrum [Sun, 18 Jun 2017 16:34:14 +0000 (10:34 -0600)]
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.

7 years agoRollup merge of #42731 - MaloJaffre:issue-24889, r=Mark-Simulacrum
Mark Simulacrum [Sun, 18 Jun 2017 16:34:13 +0000 (10:34 -0600)]
Rollup merge of #42731 - MaloJaffre:issue-24889, r=Mark-Simulacrum

Add test for #24889

Fixes #24889.
r? @Mark-Simulacrum (Thanks for the instructions).

7 years agoRollup merge of #42730 - VBChunguk:boxed-wild-pattern, r=eddyb
Mark Simulacrum [Sun, 18 Jun 2017 16:34:12 +0000 (10:34 -0600)]
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.

7 years agoRollup merge of #42723 - ubsan:master, r=QuietMisdreavus
Mark Simulacrum [Sun, 18 Jun 2017 16:34:11 +0000 (10:34 -0600)]
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.

7 years agoRollup merge of #42720 - murarth:deprecated-collections, r=alexcrichton
Mark Simulacrum [Sun, 18 Jun 2017 16:34:10 +0000 (10:34 -0600)]
Rollup merge of #42720 - murarth:deprecated-collections, r=alexcrichton

Reintroduce deprecated `collections` crate

7 years agoRollup merge of #42714 - alexbool:master, r=alexcrichton
Mark Simulacrum [Sun, 18 Jun 2017 16:34:09 +0000 (10:34 -0600)]
Rollup merge of #42714 - alexbool:master, r=alexcrichton

Inline StrSearcher::haystack()

7 years agoRollup merge of #42695 - Mark-Simulacrum:fix-verbose, r=alexcrichton
Mark Simulacrum [Sun, 18 Jun 2017 16:34:08 +0000 (10:34 -0600)]
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

7 years agoAdd tests for various issues
Malo Jaffré [Sun, 18 Jun 2017 16:18:08 +0000 (18:18 +0200)]
Add tests for various issues

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

r? @Mark-Simulacrum.

7 years agorustc: Check if def_path_hash_to_def_id is populated before accessing it.
Florian Hahn [Sun, 18 Jun 2017 15:58:54 +0000 (16:58 +0100)]
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?

7 years agocollector: apply param substs to closures cast to fn items
Ariel Ben-Yehuda [Sun, 18 Jun 2017 15:57:39 +0000 (18:57 +0300)]
collector: apply param substs to closures cast to fn items

Fixes #42718.

7 years agoAdd test for #24889
Malo Jaffré [Sun, 18 Jun 2017 12:30:33 +0000 (14:30 +0200)]
Add test for #24889

Fixes #24889.
r? @Mark-Simulacrum.

7 years agoAuto merge of #42593 - ibabushkin:on-demand-external-source, r=eddyb
bors [Sun, 18 Jun 2017 10:41:05 +0000 (10:41 +0000)]
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

7 years agoUse T as the subpattern type of Box<T>
Wonwoo Choi [Sun, 18 Jun 2017 07:07:26 +0000 (16:07 +0900)]
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.

7 years agoReintroduce deprecated `collections` crate
Murarth [Sat, 17 Jun 2017 19:01:18 +0000 (12:01 -0700)]
Reintroduce deprecated `collections` crate

7 years agoAdd `_` to the list of keywords
ubsan [Sat, 17 Jun 2017 20:14:26 +0000 (13:14 -0700)]
Add `_` to the list of keywords

also, make sure the keyword table is correctly spaced

7 years agoConvert `Into<Box<[T]>> for Vec<T>` into `From<Vec<T>> for Box<[T]>`
Oliver Middleton [Sat, 17 Jun 2017 15:56:05 +0000 (16:56 +0100)]
Convert `Into<Box<[T]>> for Vec<T>` into `From<Vec<T>> for Box<[T]>`

7 years agoUpdate cargo/rls submodules and dependencies
Alex Crichton [Thu, 15 Jun 2017 02:33:06 +0000 (19:33 -0700)]
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.

7 years agoCorrect location of unstable book docs
Alex Crichton [Sat, 17 Jun 2017 18:48:01 +0000 (11:48 -0700)]
Correct location of unstable book docs

7 years agoAuto merge of #42649 - estebank:if-cond, r=nikomatsakis
bors [Sat, 17 Jun 2017 16:54:07 +0000 (16:54 +0000)]
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.

7 years agoAuto merge of #42659 - nikomatsakis:issue-42545-type-inference-regression, r=eddyb
bors [Sat, 17 Jun 2017 11:22:08 +0000 (11:22 +0000)]
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

7 years agoInline StrSearcher::haystack()
Alexander Bulaev [Sat, 17 Jun 2017 10:51:36 +0000 (13:51 +0300)]
Inline StrSearcher::haystack()

7 years agoregister the obligations from `wf::implied_bounds`
Niko Matsakis [Wed, 14 Jun 2017 18:25:41 +0000 (14:25 -0400)]
register the obligations from `wf::implied_bounds`

Fixes #42552.
Fixes #42545.

7 years agomove `implied_bounds` into regionck
Niko Matsakis [Wed, 14 Jun 2017 16:46:14 +0000 (12:46 -0400)]
move `implied_bounds` into regionck

7 years agoAuto merge of #42712 - frewsxcv:rollup, r=frewsxcv
bors [Sat, 17 Jun 2017 06:47:54 +0000 (06:47 +0000)]
Auto merge of #42712 - frewsxcv:rollup, r=frewsxcv

Rollup of 3 pull requests

- Successful merges: #42660, #42662, #42705
- Failed merges:

7 years agoRollup merge of #42705 - est31:master, r=alexcrichton
Corey Farwell [Sat, 17 Jun 2017 06:10:50 +0000 (23:10 -0700)]
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.

7 years agoRollup merge of #42662 - Mark-Simulacrum:doc-fix, r=estebank
Corey Farwell [Sat, 17 Jun 2017 06:10:49 +0000 (23:10 -0700)]
Rollup merge of #42662 - Mark-Simulacrum:doc-fix, r=estebank

Correct note as to location of section.

Fixes #37226.

7 years agoRollup merge of #42660 - steveklabnik:gh42632, r=frewsxcv
Corey Farwell [Sat, 17 Jun 2017 06:10:48 +0000 (23:10 -0700)]
Rollup merge of #42660 - steveklabnik:gh42632, r=frewsxcv

update book with redirect fixes

Fixes #42632

7 years agoAuto merge of #42650 - nrc:save-slim, r=eddyb
bors [Sat, 17 Jun 2017 04:36:02 +0000 (04:36 +0000)]
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

7 years agoAuto merge of #42613 - stepancheg:lossy, r=alexcrichton
bors [Sat, 17 Jun 2017 02:21:38 +0000 (02:21 +0000)]
Auto merge of #42613 - stepancheg:lossy, r=alexcrichton

Avoid allocations in Display for OsStr and Path

#38879

7 years agoAuto merge of #42604 - stepancheg:timedwait, r=alexcrichton
bors [Sat, 17 Jun 2017 00:05:50 +0000 (00:05 +0000)]
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`.

7 years agoAdd target to use LLVM wasm backend
Thomas Lively [Fri, 16 Jun 2017 22:43:43 +0000 (15:43 -0700)]
Add target to use LLVM wasm backend

The new target is wasm32-experimental-emscripten. Adds a new
configuration option to opt in to building experimental LLVM backends
such as the WebAssembly backend. The target name was chosen to be
similar to the existing wasm32-unknown-emscripten target so that the
build and tests would work with minimal other code changes. When/if the
new target replaces the old target, simply renaming it should just work.

7 years agoAuto merge of #42598 - cramertj:track-more-metadata, r=nikomatsakis
bors [Fri, 16 Jun 2017 21:42:17 +0000 (21:42 +0000)]
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

7 years agoReview comments
Esteban Küber [Fri, 16 Jun 2017 17:34:17 +0000 (10:34 -0700)]
Review comments

- exhaustive match
- rename method to `check_expr_meets_expectation_or_error`
- formatting
- add `delay_span_bug`
- add test

7 years agoIntroduce tidy lint to check for inconsistent tracking issues
est31 [Fri, 16 Jun 2017 17:58:37 +0000 (19:58 +0200)]
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.

7 years agoAuto merge of #42430 - nagisa:core-float, r=alexcrichton
bors [Fri, 16 Jun 2017 17:52:11 +0000 (17:52 +0000)]
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

7 years agoAuto merge of #42612 - est31:master, r=nagisa
bors [Fri, 16 Jun 2017 14:41:15 +0000 (14:41 +0000)]
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

7 years agoUse custom cargo/rustc paths when parsing flags.
Mark Simulacrum [Fri, 16 Jun 2017 13:44:09 +0000 (07:44 -0600)]
Use custom cargo/rustc paths when parsing flags.

7 years agoFix cross compilation
est31 [Wed, 14 Jun 2017 16:49:41 +0000 (18:49 +0200)]
Fix cross compilation

7 years agoAuto merge of #42410 - nagisa:llvmup, r=sanxiyn
bors [Fri, 16 Jun 2017 12:18:45 +0000 (12:18 +0000)]
Auto merge of #42410 - nagisa:llvmup, r=sanxiyn

Upgrade LLVM

Includes https://github.com/rust-lang/llvm/pull/80

7 years agoAuto merge of #41840 - arielb1:deduplicate-selection-errors, r=nikomatsakis
bors [Fri, 16 Jun 2017 10:07:58 +0000 (10:07 +0000)]
Auto merge of #41840 - arielb1:deduplicate-selection-errors, r=nikomatsakis

Suppress trait errors that are implied by other errors

this is currently a hack and should be cleaned up somewhat. Posting this to get some feedback.

r? @nikomatsakis
cc @estebank

7 years agoAuto merge of #42631 - malbarbo:wasm32, r=alexcrichton
bors [Fri, 16 Jun 2017 07:54:59 +0000 (07:54 +0000)]
Auto merge of #42631 - malbarbo:wasm32, r=alexcrichton

Add a travis builder for wasm32-unknown-emscripten

This commits add an entry to travis matrix that will execute wasm32-unknown-emscripten tests suites.

- Emscripten for asmjs was updated to sdk-1.37.13-64bit
- The tests are run with node 8.0.0 (it can execute wasm)
- A wrapper script is used to run each test from the directory where it is (workaround for https://github.com/kripken/emscripten/issues/4542)
- Some tests are ignore, see #42629 and #42630

7 years agoAuto merge of #42690 - frewsxcv:rollup, r=frewsxcv
bors [Fri, 16 Jun 2017 05:43:38 +0000 (05:43 +0000)]
Auto merge of #42690 - frewsxcv:rollup, r=frewsxcv

Rollup of 5 pull requests

- Successful merges: #42616, #42651, #42654, #42656, #42685
- Failed merges:

7 years agoDivide up metadata into separate DepNodes
Taylor Cramer [Fri, 16 Jun 2017 05:25:41 +0000 (22:25 -0700)]
Divide up metadata into separate DepNodes

7 years agoRollup merge of #42685 - Havvy:doc-remove-sometimes, r=steveklabnik
Corey Farwell [Fri, 16 Jun 2017 04:32:46 +0000 (00:32 -0400)]
Rollup merge of #42685 - Havvy:doc-remove-sometimes, r=steveklabnik

Remove sometimes in std::io::Read doc

We use it immediately in the next sentence, and the word is filler.

A different conversation to make is whether we want to call them Readers in the documentation at all. And whether it's actually called "Readers" elsewhere.

7 years agoRollup merge of #42656 - VBChunguk:struct-field-attributes, r=nikomatsakis
Corey Farwell [Fri, 16 Jun 2017 04:32:45 +0000 (00:32 -0400)]
Rollup merge of #42656 - VBChunguk:struct-field-attributes, r=nikomatsakis

Remove struct_field_attributes feature gate

Part of #41681. ~This PR only removes the feature gate; this *does not* update any documentations.~ This PR removes the feature gate and the corresponding chapter of the Unstable Book.

I'm not very sure about the changes I made though... Just followed the stabilization guideline.

r? @nikomatsakis

7 years agoRollup merge of #42654 - GuillaumeGomez:error-codes-new, r=QuietMisdreavus
Corey Farwell [Fri, 16 Jun 2017 04:32:44 +0000 (00:32 -0400)]
Rollup merge of #42654 - GuillaumeGomez:error-codes-new, r=QuietMisdreavus

Error codes new

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus

7 years agoRollup merge of #42651 - infinity0:master, r=alexcrichton
Corey Farwell [Fri, 16 Jun 2017 04:32:43 +0000 (00:32 -0400)]
Rollup merge of #42651 - infinity0:master, r=alexcrichton

Only run check-linkchecker when actually building docs

Otherwise the build fails, when running tests but not building docs, e.g.:
https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-3&stamp=1497403375&raw=0

7 years agoRollup merge of #42616 - estebank:span-fix, r=nikomatsakis
Corey Farwell [Fri, 16 Jun 2017 04:32:42 +0000 (00:32 -0400)]
Rollup merge of #42616 - estebank:span-fix, r=nikomatsakis

Position span label correctly when it isn't last

Fix #42595.

Before:

```
15 |     map.entry("e").or_insert(0) += 1;
   |     ---------------------------^^^^^ot use `+=` on type `&mut {integer}`
```

After:

```
15 |     map.entry("e").or_insert(0) += 1;
   |     ---------------------------^^^^^
   |     |
   |     cannot use `+=` on type `&mut {integer}`
```

7 years agoAuto merge of #42578 - estebank:recover-binop, r=nikomatsakis
bors [Fri, 16 Jun 2017 03:31:09 +0000 (03:31 +0000)]
Auto merge of #42578 - estebank:recover-binop, r=nikomatsakis

Learn to parse `a as usize < b`

Parsing `a as usize > b` always works, but `a as usize < b` was a
parsing error because the parser would think the `<` started a generic
type argument for `usize`. The parser now attempts to parse as before,
and if a DiagnosticError is returned, try to parse again as a type with
no generic arguments. If this fails, return the original
`DiagnosticError`.

Fix #22644.

7 years agoRemove intermediate forms and some other refactoring
Nick Cameron [Thu, 8 Jun 2017 02:45:15 +0000 (14:45 +1200)]
Remove intermediate forms and some other refactoring