]> git.lizzy.rs Git - rust.git/log
rust.git
9 years agoRename FnStyle trait to Unsafety.
Niko Matsakis [Tue, 9 Dec 2014 15:36:46 +0000 (10:36 -0500)]
Rename FnStyle trait to Unsafety.

9 years agoauto merge of #19725 : vadimcn/rust/inst-path, r=alexcrichton
bors [Sun, 14 Dec 2014 16:07:32 +0000 (16:07 +0000)]
auto merge of #19725 : vadimcn/rust/inst-path, r=alexcrichton

Change default installation directory to %SYSTEMDRIVE%\Rust.
Modify user PATH, rather than system PATH.

9 years agolibcore: make iterator adaptors `Clone`able
Jorge Aparicio [Sun, 14 Dec 2014 03:04:23 +0000 (22:04 -0500)]
libcore: make iterator adaptors `Clone`able

9 years agoInvariantLifetime is Copy-able
Jake Goulding [Sun, 14 Dec 2014 14:48:56 +0000 (09:48 -0500)]
InvariantLifetime is Copy-able

Both ContravariantLifetime and CovariantLifetime are marked as Copy,
so it makes sense for InvariantLifetime to be as well.

9 years agoModify `regex::Captures::{at,name}` to return `Option`
Eric Kidd [Sat, 13 Dec 2014 18:33:18 +0000 (13:33 -0500)]
Modify `regex::Captures::{at,name}` to return `Option`

Closes #14602.  As discussed in that issue, the existing `at` and `name`
functions represent two different results with the empty string:

1. Matched the empty string.
2. Did not match anything.

Consider the following example.  This regex has two named matched
groups, `key` and `value`. `value` is optional:

```rust
// Matches "foo", "foo;v=bar" and "foo;v=".
regex!(r"(?P<key>[a-z]+)(;v=(?P<value>[a-z]*))?");
```

We can access `value` using `caps.name("value")`, but there's no way for
us to distinguish between the `"foo"` and `"foo;v="` cases.

Early this year, @BurntSushi recommended modifying the existing `at` and
`name` functions to return `Option`, instead of adding new functions to
the API.

This is a [breaking-change], but the fix is easy:

- `refs.at(1)` becomes `refs.at(1).unwrap_or("")`.
- `refs.name(name)` becomes `refs.name(name).unwrap_or("")`.

9 years agoauto merge of #19338 : nikomatsakis/rust/unboxed-closure-purge-the-proc, r=acrichto
bors [Sun, 14 Dec 2014 11:37:27 +0000 (11:37 +0000)]
auto merge of #19338 : nikomatsakis/rust/unboxed-closure-purge-the-proc, r=acrichto

They are replaced with unboxed closures.

cc @pcwalton @aturon

This is a [breaking-change]. Mostly, uses of `proc()` simply need to be converted to `move||` (unboxed closures), but in some cases the adaptations required are more complex (particularly for library authors). A detailed write-up can be found here: http://smallcultfollowing.com/babysteps/blog/2014/11/26/purging-proc/

The commits are ordered to emphasize the more important changes, but are not truly standalone.

9 years agoauto merge of #19690 : barosl/rust/struct-variant-as-a-function-ice, r=alexcrichton
bors [Sun, 14 Dec 2014 09:22:24 +0000 (09:22 +0000)]
auto merge of #19690 : barosl/rust/struct-variant-as-a-function-ice, r=alexcrichton

Unlike a tuple variant constructor which can be called as a function, a struct variant constructor is not a function, so cannot be called.

If the user tries to assign the constructor to a variable, an ICE occurs, because there is no way to use it later. So we should stop the constructor from being used like that.

A similar mechanism already exists for a normal struct, as it prohibits a struct from being resolved. This commit does the same for a struct variant.

This commit also includes some changes to the existing tests.

Fixes #19452.

9 years agoStop using diagnostics to avoid merge conflicts.
Niko Matsakis [Sat, 13 Dec 2014 10:06:36 +0000 (05:06 -0500)]
Stop using diagnostics to avoid merge conflicts.

9 years agoTemporarily remove issue #14039; it is fixed and re-added by PR #19438
Niko Matsakis [Thu, 4 Dec 2014 01:02:19 +0000 (20:02 -0500)]
Temporarily remove issue #14039; it is fixed and re-added by PR #19438

