Remove unnecessary return
std::at_vec: add benchmarks
librustc: Allow vector repeat exprs in statics.
Add RngUtils::sample() method for reservoir sampling from iterators
Remove unused automatic cfg bindings Fixes #7169
Add test for repeat expr in statics.
Add a bunch of tests for closed issues

Closes #3907
Closes #5493
Closes #4464
Closes #4759
Closes #5666
Closes #5884
Closes #5926
Closes #6318
Closes #6557
Closes #6898
Closes #6919
Closes #7222
rustc: allow @ as-patterns to move when the sub-pattern contains no bindings.

A pattern like `foo @ Foo(Bar(*), _)` should be legal, even if `foo` moves,
since the subpatterns are purely structural.

Fixes #3761.
std: Move the iterator param on FromIterator and Extendable to the method.

If they are on the trait then it is extremely annoying to use them as
generic parameters to a function, e.g. with the iterator param on the trait
itself, if one was to pass an Extendable<int> to a function that filled it
either from a Range or a Map<VecIterator>, one needs to write something
like:

    fn foo<E: Extendable<int, Range<int>> +
              Extendable<int, Map<&'self int, int, VecIterator<int>>>
          (e: &mut E, ...) { ... }

since using a generic, i.e. `foo<E: Extendable<int, I>, I: Iterator<int>>`
means that `foo` takes 2 type parameters, and the caller has to specify them
(which doesn't work anyway, as they'll mismatch with the iterators used in
`foo` itself).

This patch changes it to:

    fn foo<E: Extendable<int>>(e: &mut E, ...) { ... }
Rewrite Saturating in terms of CheckedAdd/CheckedSub
Merge pull request #8479 from catamorphism/derived-errors

rustc: Eliminate a derived error in check::_match
auto merge of #8480 : cmr/rust/tutorial, r=metajack
register new snapshots
Switch to new <V:Visitor> visitor (rather than @Visitor).

Alpha-renamed top-level visit_* functions to walk_*.
(Motivation: Distinguish visit action and recursive traversal.)

Abstract over `&mut self` rather than over `@mut self`.

This required some acrobatics, notably the

  `impl<E> Visitor<E> for @mut Visitor<E>`

and corresponding introduction of `@mut Visitor` and some local `let
mut` bindings.

Remove oldvisit reference.

Added default implementations for all of the Visitor trait methods.

Note that both `visit_expr_post` and `visit_ty` are no-op's by
default, just like they are in `oldvisit::default_visitor`.

Refactoring: extract logic to ease swapping visit for oldvisit (hopefully).
Switch metadata::encoder to <V:Visitor> trait.

placate make tidy.  Remove dead code.
Switch borrowck::gather_loans to <V:Visitor> visit API.

Placate make tidy.  Remove unnecessary references to oldvisit.
Switch main borrowck to <V:Visitor> trait API.

fix borrowck/mod.rs to deal with fn_kind enum fallout.
auto merge of #8525 : graydon/rust/2013-08-14-register-snapshots, r=brson

r? someone
auto merge of #8481 : cmr/rust/bench/std/at_vec, r=graydon
auto merge of #8483 : luqmana/rust/rexprs, r=catamorphism

Fixes #8152.