Commit Graph

72484 Commits

Author SHA1 Message Date
Tommy Ip
81b8db2180 Imply must-compile-successfully in ui-tests when the run-pass flag is present. 2017-12-10 21:14:57 +00:00
Tommy Ip
5990b8b57c Enforce successful ui tests to have must-compile-successfully flag. 2017-12-10 21:14:57 +00:00
bors
2d4df9584b Auto merge of #46232 - canndrew:never-docs, r=QuietMisdreavus
Add docs for never primitive

cc @nikomatsakis, @QuietMisdreavus
2017-12-10 19:04:25 +00:00
Emilio Cobos Álvarez
2fe24882a2
rustc_trans: Fix indentation in trans_set_discr.
Just noticed this while reading through #46521, which introduced this weird
alignment.
2017-12-10 19:58:17 +01:00
Emilio Cobos Álvarez
6852999188
infer: Fix typo in README.
Was just reading through it and found this, not a big deal but...
2017-12-10 17:32:51 +01:00
bors
2537a499c2 Auto merge of #46620 - bjorn3:remove-test-metric, r=kennytm
Remove *MetricFn

fixes #44808
2017-12-10 16:31:32 +00:00
Ariel Ben-Yehuda
e798cb0e52 centralize does_not_live_long_enough error reporting 2017-12-10 17:46:32 +02:00
Ariel Ben-Yehuda
ed636c5c5a remove is_unique 2017-12-10 17:46:31 +02:00
Ariel Ben-Yehuda
b64ddecae8 use places_conflict to handle reassignment
This fixes the handling of reassignment of struct fields.
2017-12-10 17:46:31 +02:00
Ariel Ben-Yehuda
97c58ed66c avoid passing the gen/kill bits to start_block_effects
If the gen/kill bits are set there, the effects of `start_block_effects`
will not be seen when using `FlowAtLocation` etc. to go over the MIR.

EverInitializedLvals is the only pass that got this wrong, but this
fixes the footgun for everyone.
2017-12-10 17:46:31 +02:00
Ariel Ben-Yehuda
733e95444f clean up reassignment duplicate error prevention 2017-12-10 17:46:31 +02:00
Ariel Ben-Yehuda
5a3f7cdcc7 move FlowAtLocation to be a dataflow abstraction
We can now use it in e.g. drop elaboration if we want to.
2017-12-10 17:46:31 +02:00
Ariel Ben-Yehuda
157231183c start extracting things into modules
The borrow_check module is too big for its own good
2017-12-10 17:46:29 +02:00
bjorn3
83c08d2174 Remove *MetricFn 2017-12-10 14:30:08 +01:00
Andrew Cann
172f16bc9d Update never_type docs based on feedback 2017-12-10 15:13:55 +08:00
bors
02b4d3ddfb Auto merge of #46611 - GuillaumeGomez:type-mismatch, r=petrochenkov
Fix switched types in type mismatch

Fixes #46609.
2017-12-10 04:01:00 +00:00
Jeffrey Seyfried
9c7969d3df Use hygiene to access the injected crate (core or std) from builtin macros. 2017-12-09 17:22:07 -08:00
bors
c89e206eed Auto merge of #46602 - mbrubeck:try, r=kennytm
Replace option_try macros and match with ? operator