9 years agoAdd some tests for obsolete code, sugar used in appropriate ways.
Niko Matsakis [Thu, 27 Nov 2014 11:59:21 +0000 (06:59 -0500)]
Add some tests for obsolete code, sugar used in appropriate ways.

9 years agoUpdate emacs and vi modes.
Niko Matsakis [Wed, 26 Nov 2014 15:03:11 +0000 (10:03 -0500)]
Update emacs and vi modes.

9 years agoUpdate guide/intro to take into account the removal of `proc`.
Niko Matsakis [Wed, 26 Nov 2014 15:02:46 +0000 (10:02 -0500)]
Update guide/intro to take into account the removal of `proc`.

cc @steveklabnick

9 years agoDelete tests that are either no longer relevant or which have
Niko Matsakis [Thu, 27 Nov 2014 11:44:05 +0000 (06:44 -0500)]
Delete tests that are either no longer relevant or which have
duplicate tests around object types.

9 years agoMostly rote conversion of `proc()` to `move||` (and occasionally `Thunk::new`)
Niko Matsakis [Wed, 26 Nov 2014 13:12:18 +0000 (08:12 -0500)]
Mostly rote conversion of `proc()` to `move||` (and occasionally `Thunk::new`)

9 years agoRewrite WorkItem not to use `proc()`.
Niko Matsakis [Wed, 26 Nov 2014 15:07:58 +0000 (10:07 -0500)]
Rewrite WorkItem not to use `proc()`.

9 years agoPatch rustdoc to include missing types, make the match exhaustive
Niko Matsakis [Wed, 26 Nov 2014 15:11:27 +0000 (10:11 -0500)]
Patch rustdoc to include missing types, make the match exhaustive
to prevent such oversights in the future.

9 years agoRemove `proc` types/expressions from the parser, compiler, and
Niko Matsakis [Wed, 26 Nov 2014 15:07:22 +0000 (10:07 -0500)]
Remove `proc` types/expressions from the parser, compiler, and
language. Recommend `move||` instead.

9 years agoAdjust feature gates to allow for parenthetical notation to be used
Niko Matsakis [Tue, 25 Nov 2014 16:45:50 +0000 (11:45 -0500)]
Adjust feature gates to allow for parenthetical notation to be used
with the fn traits

9 years agoPurge the hack that allows `FnOnce` to be used with a by-value self method. Besides...
Niko Matsakis [Thu, 20 Nov 2014 17:12:38 +0000 (12:12 -0500)]
Purge the hack that allows `FnOnce` to be used with a by-value self method.  Besides being yucky, it will cause problems if we try to make all traits implement themselves, which would make a lot of things in life easier. Also, it was inextricably linked to `Box`, which was not the intention.  We can work around its absence, so better to reimplement it later in a more thorough fashion.

9 years agoRewrite threading infrastructure, introducing `Thunk` to represent
Niko Matsakis [Wed, 26 Nov 2014 15:10:52 +0000 (10:10 -0500)]
Rewrite threading infrastructure, introducing `Thunk` to represent
boxed `FnOnce` closures.

9 years agoauto merge of #19677 : japaric/rust/deprecate-tupleN, r=alexcrichton
bors [Sun, 14 Dec 2014 07:07:31 +0000 (07:07 +0000)]
auto merge of #19677 : japaric/rust/deprecate-tupleN, r=alexcrichton

r? @alexcrichton or anyone else
closes #18006

9 years agolibsyntax: Output where clauses in pretty printer for structs.
Luqman Aden [Sun, 14 Dec 2014 05:51:42 +0000 (00:51 -0500)]
libsyntax: Output where clauses in pretty printer for structs.

9 years agolibsyntax: Make deriving also respect where bounds.
Luqman Aden [Sun, 14 Dec 2014 05:35:35 +0000 (00:35 -0500)]
libsyntax: Make deriving also respect where bounds.

9 years agoFix mispelling in char.rs error message
mchaput [Sun, 14 Dec 2014 05:48:09 +0000 (00:48 -0500)]
Fix mispelling in char.rs error message

Error message has wrong spelling ("radix is to high").

9 years agorustc: Start the deprecation of libserialize
Alex Crichton [Thu, 11 Dec 2014 20:16:30 +0000 (12:16 -0800)]
rustc: Start the deprecation of libserialize

The primary focus of Rust's stability story at 1.0 is the standard library.
All other libraries distributed with the Rust compiler are planned to
be #[unstable] and therfore only accessible on the nightly channel of Rust. One
of the more widely used libraries today is libserialize, Rust's current solution
for encoding and decoding types.

