Commit Graph

8248 Commits

Author SHA1 Message Date
Aaron Turon
5ea09e6a25 Ignore sepcomp-lib-lto on android due to linker weirdness 2014-11-08 20:59:59 -08:00
Aaron Turon
0bea593ea2 Remove somewhat bogus process-spawn-errno test (non-mac, non-windows only) 2014-11-08 20:40:39 -08:00
bors
a2f303ad09 auto merge of #18743 : nikomatsakis/rust/hrtb-refactor-2, r=pcwalton
Various miscellaneous changes pushing towards HRTB support:

1. Update parser and adjust ast to support `for<'a,'b>` syntax, both in closures and trait bounds. Warn on the old syntax (not error, for stage0).
2. Refactor TyTrait representation to include a TraitRef.
3. Purge `once_fns` feature gate and `once` keyword.

r? @pcwalton 

This is a [breaking-change]:

- The `once_fns` feature is now officially deprecated. Rewrite using normal closures or unboxed closures.
- The new `for`-based syntax now issues warnings (but not yet errors):
  - `fn<'a>(T) -> U` becomes `for<'a> fn(T) -> U`
  - `<'a> |T| -> U` becomes `for<'a> |T| -> U`
2014-11-09 03:51:41 +00:00
bors
93c85eb8bd auto merge of #18730 : bkoropoff/rust/issue-18652, r=eddyb
`FnOnce` environments that fit within an `int` are passed to the closure by value.  For some reason there was an assert that this would only happen if there were 1 or 0 free variables, but it can also happen if there are multiple variables that happen to fit.

Closes #18652
2014-11-08 23:56:39 +00:00
Brian Koropoff
a553c2d3bc Add regression for #18767 2014-11-08 11:07:28 -08:00
Brian Koropoff
472e0cf8f3 Add regression for #17068 2014-11-08 11:07:28 -08:00
bors
ebc625ad3e auto merge of #18634 : alexcrichton/rust/cfg-attr-crate-level, r=sfackler
This commit implements processing these two attributes at the crate level as
well as at the item level. When #[cfg] is applied at the crate level, then the
entire crate will be omitted if the cfg doesn't match. The #[cfg_attr] attribute
is processed as usual in that the attribute is included or not depending on
whether the cfg matches.

This was spurred on by motivations of #18585 where #[cfg_attr] annotations will
be applied at the crate-level.

cc #18585
2014-11-08 09:01:33 +00:00
bors
7bc3588faf auto merge of #18729 : bkoropoff/rust/issue-18711, r=cmr
Closes #18711
2014-11-08 05:01:34 +00:00
Jorge Aparicio
3c442b92ae syntax: Use UFCS in the expansion of #[deriving(PartialOrd)] 2014-11-07 18:26:44 -05:00
Niko Matsakis
091dc6e98a Purge the old once_fns, which are not coming back 2014-11-07 15:51:30 -05:00
Niko Matsakis
3112771001 Update tests where we don't report errors twice anymore 2014-11-07 15:51:30 -05:00
Niko Matsakis
244231720d Update parser with for syntax 2014-11-07 15:51:30 -05:00
bors
6ee56c9a5f auto merge of #18688 : bkoropoff/rust/unboxed-closure-subst-fixes, r=nikomatsakis
This resolves some issues that remained after adding support for monomorphizing unboxed closures in trans.

There were a few places where a set of substitutions for an unboxed closure type were dropped on the floor and later recalculated from scratch based on the def ID, but this failed spectacularly when the closure originated from a different param environment.  The substitutions are now plumbed through end-to-end.  Closes #18661

There was also a conflict in the meaning of the self param space within the body of the unboxed closure.  Trans attempted to insert the unboxed closure type as the self type, but this could conflict with the self type from the param environment when an unboxed closure was used within a default method on a trait.  Since the body of an unboxed closure cannot refer to its own self type or value, there's no need for it to actually use the self space.  The downstream consumers of the substitutions in trans do not seem to need it either since they look up the type of the closure some other way, so I just stopped setting it.  Closes #18685.

r? @pcwalton @nikomatsakis
2014-11-07 20:41:29 +00:00
Alex Crichton
3dbd32854f rustc: Process #[cfg]/#[cfg_attr] on crates
This commit implements processing these two attributes at the crate level as
well as at the item level. When #[cfg] is applied at the crate level, then the
entire crate will be omitted if the cfg doesn't match. The #[cfg_attr] attribute
is processed as usual in that the attribute is included or not depending on
whether the cfg matches.