None
2017-12-10 00:57:40 +00:00
Zack M. Davis
4fb57e0796 one-time diagnostic and suggestion for reëxporting private variant error
We issue just one message for an erroneous glob private variant reëxport
(using the Session's one-time-diagnostics capability), but individual
(non-glob) such erroneous reëxports still get their own messages. The
suggestion to make the enum public is also one-time.

The enum variant reëxport error didn't have an associated error code
(and remedying this here is deemed out of the scope of this commit), so
we resort to the expediency of using 0 as the `DiagnosticMessageId`
value.

Adding Debug to NameResolution was helpful in development.

This resolves #46209.
2017-12-09 16:33:32 -08:00
Zack M. Davis
883f5e5e65 one-time diagnostics: span_suggestion, generalize methods for non-lints
304c8b1eda made the Session's one-time-diagnostics set take a
special-purpose `DiagnosticMessageId` enum rather than a LintID so that
it could support more than just lints, but the `diag_span_note_once` and
`diag_note_once` methods continued to take references to lints: for API
consistency, we now make these methods take a `DiagnosticMessageId`
while we add support for one-time span-suggestions.
2017-12-09 16:33:32 -08:00
Guillaume Gomez
484729478b Fix switched types in type mismatch 2017-12-10 01:20:40 +01:00
Esteban Küber
95a0458358 Resolve type on return type suggestion 2017-12-09 15:19:39 -08:00
bors
8db163e53d Auto merge of #46572 - vramana:fix-45638, r=estebank
Fix bad error message for cannot_reborrow_already_uniquely_borrowed
2017-12-09 22:32:34 +00:00
Matt Brubeck
3024c1434a Use Try syntax for Option in place of macros or match 2017-12-09 14:18:33 -08:00
Esteban Küber
b7bb67abd3 Use spans for -Z external-macro-backtrace
```
% rustc ui/type-check/cannot_infer_local_or_vec.rs -Z external-macro-backtrace
error[E0282]: type annotations needed
  --> <vec macros>:3:1
   |
1  | / ( $ elem : expr ; $ n : expr ) => (
2  | | $ crate :: vec :: from_elem ( $ elem , $ n ) ) ; ( $ ( $ x : expr ) , * ) => (
3  | | < [ _ ] > :: into_vec ( box [ $ ( $ x ) , * ] ) ) ; ( $ ( $ x : expr , ) * )
   | | ^^^^^^^^^^^^^^^^^^^^^
   | | |
   | | cannot infer type for `T`
4  | | => ( vec ! [ $ ( $ x ) , * ] )
   | |______________________________- in this expansion of `vec!`
   |
  ::: ui/type-check/cannot_infer_local_or_vec.rs
   |
12 |       let x = vec![];
   |           -   ------ in this macro invocation
   |           |
   |           consider giving `x` a type

error: aborting due to previous error
```
2017-12-09 12:43:46 -08:00
bors
6fa53b00e7 Auto merge of #46603 - ollie27:rustdoc_slice_u8, r=GuillaumeGomez
rustdoc: Include `impl [u8]` in the docs

The impl was added in #44042 but wasn't visible in the docs.
2017-12-09 20:10:29 +00:00
Oliver Middleton
e53a848d32 rustdoc: Include impl [u8] in the docs 2017-12-09 17:06:02 +00:00
matthewjasper
d755be69e8 Use a better link for method resolution in Deref docs 2017-12-09 13:50:07 +00:00
bors
6537fd184e Auto merge of #46581 - tmccombs:drain_filter_drop, r=sfackler
Add Drop impl for linked_list::DrainFilter

This is part of #43244. See https://github.com/rust-lang/rust/issues/43244#issuecomment-349894355
2017-12-09 09:54:55 +00:00
Thayne McCombs
cdf1d7dfc9 Revert "Make drop impl stable for DrainFilter"
This reverts commit 00acdbd51d.
2017-12-09 01:09:23 -07:00
bors
61cc23e3e5 Auto merge of #46586 - GuillaumeGomez:fix-mobile-important-display, r=QuietMisdreavus
Fixes doc important trait display on mobile

Fixes #46527.

r? @QuietMisdreavus
2017-12-09 03:57:47 +00:00
bors
69ae2b7e12 Auto merge of #46573 - jseyfried:add_decl_macro_test, r=nrc
macros: add test for #44128

Closes #44128.
r? @nrc
2017-12-09 01:20:16 +00:00
bors
c7b6d8263b Auto merge of #45837 - SimonSapin:file_read_write, r=dtolnay
Add read, read_string, and write functions to std::fs

New APIs in `std::fs`:

```rust
pub fn read<P: AsRef<Path>>(path: P) -> io::Result<Vec<u8>> { … }
pub fn read_string<P: AsRef<Path>>(path: P) -> io::Result<String> { … }
pub fn write<P: AsRef<Path>, C: AsRef<[u8]>>(path: P, contents: C) -> io::Result<()> { ... }
```

(`read_string` is based on `read_to_string` and so returns an error on non-UTF-8 content.)

Before:

```rust
use std::fs::File;
use std::io::Read;

let mut bytes = Vec::new();
File::open(filename)?.read_to_end(&mut bytes)?;
do_something_with(bytes)
```

After:

```rust
use std::fs;

do_something_with(fs::read(filename)?)
```
2017-12-08 21:33:50 +00:00
bors
ad3543db34 Auto merge of #46563 - michaelwoerister:make-anon-globals-private, r=alexcrichton
Make CGU-local globals private so they don't show up in the local symbol table.

Should reduce binary sizes. Great find, @eddyb!

r? @alexcrichton
(I have not tested this locally. Better wait for travis to turn green before approving)
2017-12-08 18:46:24 +00:00
Simon Sapin
c5eff5442c fs::{read, read_string, write}: add tracking issue number 2017-12-08 19:28:13 +01:00
Ramana Venkata
90f7c31d86 Fix bad error message for cannot_reborrow_already_uniquely_borrowed
Fixes #45638
2017-12-08 23:42:13 +05:30
Guillaume Gomez
0017d504a5
Fixes doc important trait display on mobile 2017-12-08 16:36:08 +01:00
bors
ab79caa828 Auto merge of #46247 - GuillaumeGomez:md-warnings, r=QuietMisdreqvus
Md warnings

Fixes #45365.

r? @QuietMisdreavus
2017-12-08 14:10:07 +00:00
bors
88fc3bc271 Auto merge of #46556 - michaelwoerister:enable-query-caching, r=nmatsakis
incr.comp.: Enable query result caching for many more queries

Newly cached queries are:
* const_is_rvalue_promotable_to_static
* trans_fulfill_obligation
* optimized_mir
* unsafety_check_result
* borrowck
* mir_borrowck
* mir_const_qualif
* contains_extern_indicator
* def_symbol_name
* symbol_name

This also includes the stricter `Span` hashing first mentioned in #46490, which will lead to more false positives in release builds but overall is more correct -- and necessary for caching MIR. Hopefully we will soon be able to reduce the rate of false positives again by factoring `Span` out of MIR.

r? @nikomatsakis
2017-12-08 11:34:23 +00:00
Michael Woerister
539e171772 incr.comp.: Fix merge fallout. 2017-12-08 10:17:17 +01:00
Michael Woerister
f5bd1ca678 incr.comp.: Make Span decoding more consistent so it doesn't mess up -Zincremental-verify-ich 2017-12-08 10:02:26 +01:00
Michael Woerister
1c0e611dff Remove some svh-tests from run-pass.
These were already broken for debug builds.
2017-12-08 10:02:26 +01:00
Michael Woerister
c5dd9f5301 incr.comp.: Hash spans unconditionally for full accuracy. 2017-12-08 10:02:26 +01:00
Michael Woerister
829a349739 incr.comp: Cache results of more queries. 2017-12-08 10:02:26 +01:00
bors
58a05eed54 Auto merge of #46549 - alexcrichton:thinlto-weak, r=michaelwoerister
rustc: Further tweak linkage in ThinLTO

In #46382 the logic around linkage preservation with ThinLTO ws tweaked but the
loop that registered all otherwise exported GUID values as "don't internalize
me please" was erroneously too conservative and only asking "external" linkage
items to not be internalized. Instead we actually want the inversion of that
condition, everything *without* "local" linkage to be internalized.

This commit updates the condition there, adds a test, and...

Closes #46543
2017-12-08 08:48:02 +00:00
Agustin Chiappe Berrini
cbd25ed8f4 deny instead of warn 2017-12-08 03:13:13 -05:00
Thayne McCombs
00acdbd51d Make drop impl stable for DrainFilter 2017-12-07 23:52:34 -07:00
Thayne McCombs
37335d3f43 Add Drop impl for linked_list::DrainFilter 2017-12-07 22:20:25 -07:00
bors
5f4b09ee48 Auto merge of #46574 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 5 pull requests

- Successful merges: #46416, #46444, #46526, #46539, #46548
- Failed merges:
2017-12-08 02:36:15 +00:00
Guillaume Gomez
0b47f02267 Rollup merge of #46548 - jonathanstrong:master, r=dtolnay
Recommends lazily evaluated alternatives for `Option::or` and `Result::or`

Adds language to docs for `Option` and `Result` recommending the use of lazily evaluated alternatives when appropriate. These comments are intended to echo a [clippy lint] on the same topic. The [reddit discussion] may also be of interest.

[clippy lint]: https://rust-lang-nursery.github.io/rust-clippy/master/index.html#or_fun_call
[reddit discussion]: https://www.reddit.com/r/rust/comments/7hutqn/perils_of_optionor_and_resultor/
2017-12-07 23:59:04 +01:00