The current libserialize library, however, has a number of drawbacks:

* The API is not ready to be stabilize as-is and we will likely not have enough
  resources to stabilize the API for 1.0.
* The library is not necessarily the speediest implementations with alternatives
  being developed out-of-tree (e.g. serde from erickt).
* It is not clear how the API of Encodable/Decodable can evolve over time while
  maintaining backwards compatibility.

One of the major pros to the current libserialize, however, is
`deriving(Encodable, Decodable)` as short-hands for enabling serializing and
deserializing a type. This is unambiguously useful functionality, so we cannot
simply deprecate the in-tree libserialize in favor of an external crates.io
implementation.

For these reasons, this commit starts off a stability story for libserialize by
following these steps:

1. The deriving(Encodable, Decodable) modes will be deprecated in favor of a
   renamed deriving(RustcEncodable, RustcDecodable).
2. The in-tree libserialize will be deprecated in favor of an external
   rustc-serialize crate shipped on crates.io. The contents of the crate will be
   the same for now (but they can evolve separately).
3. At 1.0 serialization will be performed through
   deriving(RustcEncodable, RustcDecodable) and the rustc-serialize crate. The
   expansions for each deriving mode will change from `::serialize::foo` to
   `::rustc_serialize::foo`.

This story will require that the compiler freezes its implementation of
`RustcEncodable` deriving for all of time, but this should be a fairly minimal
maintenance burden. Otherwise the crate in crates.io must always maintain the
exact definition of its traits, but the implementation of json, for example, can
continue to evolve in the semver-sense.

The major goal for this stabilization effort is to pave the road for a new
official serialization crate which can replace the current one, solving many of
its downsides in the process. We are not assuming that this will exist for 1.0,
hence the above measures. Some possibilities for replacing libserialize include:

* If plugins have a stable API, then any crate can provide a custom `deriving`
  mode (will require some compiler work). This means that any new serialization
  crate can provide its own `deriving` with its own backing
  implementation, entirely obsoleting the current libserialize and fully
  replacing it.

* Erick is exploring the possibility of code generation via preprocessing Rust
  source files in the near term until plugins are stable. This strategy would
  provide the same ergonomic benefit that `deriving` does today in theory.

So, in summary, the current libserialize crate is being deprecated in favor of
the crates.io-based rustc-serialize crate where the `deriving` modes are
appropriately renamed. This opens up space for a later implementation of
serialization in a more official capacity while allowing alternative
implementations to be explored in the meantime.

Concretely speaking, this change adds support for the `RustcEncodable` and
`RustcDecodable` deriving modes. After a snapshot is made warnings will be
turned on for usage of `Encodable` and `Decodable` as well as deprecating the
in-tree libserialize crate to encurage users to use rustc-serialize instead.

9 years agoChange `VecMap`'s iterators to use wrapper structs instead of typedefs.
Chase Southwood [Thu, 11 Dec 2014 05:12:31 +0000 (23:12 -0600)]
Change `VecMap`'s iterators to use wrapper structs instead of typedefs.

Using a type alias for iterator implementations is fragile since this
exposes the implementation to users of the iterator, and any changes
could break existing code.

This commit changes the iterators of `VecMap` to use
proper new types, rather than type aliases.  However, since it is
fair-game to treat a type-alias as the aliased type, this is a:

[breaking-change].

9 years agolibcollections: convert `BTreeSet` binops to by value
Jorge Aparicio [Sat, 13 Dec 2014 21:34:36 +0000 (16:34 -0500)]
libcollections: convert `BTreeSet` binops to by value

9 years agolibcollections: convert `TreeSet` binops to by value
Jorge Aparicio [Sat, 13 Dec 2014 21:29:02 +0000 (16:29 -0500)]
libcollections: convert `TreeSet` binops to by value

9 years agolibcollections: convert `TrieSet` binops to by value
Jorge Aparicio [Sat, 6 Dec 2014 00:39:57 +0000 (19:39 -0500)]
libcollections: convert `TrieSet` binops to by value

9 years agoTest binops move semantics
Jorge Aparicio [Wed, 3 Dec 2014 07:34:49 +0000 (02:34 -0500)]
Test binops move semantics

