Commit Graph

55981 Commits

Author SHA1 Message Date
Steven Allen
de91872a33 Add a FusedIterator trait.
This trait can be used to avoid the overhead of a fuse wrapper when an iterator
is already well-behaved.

Conforming to: RFC 1581
Closes: #35602
2016-08-18 12:16:29 -04:00
bors
43c090ed69 Auto merge of #35732 - jonathandturner:region_error_labels, r=nikomatsakis
Move 'doesn't live long enough' errors to labels

This patch moves the "doesn't live long enough" region-style errors to instead use labels.

An example follows.

Before:

```
error: `x` does not live long enough
  --> src/test/compile-fail/send-is-not-static-ensures-scoping.rs:26:18
   |
26 |         let y = &x;
   |                  ^
   |
note: reference must be valid for the block at 23:10...
  --> src/test/compile-fail/send-is-not-static-ensures-scoping.rs:23:11
   |
23 | fn main() {
   |           ^
note: ...but borrowed value is only valid for the block suffix following statement 0 at 25:18
  --> src/test/compile-fail/send-is-not-static-ensures-scoping.rs:25:19
   |
25 |         let x = 1;
   |                   ^
```

After:

```
error: `x` does not live long enough
  --> src/test/compile-fail/send-is-not-static-ensures-scoping.rs:26:18
   |
26 |         let y = &x;
   |                  ^ does not live long enough
...
32 |     };
   |     - borrowed value only valid until here
...
35 | }
   | - borrowed value must be valid until here
```

r? @nikomatsakis
2016-08-18 05:39:11 -07:00
bors
9d6520f97b Auto merge of #35769 - eddyb:rollup, r=eddyb
Rollup of 12 pull requests

- Successful merges: #35346, #35734, #35739, #35740, #35742, #35744, #35749, #35750, #35751, #35756, #35766, #35768
- Failed merges:
2016-08-18 00:15:11 -07:00
Eduard-Mihai Burtescu
d69cd7207b Rollup merge of #35770 - crypto-universe:E0221, r=jonathandturner
Updated test for E0221

As a part of issue #35233
?r @GuillaumeGomez
2016-08-18 06:12:23 +03:00
Eduard-Mihai Burtescu
d36b296cb6 Rollup merge of #35768 - GuillaumeGomez:err_codes, r=jonathandturner
Add new error code tests

r? @jonathandturner
2016-08-18 06:12:23 +03:00
Eduard-Mihai Burtescu
8ccc11b31b Rollup merge of #35765 - KiChjang:e0053-bonus, r=jonathandturner
Additional span info for E0053

Part of #35233.
Fixes #35212.

r? @jonathandturner
2016-08-18 06:12:23 +03:00
Eduard-Mihai Burtescu
c3601d40ec Rollup merge of #35756 - crypto-universe:E0407, r=GuillaumeGomez
New output for E0407

Issue #35697 as a part of #35233.
r? @GuillaumeGomez
2016-08-18 06:12:23 +03:00
Eduard-Mihai Burtescu
64c1aef5c8 Rollup merge of #35751 - nagisa:mir-scope-fix-again, r=eddyb
Fix the invalidation of the MIR early exit cache

~~The #34307 introduced a cache for early exits in order to help with O(n*m) explosion of cleanup blocks but the cache is invalidated incorrectly and I can’t seem to figure out why (caching is hard!)~~

~~Remove the cache for now to fix the immediate correctness issue and worry about the performance later.~~

Cache invalidation got fixed.

Fixes #35737

r? @nikomatsakis
2016-08-18 06:12:23 +03:00
Eduard-Mihai Burtescu
1e13de810f Rollup merge of #35750 - SimonSapin:help, r=alexcrichton
Add 'make help' for rustbuild

It is still advertised by the configure script.
2016-08-18 06:12:22 +03:00
Eduard-Mihai Burtescu
f1861b814a Rollup merge of #35749 - GuillaumeGomez:raw_field, r=jonathandturner
Fixes issue #11004