This was spurred on by motivations of #18585 where #[cfg_attr] annotations will
be applied at the crate-level.

cc #18585
2014-11-07 12:04:28 -08:00
bors
0b48001c28 auto merge of #17830 : pczarn/rust/interp_tt, r=pnkfelix
Closes #14197

Removes the `matchers` nonterminal.

If you're using `$foo:matchers` in a macro, write `$foo:tt` instead.

[breaking-change]
2014-11-07 15:26:26 +00:00
bors
97a57ec909 auto merge of #18714 : nikomatsakis/rust/issue-18621-deref-for-refs, r=aturon
libs: add Deref, DerefMut impls for references, fixing a bug in compiler in the process that was blocking this.

r? @aturon
2014-11-07 11:31:25 +00:00
Piotr Czarnecki
964191a313 Add and update tests 2014-11-07 10:21:50 +01:00
bors
a0a7ab4612 auto merge of #18672 : brandonson/rust/functional-update-walk, r=nikomatsakis
Fixes #18567. `Struct{x:foo, .. with_expr}` did not walk `with_expr`, which allowed
using moved variables in some cases.  The CFG for structs also built up with
`with_expr` happening before the fields, which is now reversed. (Fields are now
before the `with_expr` in the CFG)
2014-11-07 07:16:33 +00:00
Brian Koropoff
2c956d0abf Add regression test for #18652 2014-11-06 20:46:23 -08:00
Brian Koropoff
5f6392d848 Add regression test for #18711 2014-11-06 19:33:47 -08:00
Niko Matsakis
f2aaed8338 libs: add Deref, DerefMut impls for references, fixing a bug in compiler in the process that was blocking this.
Fixes #18621.
2014-11-06 21:51:40 -05:00
Brian Koropoff
ddb17b239b Add regression test for #18685 2014-11-06 18:17:58 -08:00
Brian Koropoff
d317039b22 Add regression test for #18661 2014-11-06 18:17:58 -08:00
Alex Crichton
e4cf9c4b58 rollup merge of #18691 : subhashb/add_clone_trait_to_filetype 2014-11-06 13:53:27 -08:00
Alex Crichton
953302f85f rollup merge of #18707 : japaric/moar-dst 2014-11-06 13:53:26 -08:00
Alex Crichton
ec983c684b rollup merge of #18684 : nathan7/patch-1 2014-11-06 13:53:26 -08:00
Alex Crichton
90bfcec323 rollup merge of #18679 : brson/lint-trait 2014-11-06 13:53:25 -08:00
Alex Crichton
fa530fff51 rollup merge of #18656 : thiagopnts/rename-deprecated-non_uppercase_statics 2014-11-06 13:31:54 -08:00
Alex Crichton
e3ade0f012 rollup merge of #18644 : luqmana/pefc 2014-11-06 13:31:48 -08:00
Alex Crichton
b3ed448f62 rollup merge of #18633 : huonw/target-spec-spelling 2014-11-06 13:31:32 -08:00
Alex Crichton
76d2abe0e7 rollup merge of #18630 : nikomatsakis/purge-the-bars 2014-11-06 13:31:18 -08:00
Alex Crichton
b747f70394 rollup merge of #18591 : nick29581/dst-bug-str 2014-11-06 13:30:37 -08:00
Alex Crichton
73aaeb0fbd rollup merge of #18555 : jakub-/e-needstest 2014-11-06 13:30:16 -08:00
Jorge Aparicio
5272e6c4c6 Add tests 2014-11-06 14:14:31 -05:00
Brandon Sanderson
d80a62d84b Fix soundness hole in struct with expressions.
Fixes #18567. Struct{x:foo, .. with_expr} did not walk with_expr, which allowed
using moved variables in some cases.  The CFG for structs also built up with
with_expr happening before the fields, which is now reversed. (Fields are now
before the with_expr in the CFG)
2014-11-06 10:42:40 -08:00
Alexis Beingessner
eec145be3f Fallout from collection conventions 2014-11-06 12:26:08 -05:00
bors
60a669a174 auto merge of #18608 : alexcrichton/rust/lint-some-crates, r=aturon
This commit adds support for linting `extern crate` statements for stability
attributes attached to the crate itself. This is likely to be the mechanism used
to deny access to experimental crates that are part of the standard
distribution.

