from_str has an impl for uint, not Option<uint>
Induce an empty loan for the value being matched in match expressions

This is to make sure it hadn't been moved if there are no bindings
in any of the arms.

Fixes #17385.
Update CONTRIBUTING.md with new issues policy
Revert "Prefer bundled gcc.  External gcc can still be used if one provides a full path via -Clinker=..."

This reverts commit 94f05324fee6cd4637adc01f441fafd09e678668.
Lint stability now checks macro arguments.

Closes #17185.
Update calls of deprecated functions in macros.

Fallout of #17185.
Fix deprecation warnings in check-docs.

Fallout of closing #17185.
remove references to owned and managed pointers in clone docs

Fixes #17445.
doc: Removing repeated variable name to make it less ambiguious
auto merge of #17286 : vberger/rust/deprecated_in_macros, r=aturon

Closes #17185.

The stability lint will now check code generated by macro expansion. It will allow to detect :
- arguments passed to macros using deprecated (and others) items
- macro expansion generating code using deprecated items due to its arguments (hence the second commit, fixing such issue found in libcollections)

Checking is still done at expansion, but it will also detect a macro explicitly using a deprecated item in its definition.
auto merge of #17432 : nick29581/rust/contrib, r=brson

r? @brson
librustc: Forbid private types in public APIs.

This breaks code like:

    struct Foo {
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

Change this code to:

    pub struct Foo {    // note `pub`
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

The `visible_private_types` lint has been removed, since it is now an
error to attempt to expose a private type in a public API. In its place
a `#[feature(visible_private_types)]` gate has been added.

Closes #16463.

RFC #48.

[breaking-change]
librustc: Parse and resolve higher-rank lifetimes in traits.

They will ICE during typechecking if used, because they depend on trait
reform.

This is part of unboxed closures.
auto merge of #17401 : pcwalton/rust/private-items-in-public-apis, r=alexcrichton

This breaks code like:

    struct Foo {
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

Change this code to:

    pub struct Foo {    // note `pub`
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

The `visible_private_types` lint has been removed, since it is now an
error to attempt to expose a private type in a public API.

Closes #16463.

RFC #48.

[breaking-change]

r? @alexcrichton
auto merge of #17443 : alexcrichton/rust/issue-17442, r=brson

...des a full path via -Clinker=..."

This reverts commit 94f05324fee6cd4637adc01f441fafd09e678668.
auto merge of #17446 : steveklabnik/rust/gh17445, r=alexcrichton

Fixes #17445.
auto merge of #17456 : alfie/rust/master, r=steveklabnik

While reading the intro, I was confused as to why there were two variables named "numbers". Unless I'm mistaken and it's not necessary, let's get rid of it to make it clearer.
auto merge of #17028 : pcwalton/rust/higher-rank-trait-lifetimes, r=pnkfelix

They will ICE during typechecking if used, because they depend on trait
reform.

This is part of unboxed closures.

r? @nikomatsakis
auto merge of #17413 : jakub-/rust/issue-17385, r=pcwalton

This is to make sure it hadn't been moved if there are no bindings
in any of the arms.

Fixes #17385.
auto merge of #17366 : ohazi/rust/master, r=steveklabnik

See: http://doc.rust-lang.org/std/from_str/trait.FromStr.html
```
let input_num = from_str::<Option<uint>>("5");
```
```
<anon>:2:21: 2:45 error: failed to find an implementation of trait std::from_str::FromStr for core::option::Option<uint>
<anon>:2     let input_num = from_str::<Option<uint>>("5");
                             ^~~~~~~~~~~~~~~~~~~~~~~~
```