]> git.lizzy.rs Git - rust.git/log
rust.git
7 years agoRollup merge of #40871 - projektir:atomic_links, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 20:48:27 +0000 (16:48 -0400)]
Rollup merge of #40871 - projektir:atomic_links, r=steveklabnik

Adding links for Atomics docs #29377

r? @steveklabnik

This should be good for `std::sync::atomic`. The other pages still need more (examples, etc.).

7 years agoRollup merge of #40763 - pirate:patch-2, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 20:48:26 +0000 (16:48 -0400)]
Rollup merge of #40763 - pirate:patch-2, r=steveklabnik

Add helpful hint in io docs about how ? is not allowed in main()

This is my effort to help alleviate the confusion caused by the error message:
```rust
error[E0277]: the trait bound `(): std::ops::Carrier` is not satisfied
  --> hello_world.rs:72:5
   |
72 |     io::stdin().read_line(&mut d_input)?;
   |     ------------------------------------
   |     |
   |     the trait `std::ops::Carrier` is not implemented for `()`
   |     in this macro invocation
   |
   = note: required by `std::ops::Carrier::from_error`

error: aborting due to previous error
```
This has been discussed at length in https://github.com/rust-lang/rust/issues/35946, but I figured it would be helpful to mention in the docs.
Reading user input is one of the first things beginners will look up in the docs, so my thinking was they'd see this warning here and not have to deal with the [tricky error message](https://blog.rust-lang.org/2017/03/02/lang-ergonomics.html).

If you think this isn't the right place to put this in the docs, that's understandable, I'm open to suggestions for putting it elsewhere or removing it entirely.

7 years agoRollup merge of #40728 - topecongiro:stabilize, r=arielb1
Corey Farwell [Fri, 31 Mar 2017 20:48:25 +0000 (16:48 -0400)]
Rollup merge of #40728 - topecongiro:stabilize, r=arielb1

Make overlapping_inherent_impls lint a hard error

Closes #36889.

7 years agoRollup merge of #40703 - GuillaumeGomez:pointer-docs, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 20:48:24 +0000 (16:48 -0400)]
Rollup merge of #40703 - GuillaumeGomez:pointer-docs, r=steveklabnik

Add missing urls in ptr docs

r? @rust-lang/docs

7 years agoAuto merge of #40950 - frewsxcv:rollup, r=frewsxcv
bors [Fri, 31 Mar 2017 16:04:18 +0000 (16:04 +0000)]
Auto merge of #40950 - frewsxcv:rollup, r=frewsxcv

Rollup of 10 pull requests

- Successful merges: #40694, #40842, #40869, #40888, #40898, #40904, #40925, #40928, #40929, #40934
- Failed merges:

7 years agoRollup merge of #40934 - SamWhited:improve_write_writeln_docs, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 15:43:39 +0000 (11:43 -0400)]
Rollup merge of #40934 - SamWhited:improve_write_writeln_docs, r=steveklabnik

Improve the docs for the write and writeln macros

This change reduces duplication by linking the documentation for
`writeln!` to `write!`. It also restructures the `write!` documentation
to read in a more logical manner (I hope; feedback would be welcome).

Updates #29329, #29381

7 years agoRollup merge of #40929 - bluss:full-reverse, r=alexcrichton
Corey Farwell [Fri, 31 Mar 2017 15:43:38 +0000 (11:43 -0400)]
Rollup merge of #40929 - bluss:full-reverse, r=alexcrichton

Implement all PartialOrd methods for Reverse

When making a forwarding wrapper we must in general forward all methods,
so that we use the type's own `lt` for example instead of the default.

Example important case: f32's partial_cmp does several operations but
its lt is a primitive.

Follow up on #40720

7 years agoRollup merge of #40928 - GAJaloyan:patch-2, r=eddyb
Corey Farwell [Fri, 31 Mar 2017 15:43:37 +0000 (11:43 -0400)]
Rollup merge of #40928 - GAJaloyan:patch-2, r=eddyb

adding debug in consume_body function

When in debug_assertions=true mode, the function consume_body lacks some debug output, which makes it harder to follow the control flow. This commit adds this needed debug.

7 years agoRollup merge of #40925 - DaseinPhaos:patch-5, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 15:43:36 +0000 (11:43 -0400)]
Rollup merge of #40925 - DaseinPhaos:patch-5, r=steveklabnik

Add missing link in unstable-book

add link to specialization's tracking issue

7 years agoRollup merge of #40904 - rap2hpoutre:patch-1, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 15:43:35 +0000 (11:43 -0400)]
Rollup merge of #40904 - rap2hpoutre:patch-1, r=steveklabnik

Add example to std::process::abort