9 years agolibcollections: add commutative version of `Vec`/`String` addition
Jorge Aparicio [Wed, 3 Dec 2014 07:22:41 +0000 (02:22 -0500)]
libcollections: add commutative version of `Vec`/`String` addition

9 years agoAddress Niko's comments
Jorge Aparicio [Wed, 3 Dec 2014 05:39:53 +0000 (00:39 -0500)]
Address Niko's comments

9 years agolibcore: fix doctests
Jorge Aparicio [Tue, 2 Dec 2014 00:10:12 +0000 (19:10 -0500)]
libcore: fix doctests

9 years agolibstd: fix unit tests
Jorge Aparicio [Mon, 1 Dec 2014 22:55:28 +0000 (17:55 -0500)]
libstd: fix unit tests

9 years agolibcoretest: fix unit tests
Jorge Aparicio [Mon, 1 Dec 2014 23:04:46 +0000 (18:04 -0500)]
libcoretest: fix unit tests

9 years agolibcollections: fix unit tests
Jorge Aparicio [Mon, 1 Dec 2014 23:02:39 +0000 (18:02 -0500)]
libcollections: fix unit tests

9 years agoFix compile-fail tests
Jorge Aparicio [Mon, 1 Dec 2014 22:52:10 +0000 (17:52 -0500)]
Fix compile-fail tests

9 years agoFix run-pass tests
Jorge Aparicio [Mon, 1 Dec 2014 22:33:22 +0000 (17:33 -0500)]
Fix run-pass tests

9 years agoTest that binops consume their arguments
Jorge Aparicio [Mon, 1 Dec 2014 21:52:13 +0000 (16:52 -0500)]
Test that binops consume their arguments

9 years agolibrustdoc: convert `Counts` binops to by value
Jorge Aparicio [Mon, 1 Dec 2014 21:47:48 +0000 (16:47 -0500)]
librustdoc: convert `Counts` binops to by value

9 years agolibrustc: convert `TypeContents` binops to by value
Jorge Aparicio [Mon, 1 Dec 2014 21:34:57 +0000 (16:34 -0500)]
librustc: convert `TypeContents` binops to by value

9 years agolibsyntax: convert `LockstepIterSize` binops to by value
Jorge Aparicio [Mon, 1 Dec 2014 20:09:03 +0000 (15:09 -0500)]
libsyntax: convert `LockstepIterSize` binops to by value

9 years agolibsyntax: convert `BytePos`/`CharPos` binops to by value
Jorge Aparicio [Mon, 1 Dec 2014 19:59:55 +0000 (14:59 -0500)]
libsyntax: convert `BytePos`/`CharPos` binops to by value

9 years agolibtime: convert `Timespec` binops to by value
Jorge Aparicio [Mon, 1 Dec 2014 19:54:31 +0000 (14:54 -0500)]
libtime: convert `Timespec` binops to by value

9 years agolibstd: convert `Duration` binops to by value
Jorge Aparicio [Mon, 1 Dec 2014 19:32:36 +0000 (14:32 -0500)]
libstd: convert `Duration` binops to by value

9 years agolibstd: convert `BitFlags` binops to by value
Jorge Aparicio [Mon, 1 Dec 2014 19:29:47 +0000 (14:29 -0500)]
libstd: convert `BitFlags` binops to by value

9 years agolibcollections: make `EnumSet` binops by value
Jorge Aparicio [Mon, 1 Dec 2014 19:10:04 +0000 (14:10 -0500)]
libcollections: make `EnumSet` binops by value

9 years agolibcollections: String + &str
Jorge Aparicio [Mon, 1 Dec 2014 19:08:56 +0000 (14:08 -0500)]
libcollections: String + &str

9 years agolibcollections: Vec<T> + &[T]
Jorge Aparicio [Mon, 1 Dec 2014 19:01:15 +0000 (14:01 -0500)]
libcollections: Vec<T> + &[T]

9 years agolibcore: fix move semantics fallout
Jorge Aparicio [Mon, 1 Dec 2014 20:52:17 +0000 (15:52 -0500)]
libcore: fix move semantics fallout

9 years agolibcore: convert binop traits to by value
Jorge Aparicio [Mon, 1 Dec 2014 18:00:23 +0000 (13:00 -0500)]
libcore: convert binop traits to by value

9 years agoTell regionck which binops are by value
Jorge Aparicio [Mon, 1 Dec 2014 20:34:36 +0000 (15:34 -0500)]
Tell regionck which binops are by value

