Commit Graph

65544 Commits

Author SHA1 Message Date
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
Alex Crichton
d24d408af3 std: Fix implementation of Alloc::alloc_one
This had an accidental `u8 as *mut T` where it was intended to have just a
normal pointer-to-pointer cast.

Closes #42827
2017-06-25 11:35:05 -07:00
Steven Fackler
8aa39ad3d8 Stop disabling fill in jemalloc
The underlying bug has been fixed for over 2 years!
2017-06-25 10:58:12 -07:00
bors
fc9ccfdbe0 Auto merge of #42865 - ollie27:rustdoc_assoc_consts, r=GuillaumeGomez
rustdoc: Fix a few issues with associated consts

* Make sure private consts are stripped.
* Don't show a code block for the value if there is none.
* Make sure default values are shown in impls.
* Make sure docs from the trait are used if the impl has no docs.
2017-06-25 17:39:26 +00:00
Paul Woolcock
4154f895d3 only show allowed failure count if there are allowed failures 2017-06-25 12:23:20 -04:00
Andre Bogus
3d25238d6d fixed some clippy warnings in compiletest 2017-06-25 17:37:03 +02:00
Guillaume Gomez
bcf0d600f3 Add reference link 2017-06-25 09:25:37 +02:00
Esteban Küber
c13a913e5b Don't naively point to return type on type error 2017-06-24 19:28:43 -07:00
Steven Fackler
143206d54d Stabilize RangeArgument
Move it and Bound to core::ops while we're at it.

Closes #30877
2017-06-24 19:20:57 -07:00
Steven Fackler
dc411e307a Stabilize ThreadId
Closes #21507
2017-06-24 19:19:26 -07:00
Steven Fackler
ea4fb8ee27 Stabilize OsString::shrink_to_fit
Closes #40421
2017-06-24 19:19:26 -07:00