Commit Graph

65554 Commits

Author SHA1 Message Date
bors
69c65d2961 Auto merge of #42850 - estebank:unwanted-return-rotj, r=nikomatsakis
Detect missing `;` on methods with return type `()`

 - Point out the origin of a type requirement when it is the return type
   of a method
 - Point out possibly missing semicolon when the return type is `()` and
   the implicit return makes sense as a statement
 - Suggest changing the return type of methods with default return type
 - Don't suggest changing the return type on `fn main()`
 - Don't suggest changing the return type on impl fn
 - Suggest removal of semicolon (instead of being help)
2017-06-28 20:16:13 +00:00
Aleksey Kladov
40dec0984e Document that / works as separator on Windows 2017-06-28 23:14:06 +03:00
Venkata Giri Reddy
74cb315a10 rustc_typeck: enforce argument type is sized 2017-06-28 17:54:18 +00:00
Venkata Giri Reddy
6db48380ce rustc_typeck: remove old-style WF obligation 2017-06-28 17:54:17 +00:00
bors
47faf1d519 Auto merge of #42819 - scottmcm:swap-nonoverlapping, r=sfackler
Reuse the mem::swap optimizations to speed up slice::rotate

This is most helpful for compound types where LLVM didn't vectorize the loop.  Highlight: bench slice::rotate_medium_by727_strings gets 38% faster.

Exposes the swapping logic from PR https://github.com/rust-lang/rust/pull/40454 as `pub unsafe fn ptr::swap_nonoverlapping` under library feature `swap_nonoverlapping` https://github.com/rust-lang/rust/issues/42818.