cc #18585 

r? @aturon
2014-11-06 14:06:59 +00:00
Subhash Bhushan
2cde618b17 Make Filetype Clonable 2014-11-06 19:17:50 +05:30
Niko Matsakis
d0fa4c6239 Remove the unboxed closure |:| notation from types and trait references completely. 2014-11-06 06:48:24 -05:00
Niko Matsakis
221edbae38 Support parenthesized paths Foo(A,B) -> C that expand to Foo<(A,B),C>. These paths also bind anonymous regions (or will, once HRTB is fully working).
Fixes #18423.
2014-11-06 06:48:23 -05:00
bors
e84e7a00dd auto merge of #18467 : japaric/rust/eq, r=alexcrichton
`eq`, `ne`, `cmp`, etc methods now require one less level of indirection when dealing with `&str`/`&[T]`

``` rust
"foo".ne(&"bar") -> "foo".ne("bar")
slice.cmp(&another_slice) -> slice.cmp(another_slice)
// slice and another_slice have type `&[T]`
```

[breaking-change]
2014-11-06 08:06:50 +00:00
Nathan Zadoks
dddef44a6b Make x86_64-unknown-linux-gnu.json true to its name 2014-11-06 06:37:40 +01:00
Niko Matsakis
cf753a2dc7 Correct tests that were supposed to fail but now pass due to the fn trait hierarchy. 2014-11-05 22:01:30 -05:00
Niko Matsakis
680d579ff0 Add blanket impls to allow the various Fn traits to be interconverted.
Fixes #18387.
2014-11-05 22:01:29 -05:00
Brian Anderson
f383ce62e8 rustc: Add some more checks to the stability lint
This catches uses of unstable traits in

```
trait Foo: UnstableTrait { }
```

and

```
impl UnstableTrait for Foo { }
```
2014-11-05 17:35:40 -08:00
Jorge Aparicio
11f4baeafb Fix tests 2014-11-05 20:13:25 -05:00
Jorge Aparicio
6216822249 Add test for the first half of issue #15689
cc #15689
2014-11-05 20:13:12 -05:00
Jorge Aparicio
4c3b42271b DSTify Box<T> implementation of PartialEq, PartialOrd, Eq, Ord 2014-11-05 20:13:08 -05:00
bors
63c4f22f2b auto merge of #18486 : nikomatsakis/rust/operator-dispatch, r=pcwalton
This branch cleans up overloaded operator resolution so that it is strictly based on the traits in `ops`, rather than going through the normal method lookup mechanism. It also adds full support for autoderef to overloaded index (whereas before autoderef only worked for non-overloaded index) as well as for the slicing operators.

This is a [breaking-change]: in the past, we were accepting combinations of operands that were not intended to be accepted. For example, it was possible to compare a fixed-length array and a slice, or apply the `!` operator to a `&int`. See the first two commits in this pull-request for examples.

One downside of this change is that comparing fixed-length arrays doesn't always work as smoothly as it did before. Before this, comparisons sometimes worked due to various coercions to slices. I've added impls for `Eq`, `Ord`, etc for fixed-lengths arrays up to and including length 32, but if the array is longer than that you'll need to either newtype the array or convert to slices. Note that this plays better with deriving in any case than the previous scheme.

Fixes #4920.
Fixes #16821.
Fixes #15757.

