Commit Graph

7828 Commits

Author SHA1 Message Date
P1start
45044124e4 Improve the non_snake_case lint to give better suggestions 2014-10-03 20:39:56 +13:00
P1start
94bcd3539c Set the non_uppercase_statics lint to warn by default 2014-10-03 20:39:56 +13:00
Alex Crichton
d911936dbd Merge branch 'travis' into rollup
Conflicts:
	.travis.yml
2014-10-02 21:02:36 -07:00
Alex Crichton
f96ee10e88 Test fixes from the rollup 2014-10-02 15:43:37 -07:00
Alex Crichton
7ae802f57b rollup merge of #17666 : eddyb/take-garbage-out
Conflicts:
	src/libcollections/lib.rs
	src/libcore/lib.rs
	src/librustdoc/lib.rs
	src/librustrt/lib.rs
	src/libserialize/lib.rs
	src/libstd/lib.rs
	src/test/run-pass/issue-8898.rs
2014-10-02 14:53:18 -07:00
Alex Crichton
9998052e21 rollup merge of #17722 : jakub-/issue-17169 2014-10-02 14:51:10 -07:00
Alex Crichton
fba72d3825 rollup merge of #17721 : jakub-/resolved-issues 2014-10-02 14:51:05 -07:00
Alex Crichton
2bb44554de rollup merge of #17720 : ben0x539/shifts 2014-10-02 14:50:49 -07:00
Alex Crichton
d596aa25e1 rollup merge of #17702 : nick29581/enable-dots-test 2014-10-02 14:50:30 -07:00
Alex Crichton
51820b610e rollup merge of #17646 : bkoropoff/cast-ice 2014-10-02 14:50:08 -07:00
Jakub Wieczorek
52d2f2a938 Add tests for a few resolved issues 2014-10-02 22:21:50 +02:00
Jakub Wieczorek
f2973f63a3 Fix cross-crate tuple structs in statics
Fixes #17169.
Fixes #17649.
2014-10-02 21:31:06 +02:00
Benjamin Herr
af633ce157 native: fix passing errno to parent after fork
The bitshifts were wrong in that they invoked undefined behavior and
only passed the lower byte of the presumed-to-be-32bit errno value.
Apparently all actually possible values for errno happen to be easily
under 256, so this didn't cause any actual problems.

This commit fixes the bitshifts, but doesn't generalize to errno types
that aren't 32bit.
2014-10-02 21:16:37 +02:00
Aaron Turon
d2ea0315e0 Revert "Use slice syntax instead of slice_to, etc."
This reverts commit 40b9f5ded5.
2014-10-02 11:48:07 -07:00
Aaron Turon
c0c6c89589 Revert "Remove the _ suffix from slice methods."
This reverts commit df2f1fa768.
2014-10-02 11:47:58 -07:00
Aaron Turon
7bf56df4c8 Revert "Put slicing syntax behind a feature gate."
This reverts commit 95cfc35607.
2014-10-02 11:47:51 -07:00
Eduard Burtescu
58bea31ca0 tests: remove uses of Gc. 2014-10-02 17:02:15 +03:00
Eduard Burtescu
db55e70c97 syntax: mark the managed_boxes feature as Removed. 2014-10-02 17:02:03 +03: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
Nick Cameron
45fd7cd359 Enable a test for .. in range patterns. 2014-10-02 17:35:20 +13: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
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
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
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
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
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
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
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
Brian Koropoff
93408be788 Add regression test for issue #17444 2014-09-30 20:07:09 -07:00
Brian Koropoff
eb8b36973d Add regression test for issue #17458 2014-09-30 20:07:09 -07: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
Eduard Burtescu
79d4540ea8 Fold MethodOrigins to resolve inference variables they may contain.
Fixes #17662.
2014-09-30 23:53:15 +03:00
bors
823f10802f auto merge of #17639 : brson/rust/windbg2, r=pcwalton
I swear this is the last step. p=1 please so i can get the bots changed over before the test suite regresses again.
2014-09-30 18:37:24 +00:00
Kevin Ballard
8a60952100 Move if let behind a feature gate 2014-09-30 18:54:03 +02:00
Kevin Ballard
976438f78f Produce a better error for irrefutable if let patterns
Modify ast::ExprMatch to include a new value of type ast::MatchSource,
making it easy to tell whether the match was written literally or
produced via desugaring. This allows us to customize error messages
appropriately.
2014-09-30 18:54:02 +02:00
Kevin Ballard
1bc407fb84 Add tests for if let 2014-09-30 18:54:02 +02:00
Brian Anderson
40ce87f6ed Ignore yet another windows debuginfo test 2014-09-30 09:18:16 -07:00
Patrick Walton
416144b827 librustc: Forbid .. in range patterns.
This breaks code that looks like:

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

Instead, write:

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

Closes #17295.

[breaking-change]
2014-09-30 09:11:26 -07:00
Michael Kainer
065a5b0424 Fixes ICE when using reexported unit-like structs
Fixes that unit-like structs cannot be used if they are reexported and
used in another crate. The compiler fails with an ICE, because unit-like
structs are exported as DefFn and the expression `UnitStruct` is
interpreted as function pointer instead of a call to the constructor.

To resolve this ambiguity tuple-like struct constructors are now exported
as CtorFn. When `rustc::metadata::decoder` finds a CtorFn it sets a new
flag `is_ctor` in DefFn to true.

Relevant changes are in `rustc::metadata::{encoder, decoder}` and in
`rustc::middle::ty`.

Closes #12660 and #16973.
2014-09-30 16:22:55 +02:00
bors
d2f8d4c505 auto merge of #17563 : brson/rust/wintcbfix, r=thestinger
This is the bare minimum to stop using split stacks on Windows, fixing https://github.com/rust-lang/rust/issues/13259 and #14742, by turning on stack probes for all functions and disabling compiler and runtime support for split stacks on Windows.

It does not restore the out-of-stack error message, which requires more runtime work.

This includes a test that the Windows TCB is no longer being clobbered, but the out-of-stack test itself is pretty weak, only testing that the program exits abnormally, not that it isn't writing to bogus memory, so I haven't truly verified that this is providing the safety we claim.

A more complete solution is in https://github.com/rust-lang/rust/pull/16388, which has some unresolved issues yet.

cc @Zoxc @klutzy @vadimcn
2014-09-30 06:47:25 +00:00