9 years agoTell expr_use_visitor which binops are by value
Jorge Aparicio [Mon, 1 Dec 2014 19:47:06 +0000 (14:47 -0500)]
Tell expr_use_visitor which binops are by value

9 years agoTell trans which binops are by value
Jorge Aparicio [Mon, 1 Dec 2014 18:18:18 +0000 (13:18 -0500)]
Tell trans which binops are by value

9 years agoTell typeck which binops are by value
Jorge Aparicio [Mon, 1 Dec 2014 17:23:56 +0000 (12:23 -0500)]
Tell typeck which binops are by value

9 years agosyntax/ast_util: add `is_by_value_binop()`
Jorge Aparicio [Mon, 1 Dec 2014 16:34:28 +0000 (11:34 -0500)]
syntax/ast_util: add `is_by_value_binop()`

9 years agoauto merge of #19669 : alfie/rust/master, r=sanxiyn
bors [Sun, 14 Dec 2014 01:07:31 +0000 (01:07 +0000)]
auto merge of #19669 : alfie/rust/master, r=sanxiyn

9 years agoGet rid of all the remaining uses of `refN`/`valN`/`mutN`/`TupleN`
Jorge Aparicio [Sat, 13 Dec 2014 15:04:55 +0000 (10:04 -0500)]
Get rid of all the remaining uses of `refN`/`valN`/`mutN`/`TupleN`

9 years agolibcore: allow deprecated `valN` methods on doc tests
Jorge Aparicio [Tue, 9 Dec 2014 22:47:11 +0000 (17:47 -0500)]
libcore: allow deprecated `valN` methods on doc tests

9 years agolibgraphviz: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 20:15:10 +0000 (15:15 -0500)]
libgraphviz: use tuple indexing

9 years agolibcoretest: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 19:22:07 +0000 (14:22 -0500)]
libcoretest: use tuple indexing

9 years agolibrustdoc: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:58:15 +0000 (12:58 -0500)]
librustdoc: use tuple indexing

9 years agolibrustc_trans: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:48:52 +0000 (12:48 -0500)]
librustc_trans: use tuple indexing

9 years agolibrustc: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:21:18 +0000 (12:21 -0500)]
librustc: use tuple indexing

9 years agolibsyntax: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:17:24 +0000 (12:17 -0500)]
libsyntax: use tuple indexing

9 years agolibregex: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:12:12 +0000 (12:12 -0500)]
libregex: use tuple indexing

9 years agolibstd: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:09:31 +0000 (12:09 -0500)]
libstd: use tuple indexing

9 years agolibcollections: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:03:45 +0000 (12:03 -0500)]
libcollections: use tuple indexing

9 years agolibunicode: use tuple indexing
Jorge Aparicio [Tue, 9 Dec 2014 17:00:55 +0000 (12:00 -0500)]
libunicode: use tuple indexing

9 years agoDeprecate the `TupleN` traits
Jorge Aparicio [Tue, 9 Dec 2014 16:44:56 +0000 (11:44 -0500)]
Deprecate the `TupleN` traits

9 years agoauto merge of #19467 : japaric/rust/uc, r=alexcrichton
bors [Sat, 13 Dec 2014 22:57:21 +0000 (22:57 +0000)]
auto merge of #19467 : japaric/rust/uc, r=alexcrichton

This PR moves almost all our current uses of closures, both in public API and internal uses, to the new "unboxed" closures system.

In most cases, downstream code that *only uses* closures will continue to work as it is. The reason is that the `|| {}` syntax can be inferred either as a boxed or an "unboxed" closure according to the context. For example the following code will continue to work:

``` rust
some_option.map(|x| x.transform_with(upvar))
```

And will get silently upgraded to an "unboxed" closure.

In some other cases, it may be necessary to "annotate" which `Fn*` trait the closure implements:

```
// Change this
|x| { /* body */}
// to either of these
|: x| { /* body */}  // closure implements the FnOnce trait
|&mut : x| { /* body */}  // FnMut
|&: x| { /* body */}  // Fn
```

This mainly occurs when the closure is assigned to a variable first, and then passed to a function/method.

``` rust
let closure = |: x| x.transform_with(upvar);
some.option.map(closure)
```