cc @alexcrichton 
cc @aturon
2014-11-05 22:31:44 +00:00
bors
5c1fd5f8b7 auto merge of #18462 : netvl/rust/to-socket-addr, r=alexcrichton
This is a follow-up to [RFC PR #173](https://github.com/rust-lang/rfcs/pull/173). I was told there that changes like this don't need to go through the RFC process, so I'm submitting this directly.

This PR introduces `ToSocketAddr` trait as defined in said RFC. This trait defines a conversion from different types like `&str`, `(&str, u16)` or even `SocketAddr` to `SocketAddr`. Then this trait is used in all constructor methods for `TcpStream`, `TcpListener` and `UdpSocket`.

This unifies these constructor methods - previously they were using different types of input parameters (TCP ones used `(&str, u16)` pair while UDP ones used `SocketAddr`), which is not consistent by itself and sometimes inconvenient - for example, when the address initially is available as `SocketAddr`, you still need to convert it to string to pass it to e.g. `TcpStream`. This is very prominently demonstrated by the unit tests for TCP functionality. This PR makes working with network objects much like with `Path`, which also uses similar trait to be able to be constructed from `&[u8]`, `Vec<u8>` and other `Path`s.

This is a breaking change. If constant literals were used before, like this:
```rust
TcpStream::connect("localhost", 12345)
```
then the nicest fix is to change it to this:
```rust
TcpStream::connect("localhost:12345")
```

If variables were used before, like this:
```rust
TcpStream::connect(some_address, some_port)
```
then the arguments should be wrapped in another set of parentheses:
```rust
TcpStream::connect((some_address, some_port))
```

`UdpSocket` usages won't break because its constructor method accepted `SocketAddr` which implements `ToSocketAddr`, so `bind()` calls:
```rust
UdpSocket::bind(some_socket_addr)
```
will continue working as before.

I haven't changed `UdpStream` constructor because it is deprecated anyway.
2014-11-05 18:01:53 +00:00
Niko Matsakis
0b5bc3314f Implement new operator dispatch semantics.
Key points are:
1. `a + b` maps directly to `Add<A,B>`, where `A` and `B` are the types of `a` and `b`.
2. Indexing and slicing autoderefs consistently.
2014-11-05 11:29:15 -05:00
Niko Matsakis
4af52eee59 Repair various cases where values of distinct types were being operated
upon (e.g., `&int` added to `int`).
2014-11-05 09:15:28 -05:00
thiagopnts
23913ec713 rename deprecated non_uppercase_statics to non_upper_case_globals 2014-11-05 12:04:26 -02:00
bors
14cd5c590e auto merge of #18646 : eddyb/rust/snapshots, r=alexcrichton 2014-11-05 12:26:34 +00:00
Eduard Burtescu
56dbf3d122 Register snapshots. 2014-11-05 12:55:58 +02:00
bors
98958bcaf4 auto merge of #18546 : bkoropoff/rust/unboxed-closures-cross-crate, r=nick29581
This fixes some metadata/AST encoding problems that lead to ICEs.  The way this is currently handled will need revisiting if abstract return types are added, as unboxed closure types from extern crates could show up without being inlined into the local crate.

Closes #16790 (I think this was fixed earlier by accident and just needed a test case)
Closes #18378
Closes #18543

r? @pcwalton
2014-11-05 10:21:38 +00:00
Vladimir Matveev
7d379fa78f Fixed other tests to pass make check 2014-11-05 12:01:23 +03:00
bors
eca8f11315 auto merge of #18592 : alexcrichton/rust/dylib-harder, r=pcwalton
If a dylib is being produced, the compiler will now first check to see if it can
be created entirely statically before falling back to dynamic dependencies. This
behavior can be overridden with `-C prefer-dynamic`.

Due to the alteration in behavior, this is a breaking change. Any previous users
relying on dylibs implicitly maximizing dynamic dependencies should start
passing `-C prefer-dynamic` to compilations.

Closes #18499
[breaking-change]
2014-11-05 07:01:38 +00:00
Nick Cameron
9af15e3a6b Test 2014-11-05 16:53:10 +13:00
Luqman Aden
20c1945c51 librustc: Call return_type only for functions. 2014-11-04 22:44:02 -05:00
Patrick Walton
e8d6031c71 libsyntax: Forbid escapes in the inclusive range \x80-\xff in
Unicode characters and strings.

Use `\u0080`-`\u00ff` instead. ASCII/byte literals are unaffected.

This PR introduces a new function, `escape_default`, into the ASCII
module. This was necessary for the pretty printer to continue to
function.

RFC #326.

Closes #18062.

[breaking-change]
2014-11-04 14:58:11 -08:00
Huon Wilson
769fa48a1c test: correct spelling error & inverted match. 2014-11-05 09:27:37 +11:00
Alex Crichton
68ac44cb97 rustc: Support stability attributes on crates
This commit adds support for linting `extern crate` statements for stability
attributes attached to the crate itself. This is likely to be the mechanism used
to deny access to experimental crates that are part of the standard
distribution.

cc #18585
2014-11-04 08:13:09 -08:00
Corey Richardson
6b130e3dd9 Implement flexible target specification
Removes all target-specific knowledge from rustc. Some targets have changed
during this, but none of these should be very visible outside of
cross-compilation. The changes make our targets more consistent.

iX86-unknown-linux-gnu is now only available as i686-unknown-linux-gnu. We
used to accept any value of X greater than 1. i686 was released in 1995, and
should encompass the bare minimum of what Rust supports on x86 CPUs.

The only two windows targets are now i686-pc-windows-gnu and
x86_64-pc-windows-gnu.

The iOS target has been renamed from arm-apple-ios to arm-apple-darwin.

A complete list of the targets we accept now:

arm-apple-darwin
arm-linux-androideabi
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf

i686-apple-darwin
i686-pc-windows-gnu
i686-unknown-freebsd
i686-unknown-linux-gnu

mips-unknown-linux-gnu
mipsel-unknown-linux-gnu

x86_64-apple-darwin
x86_64-unknown-freebsd
x86_64-unknown-linux-gnu
x86_64-pc-windows-gnu

Closes #16093

[breaking-change]
2014-11-04 05:07:47 -05:00
bors
ec28b4a6c8 auto merge of #18132 : P1start/rust/more-help, r=jakub-
Closes #18126.

At the moment this mostly only changes notes that are particularly help-oriented or directly suggest the user to do something to help messages, and does not change messages that simply explain an error message further. If it is decided that those messages should also be help messages, I can add them to this PR, but for now I’m excluding them as I believe that changing those messages might leave very few places where notes would be appropriate.
2014-11-04 03:36:55 +00:00
Alex Crichton
f2aa8c4187 rollup merge of #18593 : hirschenberger/issue-18587
Conflicts:
	src/test/compile-fail/lint-exceeding-bitshifts.rs
2014-11-03 16:24:26 -08:00
Alex Crichton
5d6cd77070 rollup merge of #18578 : japaric/clone 2014-11-03 15:56:01 -08:00
Alex Crichton
11790a545c rollup merge of #18580 : hirschenberger/issue-17713 2014-11-03 15:56:00 -08:00
Alex Crichton
e98172d801 rollup merge of #18560 : bkoropoff/issue-18532 2014-11-03 15:55:59 -08:00
Alex Crichton
ee5d238389 rollup merge of #18536 : bjz/strconv 2014-11-03 15:55:59 -08:00
Alex Crichton
eb793616dc rollup merge of #18506 : nikomatsakis/assoc-type-bounds 2014-11-03 15:55:58 -08:00
Falco Hirschenberger
e7f3109708 Fix for bitshift errors lint on cross compilation #18587 2014-11-04 00:48:03 +01:00
Jorge Aparicio
03b568a846 Fix error message in compile-fail test 2014-11-03 18:29:25 -05:00
Jorge Aparicio
b8fad35dda Add test for second half of issue #15689
cc #15689
2014-11-03 18:29:25 -05:00
Alex Crichton
8494368d56 rollup merge of #18447 : nick29581/dst-impl3 2014-11-03 15:29:17 -08:00
Alex Crichton
59d47a3ca4 rollup merge of #18132 : P1start/more-help 2014-11-03 15:28:54 -08:00
Alex Crichton
3036b00127 rustc: Default to static linking dylibs
If a dylib is being produced, the compiler will now first check to see if it can
be created entirely statically before falling back to dynamic dependencies. This
behavior can be overridden with `-C prefer-dynamic`.

Due to the alteration in behavior, this is a breaking change. Any previous users
relying on dylibs implicitly maximizing dynamic dependencies should start
passing `-C prefer-dynamic` to compilations.

Closes #18499
[breaking-change]
2014-11-03 15:08:20 -08:00
Niko Matsakis
fb9d0ccc2f Move associated types into the Assoc space and add in the builtin bounds
from the definition (including Sized).
2014-11-03 17:41:01 -05:00
Niko Matsakis
d2f8074eac Add a 4th space for associated types defined in a trait (currently unused) 2014-11-03 17:41:01 -05:00
Nick Cameron
f9e52fb34c tests 2014-11-04 09:37:00 +13:00
Jakub Bukaj
69988539da Add tests for E-needstest issues 2014-11-03 21:05:38 +01:00
Falco Hirschenberger
32b903d877 Also fix undefined behaviour when shift equals the number of bits
LLVM states:  "If op2 is (statically or dynamically) negative or equal
to or larger than the number of bits in op1, the result is undefined."
2014-11-03 20:08:11 +01:00
Alex Crichton
dce0be03d9 Test fixes and rebase conflicts 2014-11-03 11:02:36 -08:00
Alex Crichton
02300dc90d rollup merge of #18545 : luqmana/fix-18539 2014-11-03 08:31:47 -08:00
Alex Crichton
bb7805f58f rollup merge of #18527 : bkoropoff/issue-18490 2014-11-03 08:31:46 -08:00
Alex Crichton
202ede19d9 rollup merge of #18523 : bkoropoff/issue-18501 2014-11-03 08:31:46 -08:00
Alex Crichton
b3f8b8f238 rollup merge of #18522 : jbcrail/rename-missing-doc-attribute 2014-11-03 08:31:46 -08:00
Alex Crichton
e5a8840033 rollup merge of #18519 : Gankro/collect-smash 2014-11-03 08:31:45 -08:00
Alex Crichton
dcd8c23768 rollup merge of #18518 : bkoropoff/issue-18514 2014-11-03 08:31:45 -08:00
Alex Crichton
02c234cc52 rollup merge of #18505 : bkoropoff/issue-18487 2014-11-03 08:31:45 -08:00
Alex Crichton
fab6c74cf3 rollup merge of #18494 : nikomatsakis/issue-18453 2014-11-03 08:31:44 -08:00
Alex Crichton
0f4d7f248d rollup merge of #18493 : jakub-/issue-18464 2014-11-03 08:31:44 -08:00
Alex Crichton
6478fcfafe rollup merge of #18470 : alexcrichton/dash-l 2014-11-03 08:31:44 -08:00
Brendan Zabarauskas
138b76b83a Separate string->integer implementation in strconv 2014-11-04 00:20:37 +11:00
bors
b9b396cd75 auto merge of #18463 : japaric/rust/bytes2, r=alexcrichton
- The `BytesContainer::container_into_owned_bytes` method has been removed

- Methods that used to take `BytesContainer` implementors by value, now take them by reference. In particular, this breaks some uses of Path:

``` rust
Path::new("foo")  // Still works
path.join(another_path) -> path.join(&another_path)
```

[breaking-change]

---

Re: `container_into_owned_bytes`, I've removed it because

- Nothing in the whole repository uses it
- Takes `self` by value, which is incompatible with unsized types (`str`)

The alternative to removing this method is to split `BytesContainer` into `BytesContainer for Sized?` and `SizedBytesContainer: BytesContainer + Sized`, where the second trait only contains the `container_into_owned_bytes` method. I tried this alternative [in another branch](https://github.com/japaric/rust/commits/bytes) and it works, but it seemed better not to create a new trait for an unused method.

Re: Breakage of `Path` methods

We could use the idea that @alexcrichton proposed in #18457 (add blanket `impl BytesContainer for &T where T: BytesContainer` + keep taking `T: BytesContainer` by value in `Path` methods) to avoid breaking any code.

r? @aturon 
cc #16918
2014-11-03 12:12:24 +00:00
bors
851799d09e auto merge of #18206 : hirschenberger/rust/issue-17713, r=thestinger
Add lint for checking exceeding bitshifts #17713

It also const-evaluates the shift width (RHS) to check more complex shifts like `1u8 << (4+5)`.
The lint-level is set to `Warn` but perhaps it must be `Deny` as in llvm exceeding bitshifts are undefined as @ben0x539 stated in #17713
2014-11-03 07:37:23 +00:00
Brian Koropoff
7a8e73e4f5 Add regression test for #18532 2014-11-02 19:36:15 -08:00
Alexis Beingessner
112c8a966f refactor libcollections as part of collection reform
* Moves multi-collection files into their own directory, and splits them into seperate files
* Changes exports so that each collection has its own module
* Adds underscores to public modules and filenames to match standard naming conventions

(that is, treemap::{TreeMap, TreeSet} => tree_map::TreeMap, tree_set::TreeSet)

* Renames PriorityQueue to BinaryHeap
* Renames SmallIntMap to VecMap
* Miscellanious fallout fixes

[breaking-change]
2014-11-02 18:58:11 -05:00
bors
a294b35060 auto merge of #18406 : thestinger/rust/oom, r=cmr
This makes the low-level allocation API suitable for use cases where
out-of-memory conditions need to be handled.

Closes #18292

[breaking-change]
2014-11-02 21:22:14 +00:00
Brian Koropoff
bfa5320527 Add regression test for #16790, #18378 and #18543 2014-11-02 11:55:58 -08:00