Commit Graph

32778 Commits

Author SHA1 Message Date
Aaron Turon
7bf56df4c8 Revert "Put slicing syntax behind a feature gate."
This reverts commit 95cfc35607.
2014-10-02 11:47:51 -07:00
Aaron Turon
2f365ffdad Revert "Review and rebasing changes"
This reverts commit 6e0611a487.
2014-10-02 11:47:38 -07:00
bors
b2d4eb186e auto merge of #17590 : bjadamson/rust/rustc-improvements, r=alexcrichton
Removes an unnecessary allocation when passing the command line arguments to the librustc driver.
2014-10-02 15:57:19 +00:00
bors
b419e9e739 auto merge of #17663 : eddyb/rust/method-origin-subst, r=nikomatsakis
Fixes #17662.
2014-10-02 13:22:21 +00:00
bors
84a4a07bbd auto merge of #17434 : P1start/rust/borrowck-messages, r=nikomatsakis
This was originally part of #17215.

Closes #15506.
Closes #15630.
Closes #17263.

This also partially implements #15838.
2014-10-02 11:32:25 +00:00
bors
dd7f00de80 auto merge of #17681 : jgallagher/rust/dep-info-escape-spaces, r=alexcrichton
cc #17627
2014-10-02 08:12:19 +00:00
bors
07b2c1be9d auto merge of #17620 : nick29581/rust/slice4, r=aturon
cc @aturon 

r? anyone?
2014-10-02 03:07:17 +00:00
P1start
02c6ebde7e Change the use of moved value error to be more accurate
Previously it output `partially moved` to eagerly. This updates it to be more
accurate and output `collaterally moved` for use of values that were invalidated
by moves out of different fields in the same struct.

Closes #15630.
2014-10-02 15:51:05 +13:00
Nick Cameron
6e0611a487 Review and rebasing changes 2014-10-02 14:50:22 +13:00
bors
d53874eccf auto merge of #17381 : tbu-/rust/pr_mapinplace2, r=aturon
Additionally, support zero-sized types.

Now there isn't a safe interface of `PartialVec` anymore, it's just a bare data structure with destructor that assumes you handled everything correctly before.
2014-10-02 01:22:20 +00:00
Nick Cameron
95cfc35607 Put slicing syntax behind a feature gate.
[breaking-change]

If you are using slicing syntax you will need to add #![feature(slicing_syntax)] to your crate.
2014-10-02 13:23:36 +13:00
Nick Cameron
df2f1fa768 Remove the _ suffix from slice methods.
Deprecates slicing methods from ImmutableSlice/MutableSlice in favour of slicing syntax or the methods in Slice/SliceMut.