This is a first step in order to complete this issue: https://github.com/rust-lang/rust/issues/29370
I submitted this PR with the help of @steveklabnik More info here: https://github.com/rust-lang/rust/issues/29370#issuecomment-290089330

It's my first PR on Rust, I'm learning how to contribute: Should I ping someone? I will post another PR with a more complicated example soon, I prefer send it separately (cause maybe I made some mistakes).

7 years agoRollup merge of #40898 - MaloJaffre:remove-unused-feature, r=alexcrichton
Corey Farwell [Fri, 31 Mar 2017 15:43:34 +0000 (11:43 -0400)]
Rollup merge of #40898 - MaloJaffre:remove-unused-feature, r=alexcrichton

Remove unused feature from error index generator

Remove feature `rustdoc`.

7 years agoRollup merge of #40888 - wesleywiser:rustdoc_src_sidebar, r=GuillaumeGomez
Corey Farwell [Fri, 31 Mar 2017 15:43:33 +0000 (11:43 -0400)]
Rollup merge of #40888 - wesleywiser:rustdoc_src_sidebar, r=GuillaumeGomez

Make the rustdoc sidebar white on `src` pages

Fixes #40724

7 years agoRollup merge of #40869 - ctjhoa:master, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 15:43:32 +0000 (11:43 -0400)]
Rollup merge of #40869 - ctjhoa:master, r=steveklabnik