(It's very likely that in the future, an improved inference engine will make this annotation unnecessary)

Other cases that require annotation are closures that implement some trait via a blanket `impl`, for example:

- `std::finally::Finally`
- `regex::Replacer`
- `std::str::CharEq`

``` rust
string.trim_left_chars(|c: char| c.is_whitespace())
//~^ ERROR: the trait `Fn<(char,), bool>` is not implemented for the type `|char| -> bool`
string.trim_left_chars(|&: c: char| c.is_whitespace())  // OK
```

Finally, all implementations of traits that contain boxed closures in the arguments of their methods are now broken. And will need to be updated to use unboxed closures. These are the main affected traits:

- `serialize::Decoder`
- `serialize::DecoderHelpers`
- `serialize::Encoder`
- `serialize::EncoderHelpers`
- `rustrt::ToCStr`

For example, change this:

``` rust
// libserialize/json.rs
impl<'a> Encoder<io::IoError> for Encoder<'a> {
    fn emit_enum(&mut self,
                 _name: &str,
                 f: |&mut Encoder<'a>| -> EncodeResult) -> EncodeResult {
        f(self)
    }
}
```

to:

``` rust
// libserialize/json.rs
impl<'a> Encoder<io::IoError> for Encoder<'a> {
    fn emit_enum<F>(&mut self, _name: &str, f: F) -> EncodeResult where
        F: FnOnce(&mut Encoder<'a>) -> EncodeResult
    {
        f(self)
    }
}
```

[breaking-change]

---

### How the `Fn*` bound has been selected

I've chosen the bounds to make the functions/structs as "generic as possible", i.e. to let them allow the maximum amount of input.

- An `F: FnOnce` bound accepts the three kinds of closures: `|:|`, `|&mut:|` and `|&:|`.
- An `F: FnMut` bound only accepts "non-consuming" closures: `|&mut:|` and `|&:|`.
- An `F: Fn` bound only accept the "immutable environment" closures: `|&:|`.

This means that whenever possible the `FnOnce` bound has been used, if the `FnOnce` bound couldn't be used, then the `FnMut` was used. The `Fn` bound was never used in the whole repository.

The `FnMut` bound was the most used, because it resembles the semantics of the current boxed closures: the closure can modify its environment, and the closure may be called several times.

The `FnOnce` bound allows new semantics: you can move out the upvars when the closure is called. This can be effectively paired with the `move || {}` syntax to transfer ownership from the environment to the closure caller.

In the case of trait methods, is hard to select the "right" bound since we can't control how the trait may be implemented by downstream users. In these cases, I have selected the bound based on how we use these traits in the repository. For this reason the selected bounds may not be ideal, and may require tweaking before stabilization.

r? @aturon

9 years agolibrustc_borrowck: add `#![feature(unboxed_closures)]`
Jorge Aparicio [Sat, 13 Dec 2014 22:40:34 +0000 (17:40 -0500)]
librustc_borrowck: add `#![feature(unboxed_closures)]`

9 years agoDeprecate more in-tree libs for crates.io
Alex Crichton [Sat, 13 Dec 2014 22:18:44 +0000 (14:18 -0800)]
Deprecate more in-tree libs for crates.io

This commit deprecates a few more in-tree libs for their crates.io counterparts.
Note that this commit does not make use of the #[deprecated] tag to prevent
warnings from being generated for in-tree usage. Once #[unstable] warnings are
turned on then all external users will be warned to move.

These crates have all been duplicated in rust-lang/$crate repositories so
development can happen independently of the in-tree copies. We can explore at a
later date replacing the in-tree copies with the external copies, but at this
time the libraries have changed very little over the past few months so it's
unlikely for changes to be sent to both repos.

cc #19260

9 years agolibstd: add missing imports
Jorge Aparicio [Sat, 13 Dec 2014 20:09:33 +0000 (15:09 -0500)]
libstd: add missing imports

9 years agoRemove some unnecessary `move` keywords
Jorge Aparicio [Sat, 13 Dec 2014 16:08:27 +0000 (11:08 -0500)]
Remove some unnecessary `move` keywords

9 years agolibtest: use unboxed closures
Jorge Aparicio [Tue, 9 Dec 2014 22:00:29 +0000 (17:00 -0500)]
libtest: use unboxed closures

9 years agolibrustc_driver: use unboxed closures
Jorge Aparicio [Tue, 9 Dec 2014 21:32:45 +0000 (16:32 -0500)]
librustc_driver: use unboxed closures

9 years agolibrustc_typeck: use unboxed closures
Jorge Aparicio [Tue, 9 Dec 2014 21:04:19 +0000 (16:04 -0500)]
librustc_typeck: use unboxed closures

9 years agolibrustdoc: use unboxed closures
Jorge Aparicio [Tue, 9 Dec 2014 20:22:19 +0000 (15:22 -0500)]
librustdoc: use unboxed closures

9 years agolibrustc_trans: use unboxed closures
Jorge Aparicio [Tue, 9 Dec 2014 18:44:51 +0000 (13:44 -0500)]
librustc_trans: use unboxed closures

9 years agolibrustc_trans: fix fallout
Jorge Aparicio [Tue, 9 Dec 2014 16:00:41 +0000 (11:00 -0500)]
librustc_trans: fix fallout

9 years agolibrustc_typeck: fix fallout
Jorge Aparicio [Tue, 9 Dec 2014 13:51:04 +0000 (08:51 -0500)]
librustc_typeck: fix fallout

9 years agolibrustc: use unboxed closures
Jorge Aparicio [Tue, 9 Dec 2014 01:26:43 +0000 (20:26 -0500)]
librustc: use unboxed closures

9 years agolibrustc_llvm: use unboxed closures
Jorge Aparicio [Tue, 9 Dec 2014 01:17:18 +0000 (20:17 -0500)]
librustc_llvm: use unboxed closures

9 years agolibrustc_trans: fix fallout
Jorge Aparicio [Tue, 9 Dec 2014 01:00:29 +0000 (20:00 -0500)]
librustc_trans: fix fallout

9 years agolibrustc_back: use unboxed closures
Jorge Aparicio [Mon, 8 Dec 2014 23:35:22 +0000 (18:35 -0500)]
librustc_back: use unboxed closures

9 years agolibrustc: fix fallout
Jorge Aparicio [Mon, 8 Dec 2014 19:14:06 +0000 (14:14 -0500)]
librustc: fix fallout

9 years agolibsyntax: use unboxed closures
Jorge Aparicio [Mon, 8 Dec 2014 18:28:32 +0000 (13:28 -0500)]
libsyntax: use unboxed closures

9 years agoFix benches
Jorge Aparicio [Mon, 8 Dec 2014 13:35:34 +0000 (08:35 -0500)]
Fix benches

9 years agolibstd: use unboxed closures
Jorge Aparicio [Sun, 7 Dec 2014 19:15:25 +0000 (14:15 -0500)]
libstd: use unboxed closures

9 years agolibrustrt: use unboxed closures
Jorge Aparicio [Sun, 7 Dec 2014 18:22:04 +0000 (13:22 -0500)]
librustrt: use unboxed closures

9 years agolibregex_macros: use unboxed closures
Jorge Aparicio [Sun, 7 Dec 2014 17:36:42 +0000 (12:36 -0500)]
libregex_macros: use unboxed closures

9 years agolibcollections: use unboxed closures
Jorge Aparicio [Sun, 7 Dec 2014 17:17:33 +0000 (12:17 -0500)]
libcollections: use unboxed closures

9 years agolibserialize: use unboxed closures
Jorge Aparicio [Sun, 7 Dec 2014 16:59:59 +0000 (11:59 -0500)]
libserialize: use unboxed closures

9 years agolibregex: use unboxed closures
Jorge Aparicio [Sun, 7 Dec 2014 16:14:43 +0000 (11:14 -0500)]
libregex: use unboxed closures

9 years agolibarena: use unboxed closures
Jorge Aparicio [Sun, 7 Dec 2014 16:11:15 +0000 (11:11 -0500)]
libarena: use unboxed closures

9 years agolibregex: fix fallout in doc tests
Jorge Aparicio [Mon, 8 Dec 2014 01:32:53 +0000 (20:32 -0500)]
libregex: fix fallout in doc tests

9 years agolibregex: impl Replacer for FnMut(&Captures) -> String implementors
Jorge Aparicio [Sun, 7 Dec 2014 00:35:02 +0000 (19:35 -0500)]
libregex: impl Replacer for FnMut(&Captures) -> String implementors

9 years agolibrustc: fix fallout
Jorge Aparicio [Sat, 6 Dec 2014 22:55:55 +0000 (17:55 -0500)]
librustc: fix fallout

9 years agolibrbml: use unboxed closures in free functions
Jorge Aparicio [Sat, 6 Dec 2014 22:44:01 +0000 (17:44 -0500)]
librbml: use unboxed closures in free functions