Closes #17273.
2014-10-02 13:19:45 +13:00
Nick Cameron
40b9f5ded5 Use slice syntax instead of slice_to, etc. 2014-10-02 13:19:45 +13:00
P1start
35ff2def5d Clarify some borrowck errors
Closes #17263.
2014-10-02 11:21:59 +13:00
P1start
36b85025df Add an explanatory note when calling a closure via &
Closes #15506.
2014-10-02 11:09:29 +13:00
P1start
a8577be6f4 Output a note when lifetimes cannot be elided from functions 2014-10-02 11:09:29 +13:00
bors
a70a0374e2 auto merge of #17673 : aturon/rust/remove-uv, r=alexcrichton
This PR begins the process of [runtime removal](https://github.com/rust-lang/rfcs/pull/230) by dismantling the `librustuv` crate and associated event loop.

The result is that, while `libgreen` can still be used for task scheduling purposes, it will no longer be feasible to use green-threaded I/O.

Removing the libuv-based event loop eases the transition away from the runtime system, which will be done incrementally.

In terms of visible API changes, this PR:

* Removes `std::io::signal`, which was never implemented on the native threading model.

* Removes the `iotest!` macro, which was previously used to run I/O tests on both green and native threading models.

* Removes the `green_start!` macro for starting an application with a `librustuv` event loop.

* Removes the `librustuv` crate itself.

It also removes the `libuv` and `gyp` submodules and adjusts the build system and copyright notices accordingly.

If you wish to continue using `librustuv` and green-threaded I/O, consider using [green-rs](https://github.com/alexcrichton/green-rs/), which provides its own I/O stack.
2014-10-01 21:27:19 +00:00
Aaron Turon
dad59bdcbc Remove std::io::signal
The `std::io::signal` API was only implemented under `librustuv`, which
is now being removed. Rather than keep around an unimplemented API, this
commit removes it altogether.

See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.

See [green-rs](https://github.com/alexcrichton/green-rs/) for a possible
migration path for signal handling code, although in the long run we
plan to add native signal handling to `std::io`.

[breaking-change]
2014-10-01 12:42:30 -07:00
Aaron Turon
c5d2ed54a3 Remove libuv, gyp
This commit removes the libuv and gyp submodules, as well as all build
infrastructure related to them.

For more context, see the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230)

[breaking-change]
2014-10-01 12:42:30 -07:00
bors
b224dfe1a6 auto merge of #17678 : fhahn/rust/issue-17628-infinite-recursion, r=alexcrichton
This is a patch for #17628, thanks to @kmcallister for your helpful hints!
2014-10-01 19:37:18 +00:00
Aaron Turon
002643dcf0 Remove librustuv
This commit removes the `librustuv` crate.

See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.

See [green-rs](https://github.com/alexcrichton/green-rs/) for a possible
migration path if you wish to continue using green-threaded I/O. The
library provides its own I/O API surface.

[breaking-change]
2014-10-01 10:34:39 -07:00
Aaron Turon
15966c3c1f Remove iotest macro
This commit removes the `iotest!` macro from `std::io`. The macro was
primarily used to ensure that all io-related tests were run on both
libnative and libgreen/librustuv. However, now that the librustuv stack
is being removed, the macro is no longer needed.

See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.

[breaking-change]
2014-10-01 10:34:39 -07:00
Aaron Turon
60b859ab8a Remove all use of librustuv 2014-10-01 10:33:11 -07:00
John Gallagher
2883b7682a Make --dep-info escape spaces in filenames
Closes #17627
2014-10-01 11:40:00 -04:00
bors
49fcb27df6 auto merge of #17667 : wizeman/rust/fix-override-env, r=alexcrichton
In some build environments (such as chrooted Nix builds), `env` can only
be found in the explicitly-provided PATH, not in default places such as
/bin or /usr/bin. So we need to pass-through PATH when spawning the
`env` sub-process.

Fixes #17617
2014-10-01 15:32:30 +00:00
bors
00ebebb258 auto merge of #17654 : gereeter/rust/no-unnecessary-cell, r=alexcrichton
There is more that could be done, but this was the low hanging fruit.
2014-10-01 13:27:24 +00:00
John Gallagher
8dab56ea9d Make find->tidy resilient to filenames with spaces 2014-10-01 07:49:06 -04:00
bors
8ab6fce95e auto merge of #17653 : kaini/rust/master, r=alexcrichton
Fixes that unit-like structs cannot be used if they are re-exported and used in another crate. (ICE)
The relevant changes are in `rustc::metadata::{decoder, encoder}` and `rustc::middle::ty`.

A test case is included.

The problem is that the expressoin `UnitStruct` is an `ExprPath` to an `DefFn`, which is of expr kind `RvalueDatumExpr`, but for unit-struct ctors the expr kind should be `RvalueDpsExpr`. I fixed this (in a I guess clean way) by introducing `CtorFn` in the metadata and including a `is_ctor` flag in `DefFn`.
2014-10-01 11:27:23 +00:00
Florian Hahn
49e976d771 Limit recursion depth for macro expansions, closes #17628 2014-10-01 11:46:04 +02:00
bors
ff2616e847 auto merge of #17630 : sfackler/rust/cfg-warnings, r=brson
Closes #17490
2014-10-01 09:22:15 +00:00
bors
60e7317345 auto merge of #17501 : pcwalton/rust/improve-method-lookup-autoderef, r=nikomatsakis
prefer `Deref` over `DerefMut` in all other circumstances.

Because the compiler now prefers `Deref`, this can break code that
looked like:

    let mut foo = bar.borrow_mut();
    (*foo).call_something_that_requires_mutable_self();

Replace this code with:

    let mut foo = bar.baz();
    (&mut *foo).call_something_that_requires_mutable_self();

Closes #12825.

[breaking-change]

r? @nikomatsakis
2014-10-01 07:22:18 +00:00
bors
fe93a549a4 auto merge of #17132 : reem/rust/any-static-bound, r=alexcrichton
This bound is already implicit through the AnyPrivate trait,
but since it is not explicit, you still have to write Box<Any + 'static>,
even though Any can only be 'static.

Introducing the 'static bound here makes this bound explicit, making
Box<Any> legal.
2014-10-01 05:32:16 +00:00
bors
2f15dcd4d3 auto merge of #17584 : pcwalton/rust/range-patterns-dotdotdot, r=nick29581
This breaks code that looks like:

    match foo {
        1..3 => { ... }
    }

Instead, write:

    match foo {
        1...3 => { ... }
    }

Closes #17295.

r? @nick29581
2014-10-01 03:17:24 +00:00
Jonathan Reem
0cf60b6bb8 Bound Any with 'static
This bound is already implicit through the AnyPrivate trait,
but since it is not explicit, you still have to write Box<Any + 'static>,
even though Any can only be 'static.

Introducing the 'static bound here makes this bound explicit, making
Box<Any> legal.
2014-09-30 18:40:07 -07:00
Ricardo M. Correia
5f4c2800fc libstd: Pass-through PATH in test_override_env
In some build environments (such as chrooted Nix builds), `env` can only
be found in the explicitly-provided PATH, not in default places such as
/bin or /usr/bin. So we need to pass-through PATH when spawning the
`env` sub-process.

Fixes #17617
2014-10-01 03:35:35 +02:00
bors
57a05cf49b auto merge of #17634 : jakub-/rust/if_let, r=kballard
Continuation of https://github.com/rust-lang/rust/pull/16741.
2014-09-30 23:17:20 +00:00
Patrick Walton
496cc4c0d4 librustc: Fix up mutability in method autoderefs if incorrect, and
prefer `Deref` over `DerefMut` in all other circumstances.

Closes #12825.
2014-09-30 14:38:04 -07:00
Benjamin Adamson
d96faf7e71 Remove unnecessary allocation, update API name for starting the rustc driver. 2014-09-30 13:54:45 -07:00
Eduard Burtescu
79d4540ea8 Fold MethodOrigins to resolve inference variables they may contain.
Fixes #17662.
2014-09-30 23:53:15 +03:00
bors
88d1a22f76 auto merge of #17479 : gamazeps/rust/issue17478, r=alexcrichton
closes #17478
2014-09-30 20:27:16 +00:00
Steven Fackler
b4909f6eb7 Fix rustdoc 2014-09-30 12:52:47 -07:00
Steven Fackler
d9eac5d99c Fix librustuv 2014-09-30 12:52:47 -07:00
Steven Fackler
d3444779e6 Fix libnative 2014-09-30 12:52:47 -07:00
Steven Fackler
efbb15d59c Fix libgreen 2014-09-30 12:52:47 -07:00
Steven Fackler
c4e0755245 Fix librustc_llvm 2014-09-30 12:52:47 -07:00
Steven Fackler
99e2bb79b6 Fix librustc 2014-09-30 12:52:47 -07:00
Steven Fackler
d2caea2beb Fix librustc_back 2014-09-30 12:52:47 -07:00
Steven Fackler
448c8bf24e Fix libtime 2014-09-30 12:52:46 -07:00
Steven Fackler
ad83352618 Fix librustrt 2014-09-30 12:52:46 -07:00
Steven Fackler
d5647a8ea3 Fix libstd 2014-09-30 12:52:00 -07:00