Improve os::linux documentation (#29367)

Improve `os::linux` documentation according to #29367

r? @steveklabnik

7 years agoRollup merge of #40842 - Mic92:RawFd, r=aturon
Corey Farwell [Fri, 31 Mar 2017 15:43:31 +0000 (11:43 -0400)]
Rollup merge of #40842 - Mic92:RawFd, r=aturon

Implement AsRawFd/IntoRawFd for RawFd

This is useful to build os abstraction like the nix crate does.
It allows to define functions, which accepts generic arguments
of data structures convertible to RawFd, including RawFd itself.
For example:

```
fn write<FD: AsRawFd>(fd: FD, buf: &[u8]) -> Result<usize>
write(file, buf);
```
instead of:
```
fn write(fd: RawFd, buf: &[u8]) -> Result<usize>
write(file.as_raw_fd(), buf);
```

cc @kamalmarhubi

7 years agoRollup merge of #40694 - frewsxcv:unstable-book-checker, r=steveklabnik
Corey Farwell [Fri, 31 Mar 2017 15:43:30 +0000 (11:43 -0400)]
Rollup merge of #40694 - frewsxcv:unstable-book-checker, r=steveklabnik

Sync all unstable features with Unstable Book; add tidy lint.

Add a tidy lint that checks for...

* Unstable Book sections with no corresponding SUMMARY.md links
* unstable features that don't have Unstable Book sections
* Unstable Book sections that don't have corresponding unstable features

7 years agoSync all unstable features with Unstable Book; add tidy lint.
Corey Farwell [Sun, 19 Mar 2017 14:45:05 +0000 (10:45 -0400)]
Sync all unstable features with Unstable Book; add tidy lint.

Add a tidy lint that checks for...

* Unstable Book sections with no corresponding SUMMARY.md links
* unstable features that don't have Unstable Book sections
* Unstable Book sections that don't have corresponding unstable features

7 years agoAuto merge of #40737 - nagisa:safe-slicing-strs, r=BurntSushi
bors [Fri, 31 Mar 2017 11:13:20 +0000 (11:13 +0000)]
Auto merge of #40737 - nagisa:safe-slicing-strs, r=BurntSushi

Checked slicing for strings

cc https://github.com/rust-lang/rust/issues/39932

7 years agoAuto merge of #40620 - laumann:slash-in-diagnostics-path, r=BurntSushi
bors [Fri, 31 Mar 2017 03:22:39 +0000 (03:22 +0000)]
Auto merge of #40620 - laumann:slash-in-diagnostics-path, r=BurntSushi

Replace hardcoded forward slash with path::MAIN_SEPARATOR

Fixes #40149

7 years agoImprove the docs for the write and writeln macros
Sam Whited [Thu, 30 Mar 2017 18:23:35 +0000 (13:23 -0500)]
Improve the docs for the write and writeln macros

This change reduces duplication by linking the documentation for
`writeln!` to `write!`. It also restructures the `write!` documentation
to read in a more logical manner.

Updates #29329, #29381

7 years agoAuto merge of #40524 - alexcrichton:update-bootstrap, r=alexcrichton
bors [Thu, 30 Mar 2017 17:10:11 +0000 (17:10 +0000)]
Auto merge of #40524 - alexcrichton:update-bootstrap, r=alexcrichton

rustbuild: Update bootstrap compiler

Now that we've also updated cargo's release process this commit also changes the
download location of Cargo from Cargos archives back to the static.r-l.o
archives. This should ensure that the Cargo download is the exact Cargo paired
with the rustc that we release.

7 years agocmp: Implement all PartialOrd methods for Reverse
Ulrik Sverdrup [Thu, 30 Mar 2017 15:25:36 +0000 (17:25 +0200)]
cmp: Implement all PartialOrd methods for Reverse

When making a forwarding wrapper we must in general forward all methods,
so that we use the type's own `lt` for example instead of the default.

Example important case: f32's partial_cmp does several operations but
its lt is a primitive.

7 years agoremoving trailing whitespaces
GAJaloyan [Thu, 30 Mar 2017 15:02:51 +0000 (17:02 +0200)]
removing trailing whitespaces

7 years agoadding debug in consume_body function
GAJaloyan [Thu, 30 Mar 2017 14:31:16 +0000 (16:31 +0200)]
adding debug in consume_body function

When in debug_assertions=true mode, the function consume_body lacks some debug output, which makes it harder to follow the control flow. This commit adds this needed debug.

7 years agoAuto merge of #40224 - nikomatsakis:issue-39808, r=eddyb
bors [Thu, 30 Mar 2017 14:20:20 +0000 (14:20 +0000)]
Auto merge of #40224 - nikomatsakis:issue-39808, r=eddyb

change the strategy for diverging types

The new strategy is as follows. First, the `!` type is assigned
in two cases:

- a block with a diverging statement and no tail expression (e.g.,
  `{return;}`);
- any expression with the type `!` is considered diverging.

Second, we track when we are in a diverging state, and we permit a value
of any type to be coerced **into** `!` if the expression that produced
it is diverging. This means that `fn foo() -> ! { panic!(); 22 }`
type-checks, even though the block has a type of `usize`.

Finally, coercions **from** the `!` type to any other are always
permitted.

Fixes #39808.
Fixes #39984.

7 years agoAdd missing link in unstable-book
Luxko [Thu, 30 Mar 2017 12:36:07 +0000 (20:36 +0800)]
Add missing link in unstable-book

add link to specialization's tracking issue

7 years agoremove comments that were tripping up pretty printer
Niko Matsakis [Mon, 27 Mar 2017 23:48:55 +0000 (19:48 -0400)]
remove comments that were tripping up pretty printer

7 years agofix error message for issue-10176.rs
Niko Matsakis [Sun, 26 Mar 2017 11:02:39 +0000 (07:02 -0400)]
fix error message for issue-10176.rs

7 years agoupdate UI test
Niko Matsakis [Sat, 25 Mar 2017 09:30:39 +0000 (05:30 -0400)]
update UI test

We no longer give suggestions; this is presumably related to the changes
I made in coercion. However, those suggestions appear to be wrong
anyhow!

7 years agokill the graphviz-flowgraph tests
Niko Matsakis [Fri, 24 Mar 2017 22:47:58 +0000 (18:47 -0400)]
kill the graphviz-flowgraph tests

They are so annoying to update, and haven't caught any bugs afaik.

7 years agodocument `diverges` more correctly
Niko Matsakis [Fri, 24 Mar 2017 17:36:01 +0000 (13:36 -0400)]
document `diverges` more correctly

7 years agofix `X as !` behavior
Niko Matsakis [Fri, 24 Mar 2017 17:35:49 +0000 (13:35 -0400)]
fix `X as !` behavior

7 years agoadd test illustrating current "coerce to `!`" behavior
Niko Matsakis [Fri, 24 Mar 2017 17:21:50 +0000 (13:21 -0400)]
add test illustrating current "coerce to `!`" behavior

7 years agohave coercion supply back the target type
Niko Matsakis [Thu, 23 Mar 2017 01:07:02 +0000 (21:07 -0400)]
have coercion supply back the target type

The `try_coerce` method coerces from a source to a target
type, possibly inserting adjustments. It should guarantee
that the post-adjustment type is a subtype of the target type
(or else that some side-constraint has been registered which will lead
to an error). However, it used to return the (possibly adjusted) source
as the type of the expression rather than the target. This led to
less good downstream errors.

To work around this, the code around blocks -- and particular tail
expressions in blocks -- had some special case manipulation. However,
since that code is now using the more general `CoerceMany` construct (to
account for breaks), it can no longer take advantage of that. This lead
to some regressions in compile-fail tests were errors were reported at
"less good" locations than before.

This change modifies coercions to return the target type when successful
rather the source type. This extends the behavior from blocks to all
coercions. Typically this has limited effect but on a few tests yielded
better errors results (and avoided regressions, of course).

This change also restores the hint about removing semicolons which went
missing (by giving 'force-unit' coercions a chance to add notes etc).

7 years agoremove `Clone` from `FnCtxt`
Niko Matsakis [Wed, 22 Mar 2017 01:21:24 +0000 (21:21 -0400)]
remove `Clone` from `FnCtxt`

7 years agorename `only_has_type_or_fresh_var` to `coercion_target_type`
Niko Matsakis [Fri, 24 Mar 2017 15:51:02 +0000 (11:51 -0400)]
rename `only_has_type_or_fresh_var` to `coercion_target_type`

7 years agofix handling of blocks with `CoerceMany`
Niko Matsakis [Fri, 24 Mar 2017 15:50:36 +0000 (11:50 -0400)]
fix handling of blocks with `CoerceMany`

7 years agocoercion now depends on whether the expression diverges
Niko Matsakis [Fri, 24 Mar 2017 15:48:44 +0000 (11:48 -0400)]
coercion now depends on whether the expression diverges

Before I was checking this in `demand_coerce` but that's not really the
right place. The right place is to move that into the coercion routine
itself.

7 years agoavoid allocating a vector when the coercion sites are known upfront
Niko Matsakis [Tue, 21 Mar 2017 19:37:57 +0000 (15:37 -0400)]
avoid allocating a vector when the coercion sites are known upfront

7 years agocherry-pick over the tests I wrote for the reachability code
Niko Matsakis [Tue, 21 Mar 2017 13:41:41 +0000 (09:41 -0400)]
cherry-pick over the tests I wrote for the reachability code

For the most part, the current code performs similarly, although it
differs in some particulars. I'll be nice to have these tests for
judging future changes, as well.

7 years agopacify the mercilous tidy
Niko Matsakis [Tue, 21 Mar 2017 13:19:49 +0000 (09:19 -0400)]
pacify the mercilous tidy

7 years agoadd regression test for #39808
Niko Matsakis [Sat, 18 Mar 2017 19:22:48 +0000 (15:22 -0400)]
add regression test for #39808

Fixes #39808

7 years agowe now get an extra unreachable code warning in this test
Niko Matsakis [Fri, 17 Mar 2017 15:54:23 +0000 (11:54 -0400)]
we now get an extra unreachable code warning in this test

7 years agomore detailed tests around diverging type variables
Niko Matsakis [Fri, 17 Mar 2017 18:10:00 +0000 (14:10 -0400)]
more detailed tests around diverging type variables

7 years agomake `try_find_coercion_lub` private; we always use `CoerceMany`
Niko Matsakis [Fri, 17 Mar 2017 15:53:15 +0000 (11:53 -0400)]
make `try_find_coercion_lub` private; we always use `CoerceMany`

7 years agowhitespace changes, debug message
Niko Matsakis [Fri, 17 Mar 2017 15:53:02 +0000 (11:53 -0400)]
whitespace changes, debug message

7 years agorewrite `ExprArray` processing to use `CoerceMany`
Niko Matsakis [Fri, 17 Mar 2017 15:52:37 +0000 (11:52 -0400)]
rewrite `ExprArray` processing to use `CoerceMany`

7 years agorework how we handle the type of loops
Niko Matsakis [Fri, 17 Mar 2017 15:49:53 +0000 (11:49 -0400)]
rework how we handle the type of loops

First, we keep a `CoerceMany` now to find the LUB of all the break
expressions. Second, this `CoerceMany` is actually an
`Option<CoerceMany>`, and we store `None` for loops where "break with an
expression" is disallowed. This avoids silly duplicate errors about a
type mismatch, since the loops pass already reports an error that the
break cannot have an expression. Finally, since we now detect an invalid
break target during HIR lowering, refactor `find_loop` to be infallible.

Adjust tests as needed:

- some spans from breaks are slightly different
- break up a single loop into multiple since `CoerceMany` silences
  redundant and derived errors
- add a ui test that we only give on error for loop-break-value

7 years agodo not eagerly convert `!` to a diverging variable
Niko Matsakis [Fri, 17 Mar 2017 15:48:18 +0000 (11:48 -0400)]
do not eagerly convert `!` to a diverging variable

Instead, wait until coercion time.  This has some small effects on a few
tests (one less temporary, generally better errors when trying to call
methods or otherwise "force" the type).

7 years agodocument the diverges flag etc
Niko Matsakis [Fri, 17 Mar 2017 15:10:12 +0000 (11:10 -0400)]
document the diverges flag etc

7 years agoport `return` expressions to use `CoerceMany`
Niko Matsakis [Fri, 17 Mar 2017 13:54:26 +0000 (09:54 -0400)]
port `return` expressions to use `CoerceMany`

This slightly affects the error messages in one particular compile-fail
test.

7 years agoport if-then-else to use `CoerceMany`
Niko Matsakis [Fri, 17 Mar 2017 13:52:38 +0000 (09:52 -0400)]
port if-then-else to use `CoerceMany`

7 years agoport the match code to use `CoerceMany`
Niko Matsakis [Fri, 17 Mar 2017 13:51:31 +0000 (09:51 -0400)]
port the match code to use `CoerceMany`

`match { }` now (correctly?) indicates divergence, which results in more
unreachable warnings. We also avoid fallback to `!` if there is just one
arm (see new test: `match-unresolved-one-arm.rs`).

7 years agointroduce (but do not yet use) a `CoerceMany` API
Niko Matsakis [Fri, 17 Mar 2017 13:39:13 +0000 (09:39 -0400)]
introduce (but do not yet use) a `CoerceMany` API

The existing pattern for coercions is fairly complex. `CoerceMany`
enapsulates it better into a helper.

7 years agoadd an `ObligationCauseCode` we'll use later (`ReturnNoExpression`)
Niko Matsakis [Fri, 17 Mar 2017 13:37:18 +0000 (09:37 -0400)]
add an `ObligationCauseCode` we'll use later (`ReturnNoExpression`)

7 years agoadd a `TypeVariableOrigin` we'll use later (`DerivingFn`)
Niko Matsakis [Fri, 17 Mar 2017 13:36:44 +0000 (09:36 -0400)]
add a `TypeVariableOrigin` we'll use later (`DerivingFn`)

7 years agoadd some debug logs to type_variable.rs
Niko Matsakis [Fri, 17 Mar 2017 13:35:50 +0000 (09:35 -0400)]
add some debug logs to type_variable.rs

7 years agochange the strategy for diverging types
Niko Matsakis [Fri, 3 Mar 2017 02:15:26 +0000 (21:15 -0500)]
change the strategy for diverging types

The new strategy is as follows. First, the `!` type is assigned
in two cases:

- a block with a diverging statement and no tail expression (e.g.,
  `{return;}`);
- any expression with the type `!` is considered diverging.

Second, we track when we are in a diverging state, and we permit a value
of any type to be coerced **into** `!` if the expression that produced
it is diverging. This means that `fn foo() -> ! { panic!(); 22 }`
type-checks, even though the block has a type of `usize`.

Finally, coercions **from** the `!` type to any other are always
permitted.

Fixes #39808.

7 years agorefactor the `targeted_by_break` field
Niko Matsakis [Wed, 22 Mar 2017 15:40:29 +0000 (11:40 -0400)]
refactor the `targeted_by_break` field

In master, this field was an arbitrary node-id (in fact, an id for
something that doesn't even exist in the HIR -- the `catch` node).
Breaks targeting this block used that id. In the newer system, this
field is a boolean, and any breaks targeted this block will use the
id of the block.

7 years agoremove unneeded `&` that now fails to coerce
Niko Matsakis [Thu, 30 Mar 2017 03:52:45 +0000 (23:52 -0400)]
remove unneeded `&` that now fails to coerce

cc https://github.com/rust-lang/rust/issues/40924

7 years agoupdate comment
Niko Matsakis [Thu, 9 Mar 2017 14:57:26 +0000 (09:57 -0500)]
update comment

7 years agorefactor if so that the "then type" is an expression
Niko Matsakis [Thu, 9 Mar 2017 14:53:00 +0000 (09:53 -0500)]
refactor if so that the "then type" is an expression

7 years agoReplace hardcoded forward slash with path::MAIN_SEPARATOR
Thomas Jespersen [Fri, 17 Mar 2017 22:11:27 +0000 (23:11 +0100)]
Replace hardcoded forward slash with path::MAIN_SEPARATOR

Fixes #40149

7 years agoUpdate process.rs
raph [Thu, 30 Mar 2017 07:55:44 +0000 (09:55 +0200)]
Update process.rs

7 years agoAuto merge of #40597 - jseyfried:improve_span_expn_info, r=jseyfried
bors [Thu, 30 Mar 2017 06:48:52 +0000 (06:48 +0000)]
Auto merge of #40597 - jseyfried:improve_span_expn_info, r=jseyfried

macros: improve `Span`'s expansion information

This PR improves `Span`'s expansion information. More specifically:
 - It refactors AST node span construction to preserve expansion information.
   - Today, we only use the underlying tokens' `BytePos`s, throwing away the `ExpnId`s.
   - This improves the accuracy of AST nodes' expansion information, fixing #30506.
 - It refactors `span.expn_id: ExpnId` to `span.ctxt: SyntaxContext` and removes `ExpnId`.
   - This gives all tokens as much hygiene information as `Ident`s.
   - This is groundwork for procedural macros 2.0 `TokenStream` API.
   - This is also groundwork for declarative macros 2.0, which will need this hygiene information for some non-`Ident` tokens.
 - It simplifies processing of spans' expansion information throughout the compiler.
 - It fixes #40649.
 - It fixes #39450 and fixes part of #23480.

r? @nrc

7 years agoImprove `Path` spans.
Jeffrey Seyfried [Wed, 29 Mar 2017 07:17:18 +0000 (07:17 +0000)]
Improve `Path` spans.

7 years agoAuto merge of #40917 - aidanhs:aphs-no-appveyor-cache, r=aturon
bors [Thu, 30 Mar 2017 02:11:55 +0000 (02:11 +0000)]
Auto merge of #40917 - aidanhs:aphs-no-appveyor-cache, r=aturon

Disable appveyor cache

Reverts just appveyor part of https://github.com/rust-lang/rust/pull/40780. r? @aturon

7 years agoDisable appveyor cache
Aidan Hobson Sayers [Thu, 30 Mar 2017 00:33:45 +0000 (01:33 +0100)]
Disable appveyor cache

7 years agoImprove os::linux documentation (#29367)
Camille TJHOA [Mon, 27 Mar 2017 20:42:29 +0000 (22:42 +0200)]
Improve os::linux documentation (#29367)

7 years agoAuto merge of #40911 - frewsxcv:rollup, r=frewsxcv
bors [Wed, 29 Mar 2017 21:08:17 +0000 (21:08 +0000)]
Auto merge of #40911 - frewsxcv:rollup, r=frewsxcv

Rollup of 6 pull requests

- Successful merges: #40780, #40814, #40816, #40832, #40901, #40907
- Failed merges:

7 years agoRollup merge of #40907 - donniebishop:utf8_unchecked_docs, r=steveklabnik
Corey Farwell [Wed, 29 Mar 2017 20:53:33 +0000 (16:53 -0400)]
Rollup merge of #40907 - donniebishop:utf8_unchecked_docs, r=steveklabnik

Linked str in from_utf_unchecked

References #29375. Linked `str` in from_utf_unchecked's documentation to the docs for primitive `str`

7 years agoRollup merge of #40901 - MaloJaffre:fix-double-redirect, r=steveklabnik
Corey Farwell [Wed, 29 Mar 2017 20:53:32 +0000 (16:53 -0400)]
Rollup merge of #40901 - MaloJaffre:fix-double-redirect, r=steveklabnik

Avoid linking to a moved page in rust.html

7 years agoRollup merge of #40832 - pftbest:fix_msp430, r=stjepang
Corey Farwell [Wed, 29 Mar 2017 20:53:32 +0000 (16:53 -0400)]
Rollup merge of #40832 - pftbest:fix_msp430, r=stjepang

libcore: fix compilation on 16bit target (MSP430).

Since PR #40601 has been merged, libcore no longer compiles on MSP430.
The reason is this code in `break_patterns`:
```rust
 let mut random = len;
 random ^= random << 13;
 random ^= random >> 17;
 random ^= random << 5;
 random &= modulus - 1;
```
It assumes that `len` is at least a 32 bit integer.
As a workaround replace `break_patterns` with an empty function for 16bit targets.

cc @stjepang
cc @alexcrichton

7 years agoRollup merge of #40816 - estebank:issue-38321, r=nikomatsakis
Corey Farwell [Wed, 29 Mar 2017 20:53:31 +0000 (16:53 -0400)]
Rollup merge of #40816 - estebank:issue-38321, r=nikomatsakis

Clarify suggetion for field used as method

Instead of

```rust
error: no method named `src_addr` found for type `&wire::ipv4::Repr` in the current scope
   --> src/wire/ipv4.rs:409:34
    |
409 |         packet.set_src_addr(self.src_addr());
    |                                  ^^^^^^^^
    |
note: did you mean to write `self.src_addr`?
   --> src/wire/ipv4.rs:409:34
    |
409 |         packet.set_src_addr(self.src_addr());
    |                                  ^^^^^^^^
```

present

```rust
error: no method named `src_addr` found for type `&wire::ipv4::Repr` in the current scope
   --> src/wire/ipv4.rs:409:34
    |
409 |         packet.set_src_addr(self.src_addr());
    |                                  ^^^^^^^^ field, not a method
    |
    = help: did you mean to write `self.src_addr` instead of `self.src_addr(...)`?
```

Fix #38321.

7 years agoRollup merge of #40814 - abonander:issue_39436, r=jseyfried
Corey Farwell [Wed, 29 Mar 2017 20:53:30 +0000 (16:53 -0400)]
Rollup merge of #40814 - abonander:issue_39436, r=jseyfried

Rustdoc: memoize `pub use`-reexported macros so they don't appear twice in docs

Closes #39436

Preserves existing behavior for `#[macro_reexport]`. `pub use`'d macros are shown as reexports unless inlined, and also correctly obey `#[doc(hidden)]`.

r? @jseyfried

cc @SergioBenitez

7 years agoRollup merge of #40780 - aidanhs:aphs-cache-git-modules, r=alexcrichton
Corey Farwell [Wed, 29 Mar 2017 20:53:29 +0000 (16:53 -0400)]
Rollup merge of #40780 - aidanhs:aphs-cache-git-modules, r=alexcrichton

Attempt to cache git modules

Partial resolution of #40772, appveyor remains to be done once travis looks like it's working ok.

The approach in this PR is based on the `--reference` flag to `git-clone`/`git-submodule --update` and is a compromise based on the current limitations of the tools we're using.

The ideal would be:
1. have a cached pristine copy of rust-lang/rust master in `$HOME/rustsrc` with all submodules initialised
2. clone the PR branch with `git clone --recurse-submodules --reference $HOME/rustsrc git@github.com:rust-lang/rust.git`

This would (in the nonexistent ideal world) use the pristine copy as an object cache for the top level repo and all submodules, transferring over the network only the changes on the branch. Unfortunately, a) there is no way to manually control the initial clone with travis and b) even if there was, cloned submodules don't use the submodules of the reference as an object cache. So the steps we end up with are:

1. have a cached pristine copy of rust-lang/rust master in `$HOME/rustsrc` with all submodules initialised
2. have a cloned PR branch
3. extract the path of each submodule, and explicitly `git submodule update --init --reference $HOME/rustsrc/$module $module` (i.e. point directly to the location of the pristine submodule repo) for each one

I've also taken some care to make this forward compatible, both for adding and removing submodules.

r? @alexcrichton

7 years agoLinked str in from_utf_unchecked
Donnie Bishop [Wed, 29 Mar 2017 17:21:31 +0000 (13:21 -0400)]
Linked str in from_utf_unchecked

7 years agorustbuild: Update bootstrap compiler
Alex Crichton [Tue, 14 Mar 2017 19:22:38 +0000 (12:22 -0700)]
rustbuild: Update bootstrap compiler

Now that we've also updated cargo's release process this commit also changes the
download location of Cargo from Cargos archives back to the static.r-l.o
archives. This should ensure that the Cargo download is the exact Cargo paired
with the rustc that we release.

7 years agoAuto merge of #40899 - frewsxcv:rollup, r=frewsxcv
bors [Wed, 29 Mar 2017 15:38:11 +0000 (15:38 +0000)]
Auto merge of #40899 - frewsxcv:rollup, r=frewsxcv

Rollup of 5 pull requests

- Successful merges: #40720, #40786, #40841, #40866, #40897
- Failed merges:

7 years agoRemoving trailing spaces
raph [Wed, 29 Mar 2017 14:30:39 +0000 (16:30 +0200)]
Removing trailing spaces

7 years agoadding ///
raph [Wed, 29 Mar 2017 14:19:23 +0000 (16:19 +0200)]
adding ///

7 years agoAdd example to std::process::abort
raph [Wed, 29 Mar 2017 13:59:22 +0000 (15:59 +0200)]
Add example to std::process::abort

7 years agoAvoid linking to a moved page in rust.html
Malo Jaffré [Wed, 29 Mar 2017 13:38:47 +0000 (15:38 +0200)]
Avoid linking to a moved page in rust.html

7 years agoRollup merge of #40897 - irfanhudda:fix-typo-char, r=BurntSushi
Corey Farwell [Wed, 29 Mar 2017 12:57:08 +0000 (08:57 -0400)]
Rollup merge of #40897 - irfanhudda:fix-typo-char, r=BurntSushi

Fix typo in libcore/char.rs

7 years agoRollup merge of #40866 - projektir:once_docs, r=estebank
Corey Farwell [Wed, 29 Mar 2017 12:57:07 +0000 (08:57 -0400)]
Rollup merge of #40866 - projektir:once_docs, r=estebank

Adding linking for Once docs #29377

Linking everything around `Once`, `ONCE_INIT`, and `OnceState`.

7 years agoRollup merge of #40841 - arielb1:immutable-blame, r=pnkfelix
Corey Farwell [Wed, 29 Mar 2017 12:57:06 +0000 (08:57 -0400)]
Rollup merge of #40841 - arielb1:immutable-blame, r=pnkfelix

borrowck: consolidate `mut` suggestions

This converts all of borrowck's `mut` suggestions to a new
`mc::ImmutabilityBlame` API instead of the current mix of various hacks.

Fixes #35937.
Fixes #40823.
Fixes #40859.

cc @estebank
r? @pnkfelix

7 years agoRollup merge of #40786 - frewsxcv:unstable-book-remaining-features, r=steveklabnik
Corey Farwell [Wed, 29 Mar 2017 12:57:04 +0000 (08:57 -0400)]
Rollup merge of #40786 - frewsxcv:unstable-book-remaining-features, r=steveklabnik

Add all unstable features to Unstable Book.

Add all unstable features to the Unstable Book, also remove a few that
either no longer exist or were promoted to stable.

These changes were extracted out of
https://github.com/rust-lang/rust/pull/40694

7 years agoRollup merge of #40720 - mitsuhiko:feature/rev-key, r=BurntSushi
Corey Farwell [Wed, 29 Mar 2017 12:57:03 +0000 (08:57 -0400)]
Rollup merge of #40720 - mitsuhiko:feature/rev-key, r=BurntSushi

Added core::cmp::Reverse for sort_by_key reverse sorting

I'm not sure if this is the best way to go about proposing this feature but it's pretty useful. It allows you to use `sort_by_key` and return tuples where a single item is then reversed to how it normally sorts.

I quite miss something like this in Rust currently though I'm not sure if this is the best way to implement it.

7 years agoRemove unused feature from error index generator
Malo Jaffré [Wed, 29 Mar 2017 12:31:00 +0000 (14:31 +0200)]
Remove unused feature from error index generator

Remove feature `rustdoc`.

7 years agoAuto merge of #40540 - cramertj:check-bodies-as-query, r=nikomatsakis
bors [Wed, 29 Mar 2017 11:55:41 +0000 (11:55 +0000)]
Auto merge of #40540 - cramertj:check-bodies-as-query, r=nikomatsakis

On-demandify the typechecking of item bodies

r? @nikomatsakis

7 years agoFix typo in libcore/char.rs
Irfan Hudda [Wed, 29 Mar 2017 11:20:09 +0000 (16:50 +0530)]
Fix typo in libcore/char.rs

7 years agoRefactor how spans are combined in the parser.
Jeffrey Seyfried [Wed, 15 Mar 2017 00:22:48 +0000 (00:22 +0000)]
Refactor how spans are combined in the parser.

7 years agoMinor tweaks to retry utility
Aidan Hobson Sayers [Wed, 29 Mar 2017 09:47:43 +0000 (10:47 +0100)]
Minor tweaks to retry utility

7 years agoUpdated tracking issue for cmp::Reverse
Armin Ronacher [Wed, 29 Mar 2017 07:06:52 +0000 (09:06 +0200)]
Updated tracking issue for cmp::Reverse

7 years agoAuto merge of #40338 - GuillaumeGomez:pulldown-switch, r=frewsxcv,steveklabnik
bors [Wed, 29 Mar 2017 07:06:13 +0000 (07:06 +0000)]
Auto merge of #40338 - GuillaumeGomez:pulldown-switch, r=frewsxcv,steveklabnik

Replace hoedown with pull in rustdoc

cc @rust-lang/docs

7 years agoFixing formatting issues #29377
projektir [Wed, 29 Mar 2017 04:52:16 +0000 (00:52 -0400)]
Fixing formatting issues #29377

7 years agoMake overlapping_inherent_impls lint a hard error
topecongiro [Wed, 22 Mar 2017 07:17:15 +0000 (16:17 +0900)]
Make overlapping_inherent_impls lint a hard error

7 years agoAdding linking for Once docs #29377
projektir [Mon, 27 Mar 2017 20:10:44 +0000 (16:10 -0400)]
Adding linking for Once docs #29377

7 years agoAdd all unstable features to Unstable Book.
Corey Farwell [Sun, 19 Mar 2017 14:45:05 +0000 (10:45 -0400)]
Add all unstable features to Unstable Book.

Add all unstable features to the Unstable Book, also remove a few that
either no longer exist or were promoted to stable.

These changes were extracted out of
https://github.com/rust-lang/rust/pull/40694

7 years agoAuto merge of #40889 - frewsxcv:rollup, r=frewsxcv
bors [Wed, 29 Mar 2017 03:54:09 +0000 (03:54 +0000)]
Auto merge of #40889 - frewsxcv:rollup, r=frewsxcv

Rollup of 5 pull requests

- Successful merges: #40682, #40731, #40783, #40838, #40864
- Failed merges:

7 years agoOn-demandify the typechecking of item bodies
Taylor Cramer [Wed, 15 Mar 2017 05:46:36 +0000 (22:46 -0700)]
On-demandify the typechecking of item bodies