Fixes #11004.

r? @jonathandturner
2016-08-18 06:12:22 +03:00
Eduard-Mihai Burtescu
394c4497de Rollup merge of #35744 - DevShep:ds/update_E0009, r=jonathandturner
Update E0009 to new format

Part of #35233
Fixes #35193

r? @jonathandturner
2016-08-18 06:12:22 +03:00
Eduard-Mihai Burtescu
7a274441ae Rollup merge of #35742 - spladug:readme-cmake-version, r=nikomatsakis
Update minimum CMake version in README

The minimum got bumped in the LLVM upgrade of #34743.
2016-08-18 06:12:22 +03:00
Eduard-Mihai Burtescu
99e5efdbe6 Rollup merge of #35740 - eddyb:llvm-prl-fix, r=alexcrichton
Update LLVM to include 4 backported commits by @majnemer.

Partial fix for rust-lang/rust#35662, should help at least loops on small arrays.

Nominated for backporting into the new beta (not the one that's being released as stable this week).

r? @alexcrichton
2016-08-18 06:12:21 +03:00
Eduard-Mihai Burtescu
71759ec52c Rollup merge of #35739 - circuitfox:E0403-update-error-format, r=jonathandturner
E0403 update error format

Fixes #35696

Part of #35233

r? @jonathandturner

Also did the bonus for this one.
2016-08-18 06:12:21 +03:00
Eduard-Mihai Burtescu
5e9a5b3bd7 Rollup merge of #35734 - japaric:mips-uclibc, r=alexcrichton
add mips-uclibc targets

These targets cover OpenWRT 15.05 devices, which use the soft float ABI
and the uclibc library. None of the other built-in mips targets covered
those devices (mips-gnu is hard float and glibc-based, mips-musl is
musl-based).

With this commit one can now build std for these devices using these
commands:

```
$ configure --enable-rustbuild --target=mips-unknown-linux-uclibc
$ make
```

cc #35673

---

r? @alexcrichton
cc @felixalias This is the target the rust-tessel project should be using.
Note that the libc crate doesn't support the uclibc library and will have to be updated. We are lucky that uclibc and glibc are somewhat similar and one can build std and even run the libc-test test suite with the current, unmodified libc. About that last part, I tried to run the libc-test and got a bunch of compile errors. I don't intend to fix them but I'll post some instruction about how to run libc-test in the rust-lang/libc issue tracker.
2016-08-18 06:12:21 +03:00
Eduard-Mihai Burtescu
612506bfff Rollup merge of #35346 - DarkEld3r:e0093-formatting, r=jonathandturner
Update compiler error 0093 to use new error format

Addresses #35230, Part of the #35233 meta bug

r? @jonathandturner
2016-08-18 06:12:21 +03:00
bors
169b6128fc Auto merge of #35702 - jonathandturner:add_backtrace_labels, r=nikomatsakis
Replace macro backtraces with labeled local uses

This PR (which builds on https://github.com/rust-lang/rust/pull/35688) follows from the conversations on how best to [handle the macro backtraces](https://internals.rust-lang.org/t/improving-macro-errors/3809).  The feeling there was that there were two different "groups" of users.

The first group, the macro users, rarely (and likely never) want to see the macro backtrace.  This is often more confusing to users as it will be talking about code they didn't write.

The second group, the macro writers, are trying to debug a macro.  They'll want to see something of the backtrace so that they can see where it's going wrong and what the steps were to get there.

For the first group, it seems clear that we don't want to show *any* macro backtrace.  For the second group, we want to show enough to help the macro writer.

This PR uses a heuristic.  It will only show any backtrace steps if they are in the same crate that is being compiled.  This keeps errors in foreign crates from showing to users that didn't need them.

Additionally, in asking around I repeated heard that the middle steps of the backtrace are rarely, if ever, used in practice.  This PR takes and applies this knowledge.  Now, instead of a full backtrace, the user is given the error underline inside of a local macro as well as the use site as a secondary label.  This effectively means seeing the root of the error and the top of the backtrace, eliding the middle steps.

Rather than being the "perfect solution", this PR opts to take an incremental step towards a better experience.  Likely it would help to have additional macro debugging tools, as they could be much more verbose than we'd likely want to use in the error messages themselves.

Some examples follow.

**Example 1**

Before:

<img width="1275" alt="screen shot 2016-08-15 at 4 13 18 pm" src="https://cloud.githubusercontent.com/assets/547158/17682828/3948cea2-6303-11e6-93b4-b567e9d62848.png">

After:

<img width="596" alt="screen shot 2016-08-15 at 4 13 03 pm" src="https://cloud.githubusercontent.com/assets/547158/17682832/3d670d8c-6303-11e6-9bdc-f30a30bf11ac.png">

**Example 2**

Before:

<img width="918" alt="screen shot 2016-08-15 at 4 14 35 pm" src="https://cloud.githubusercontent.com/assets/547158/17682870/722225de-6303-11e6-9175-336a3f7ce308.png">

After:

<img width="483" alt="screen shot 2016-08-15 at 4 15 01 pm" src="https://cloud.githubusercontent.com/assets/547158/17682872/7582cf6c-6303-11e6-9235-f67960f6bd4c.png">
2016-08-17 19:57:22 -07:00
bors
aef6971ca9 Auto merge of #35736 - brson:relnotes, r=steveklabnik
1.11 changelog

[Rendered](9863afe029/RELEASES.md)

r? @steveklabnik

It's too late to get this into the actual release, but still needs to be backported to 1.12 beta.
2016-08-17 16:38:44 -07:00
Jonathan Turner
864b3efd33 Fix tidy and nits 2016-08-17 15:53:10 -07:00
crypto-universe
ed54226467 Fix tidy check. 2016-08-18 00:43:18 +02:00
Keith Yeung
31d56cb144 Add UI test for E0053 2016-08-17 15:33:50 -07:00
Jonathan Turner
70ce90c320 Move 'doesn't live long enough' errors to labels 2016-08-17 15:24:42 -07:00
Brian Anderson
9863afe029 1.11 changelog 2016-08-17 15:13:56 -07:00
Keith Yeung
34bc3c94f2 Display secondary span for E0053 for Mutability TypeErrors 2016-08-17 15:12:56 -07:00
Keith Yeung
3c4ecc9e7c Display secondary span for E0053 for Sort TypeErrors 2016-08-17 15:12:51 -07:00
Jonathan Turner
54d42cc912 Rebase. Fix mutable iteration nit. 2016-08-17 15:11:18 -07:00
crypto-universe
de5aaee0c5 Updated test for E0221
As a part of issue #35233
?r @GuillaumeGomez
2016-08-18 00:07:24 +02:00
Guillaume Gomez
8d78237701 Add new error code tests 2016-08-17 23:45:10 +02:00
Simonas Kazlauskas
2c3250adfa Nice graphs 2016-08-18 00:41:56 +03:00
Jonathan Turner
61865384b8 Replace local backtrace with def-use, repair std macro spans 2016-08-17 14:26:14 -07:00
Jonathan Turner
d0a272b797 Fix merge conflict 2016-08-17 14:26:05 -07:00
Simonas Kazlauskas
2d366428cc Properly invalidate the early exit cache
Fixes #35737
2016-08-17 21:09:30 +03:00
crypto-universe
2179defa04 New output for E0407
Issue #35697 as a part of #35233.
r? @jonathandturner
2016-08-17 19:59:22 +02:00
Chris Stankus
6a1efbd08e Merge branch 'master' into E0403-update-error-format 2016-08-17 12:31:20 -05:00
Jacob
d01bfb122e Remove trailing white space 2016-08-17 10:21:15 -07:00
Guillaume Gomez
feeed0b51b Fixes issue #11004 2016-08-17 19:12:37 +02:00
bors
7ac11cad3f Auto merge of #35747 - jonathandturner:rollup, r=jonathandturner
Rollup of 23 pull requests

- Successful merges: #34370, #35415, #35595, #35610, #35613, #35614, #35621, #35660, #35663, #35670, #35671, #35672, #35681, #35686, #35690, #35695, #35707, #35708, #35713, #35722, #35725, #35726, #35731
- Failed merges: #35395
2016-08-17 09:49:34 -07:00
Simon Sapin
12a159abea Add 'make help' for rustbuild
It is still advertised by the configure script.
2016-08-17 16:23:11 +02:00
bors
76fa5875c6 Auto merge of #35733 - apasel422:issue-35721, r=alexcrichton
Make `vec::IntoIter` covariant again

Closes #35721

r? @alexcrichton
2016-08-17 06:25:56 -07:00
Jonathan Turner
c216617cf2 Rollup merge of #35731 - pythoneer:fix-35192, r=jonathandturner
Update E0005 to use a label

Fixes #35192 as Part of #35233

r? @jonathandturner
2016-08-17 06:25:28 -07:00
Jonathan Turner
fbc62afba6 Rollup merge of #35726 - mikhail-m1:master2, r=jonathandturner
update E0409 to new error format

fixes #35699 as part of #35233.

r? @jonathandturner
2016-08-17 06:25:28 -07:00
Jonathan Turner
e20a7e3418 Rollup merge of #35725 - brson:bump, r=alexcrichton
Bump version to 1.13
2016-08-17 06:25:27 -07:00
Jonathan Turner
5fc58dcaff Rollup merge of #35722 - knight42:update-error-msg, r=jonathandturner
Updated E0394 & E0422 to new format

Fixes #35692 and #35700, as part of #35233.

r? @jonathandturner
2016-08-17 06:25:27 -07:00
Jonathan Turner
75454f72a3 Rollup merge of #35713 - sanxiyn:ui-test, r=nikomatsakis
Use UI test to test spans, instead of forced line break

There must be lots more, but these are what I could easily find.
2016-08-17 06:25:27 -07:00
Jonathan Turner
6193b1f43e Rollup merge of #35708 - sanxiyn:new-error-format, r=nikomatsakis
RUST_NEW_ERROR_FORMAT is no more

So stop setting the environment variable.
2016-08-17 06:25:27 -07:00
Jonathan Turner
3dd060f065 Rollup merge of #35707 - frewsxcv:vec-into-iter-debug, r=alexcrichton
Implement `Debug` for `std::vec::IntoIter`.

Display all the remaining items of the iterator, similar to the `Debug`
implementation for `core::slice::Iter`:

f0bab98695/src/libcore/slice.rs (L930-L937)

Using the `as_slice` method that was added in:

https://github.com/rust-lang/rust/pull/35447
2016-08-17 06:25:26 -07:00
Jonathan Turner
c1e9ea0b2d Rollup merge of #35695 - matthew-piziak:vec-assert-over-println, r=GuillaumeGomez
accumulate into vector and assert, instead of printing

I'm only making this change in one place so that people can express
their preferences for this stylistic change. If/when this change is
approved I'll go ahead and translate the rest of the `std::ops`
examples.
2016-08-17 06:25:26 -07:00
Jonathan Turner
49a2873cfc Rollup merge of #35690 - matthew-piziak:op-overloading-limited, r=steveklabnik
expound on limitations of Rust's trait-based operator overloading

Part of #29330
2016-08-17 06:25:26 -07:00
Jonathan Turner
f0f12d9fb1 Rollup merge of #35686 - mikhail-m1:master, r=jonathandturner
update E0375 to new format

fixes #35635 as part of #35233.

r? @jonathandturner
2016-08-17 06:25:26 -07:00
Jonathan Turner
eb91d33a14 Rollup merge of #35681 - Rufflewind:patch-1, r=apasel422
Fix spacing in code of closures.md

The spacing seems inconsistent with existing style conventions.
2016-08-17 06:25:26 -07:00