(The new method seemed plausible, and was the simplest way to share the logic.  I'm not attached to it, though, so let me know if a different way would be better.)
2017-06-28 14:33:00 +00:00
Felix S. Klock II
13cd022060 Shift mir-dataflow from rustc_borrowck to rustc_mir crate.
Turn `elaborate_drops` and `rustc_peek` implementations into MIR
passes that also live in `rustc_mir` crate.

Rewire things so `rustc_driver` uses the `ElaborateDrops` from
`rustc_mir` crate.
2017-06-28 13:59:12 +02:00
bors
c16930762a Auto merge of #42745 - sfackler:1.19-stabilization, r=alexcrichton
1.19 stabilization

r? @alexcrichton
2017-06-28 11:55:37 +00:00
Tobias Bucher
2783d0f7da Add links to the ErrorKind variants in errors of open 2017-06-28 13:43:56 +02:00
Andreas Sommer
4fb67dcf8f Fix link reference 2017-06-28 10:55:57 +02:00
bors
6b52a1162e Auto merge of #42931 - arielb1:statement-visitor, r=eddyb
re-add the call to `super_statement` in EraseRegions

The move gathering code is sensitive to type-equality - that is rather
un-robust and I plan to fix it eventually, but that's a more invasive
change. And we want to fix the visitor anyway.

Fixes #42903.

r? @eddyb
2017-06-28 08:47:29 +00:00
Ariel Ben-Yehuda
71abfa7b91 re-add the call to super_statement in EraseRegions
The move gathering code is sensitive to type-equality - that is rather
un-robust and I plan to fix it eventually, but that's a more invasive
change. And we want to fix the visitor anyway.

Fixes #42903.
2017-06-28 11:01:42 +03:00
bors
5bc8941638 Auto merge of #42709 - stepancheg:discriminant-hash, r=jseyfried
deriv(Hash) for single-variant enum should not hash discriminant

Fixes #39137
2017-06-28 06:32:10 +00:00
bors
88c3242ef2 Auto merge of #42431 - nagisa:core-float-2, r=alexcrichton
Fix NaN handling in is_sign_negative/positive

This would be my proposed fix for the #42425 provided we decide it is indeed a problem.

Note this would technically be a breaking change to a stable API. We might want to consider deprecating these methods and adding new ones.
2017-06-28 03:41:22 +00:00
bors
4079e6128f Auto merge of #42417 - eddyb:separate-fn-sig, r=nikomatsakis
Don't drag function signatures along function item types.

This PR separates the signature of a function from the "function item type" (`TyFnDef`), leaving only the `DefId` and parameter `Substs`, making them even more like (captureless) closure types.

The motivation for this change is reducing typesystem complexity, and its consequences:
* operating on the signature instead of just the parameters was less efficient
  * specifically, signatures can easily add several levels of depth on top of the parameter types
  * and the signatured were always substituted and normalized, so typically even more complex
* it was *the only* type that was *both* nominal (identity) and structural (signature)
  * harder to model in Chalk than either a purely nominal or structural type
  * subtyping worked on the signature but parameters were always invariant
  * call type-checking was transforming signatures but keeping the nominal half intact
  * the signature could therefore get out of sync during type inference in several ways

That last point comes with a `[breaking-change]`, because functions with `'static` in their return types will now *not* be as usable as if they were using lifetime parameters instead:
```rust
// Will cause lifetime mismatch in main after this PR.
fn bar() -> &'static str { "bar" }
// Will continue to work fine, as every use can choose its own lifetime.
fn bar<'a>() -> &'a str { "bar" }

fn main() {
    let s = String::from("foo");
    Some(&s[..]).unwrap_or_else(bar);
}
```

r? @nikomatsakis
2017-06-28 01:12:12 +00:00
Josh Stone
e72ee6e4ad Use a little more compelling example of for_each 2017-06-27 16:31:31 -07:00
Esteban Küber
7dad2958be Review comments
- Fix typo
- Add docstring
- Remove spurious test output file
2017-06-27 13:34:56 -07:00
Nick Cameron
3dad1977a5 Update RLS submodule 2017-06-28 06:40:23 +12:00
Alex Burka
0dfd9c30f2 syntax: allow negative integer literal expression to be interpolated as pattern 2017-06-27 18:39:38 +00:00
Ariel Ben-Yehuda
0e6eecb4e5 Rebase LLVM on top of LLVM 4.0.1
Fixes #42893.
2017-06-27 18:09:52 +03:00
Eduard-Mihai Burtescu
69076f3a78 tests: work around fallout from normalizing signatures separately. 2017-06-27 16:39:58 +03:00
Eduard-Mihai Burtescu
a9d4069975 rustc_typeck: support functions in variance computation. 2017-06-27 16:39:58 +03:00
Eduard-Mihai Burtescu
33ecf72e8e rustc: move the PolyFnSig out of TyFnDef. 2017-06-27 16:39:52 +03:00
Eduard-Mihai Burtescu
8e53a03d15 rustc: rename closure_type to fn_sig. 2017-06-27 16:32:48 +03:00
Tobias Bucher
71252d9b80 Document possible io::ErrorKinds of fs::open
Try to make clear that this isn't an API guarantee for now, as we likely
want to refine these errors in the future, e.g. `ENOSPC` "No space left
on device".

CC #40322
2017-06-27 12:09:56 +02:00
Andre Bogus
1715559f82 address tidy error & comment 2017-06-27 07:16:54 +02:00
bors
f590a44ce6 Auto merge of #42922 - frewsxcv:rollup, r=frewsxcv
Rollup of 5 pull requests

- Successful merges: #42519, #42871, #42874, #42905, #42917
- Failed merges:
2017-06-27 05:12:07 +00:00
Corey Farwell
d7a5508069 Rollup merge of #42917 - kennytm:gdb-fatal-proc-rec, r=Mark-Simulacrum
compiletest: show details why GDB failed to execute.

Help finding reasons of spurious errors due to GDB failing to run (#42693).
2017-06-26 23:34:13 -04:00
Corey Farwell
83d4b43422 Rollup merge of #42905 - casey:casey-utf8-null-doc, r=steveklabnik
Reword OsStr docs to clarify that utf8 may contain nulls

The use of the word "but" in the OsStr docs implies (at least to me) that valid UTF-8 does not contain null bytes.

Using "which" instead makes it clear that valid UTF-8 may contain null bytes.
2017-06-26 23:34:12 -04:00
Corey Farwell
7808fddede Rollup merge of #42874 - zackmdavis:overzealous_by_outer_forbid, r=nikomatsakis
only set "overruled by outer forbid" once for lint groups, by group name

Previously, conflicting forbid/allow attributes for a lint group would
result in a separate "allow(L) overruled by outer forbid(L)" error for
every lint L in the group. This was needlessly and annoyingly verbose;
we prefer to just have one error pointing out the conflicting
attributes.

(Also, while we're touching context.rs, clean up some unused arguments.)

Resolves #42873.
2017-06-26 23:34:11 -04:00
Corey Farwell
b1afcb6ae9 Rollup merge of #42871 - llogiq:for_lowering_vs_clippy, r=arielb1
change binding name of for loop lowering to appease clippy

With the latest change to for loop lowering (#42634), a `_next` binding was introduced.
Unfortunately, this [disturbs](https://github.com/Manishearth/rust-clippy/issues/1846) clippy's `used_underscore_binding` lint. This commit just renames the binding to `__next` so clippy will be happy. It should have no other effect.
2017-06-26 23:34:10 -04:00
Corey Farwell
b2c313007d Rollup merge of #42519 - GuillaumeGomez:create-more-error-codes, r=QuietMisdreavus
Create more error codes

Fixes #31174.
Part of #42229.

cc @Susurrus
2017-06-26 23:34:09 -04:00
Behnam Esfahbod
330dab837f [libcore/cmp] Expand Ord/PartialOrd Derivable doc for enum types
Expand Derivable docblock section for `Ord` and `PartialOrd` to cover
`enum` types, in addition to the existing language explaining it for
`struct` types.
2017-06-26 18:37:54 -06:00
Zack M. Davis
32b8579b68 make lint on-by-default/implied-by messages appear only once
From review discussion on #38103
(https://github.com/rust-lang/rust/pull/38103#discussion_r94845060).
2017-06-26 16:10:06 -07:00
bors
77931c2a04 Auto merge of #42916 - Mark-Simulacrum:update-cargo, r=alexcrichton
Update Cargo

Haven't run extensive tests locally (not really sure what to test) but this primarily pulls in minor changes: https://github.com/rust-lang/cargo/pull/4215, https://github.com/rust-lang/cargo/pull/4209, and https://github.com/rust-lang/cargo/pull/4218. The last one fixes the flaky cargo test by ignoring it, which should unblock https://github.com/rust-lang/rust/pull/42745 -- that's beta nominated.

r? @alexcrichton
2017-06-26 22:42:08 +00:00
kennytm
3f1cb30b14
compiletest: show details if GDB failed to execute. 2017-06-27 02:44:42 +08:00
Mark Simulacrum
38b468832f Update Cargo 2017-06-26 10:30:36 -06:00
bors
859c3236e5 Auto merge of #42885 - ollie27:rustdoc_empty_glob_path, r=GuillaumeGomez
rustdoc: Don't ICE on `use *;`

Fixes #42875
2017-06-26 11:06:13 +00:00
Stjepan Glavina
723833f4e1 Move thread_rng() outside the loop 2017-06-26 11:20:31 +02:00
Alex Crichton
d316874c87 Update and fix a few tests 2017-06-26 02:08:14 +00:00
Alex Crichton
302935ff2a Revert a few changes 2017-06-26 02:08:12 +00:00
Alex Crichton
4012b8dc4a Update UI test with proc_macro changes 2017-06-26 02:08:11 +00:00
Alex Crichton
699078a35b Fix a semantic merge conflict 2017-06-26 02:08:09 +00:00
Jeffrey Seyfried
71d4a860a1 Address review comments. 2017-06-26 02:06:34 +00:00
Jeffrey Seyfried
1e32a3f15e Test compound tokens. 2017-06-26 02:06:33 +00:00
Jeffrey Seyfried
20a90485c0 Add exmaple/test for quote! hygiene. 2017-06-26 02:06:32 +00:00
Jeffrey Seyfried
7d493bdd2a Add LazyTokenStream. 2017-06-26 02:06:31 +00:00
Jeffrey Seyfried
e42836b208 Implement quote! and other proc_macro API. 2017-06-26 02:06:26 +00:00
Jeffrey Seyfried
7d41674b17 Clean up tokenstream::Cursor and proc_macro. 2017-06-26 02:05:46 +00:00
Jeffrey Seyfried
d4488b7df9 Simplify hygiene::Mark application, and
remove variant `Token::SubstNt` in favor of `quoted::TokenTree::MetaVar`.
2017-06-26 02:05:45 +00:00
Casey Rodarmor
0d985c9e87 Reword OsStr docs to clarify that utf8 may contain nulls 2017-06-25 14:23:43 -07:00