Commit graph

9110 commits

Author SHA1 Message Date
Flavio Percoco Premoli
38cb4c128e Rollup merge of #21573 - japaric:gh19660, r=huonw
closes #19660
2015-01-24 10:42:42 +01:00
Flavio Percoco Premoli
82299c07de Rollup merge of #21504 - blackbeam:has_test_signature_fix, r=alexcrichton
Fix for `error: functions used as tests must have signature fn() -> ()` and `error: functions used as benches must have signature `fn(&mut Bencher) -> ()` in case of explicit return type declaration.
2015-01-24 10:42:40 +01:00
Flavio Percoco Premoli
65d14d2661 Rollup merge of #21498 - quantheory:master, r=alexcrichton
While trying to experiment with changes for some other issues, I noticed that the test for #15149 was failing because I have `/tmp` mounted as `noexec` on my Linux box, and that test tries to run out of a temporary directory. This may not be the most common case, but it's not rare by any means, because executing from a world-writable directory is a security problem. (For this reason, some kernel options/mods such as grsecurity also can prevent this on Linux.) I instead copy the executable to a directory created in the build tree, following the example of the `process-spawn-with-unicode-params` test.

After I made that change, I noticed that I'd made a mistake, but the test was still passing, because the "parent" process was not actually checking the status of the "child" process, meaning that the assertion in the child could never cause the overall test to fail. (I don't know if this has always been the case, or if it has something to do with either Windows or a change in the semantics of `spawn`.) So I fixed the test so that it would fail correctly, then fixed my original mistake so that it would pass again.

The one big problem with this is that I haven't set up any machines of my own so that I can build on Windows, which is the platform this test was targeted at in the first place! That might take a while to address on my end. So I need someone else to check this on Windows.
2015-01-24 10:42:40 +01:00
Alex Crichton
6c29708bf9 regex: Remove in-tree version
The regex library was largely used for non-critical aspects of the compiler and
various external tooling. The library at this point is duplicated with its
out-of-tree counterpart and as such imposes a bit of a maintenance overhead as
well as compile time hit for the compiler itself.

The last major user of the regex library is the libtest library, using regexes
for filters when running tests. This removal means that the filtering has gone
back to substring matching rather than using regexes.
2015-01-23 21:04:10 -08:00
Jorge Aparicio
6f7c0b16d3 add test for issue 19660
closes #19660
2015-01-23 19:35:10 -05:00
bors
e9285f9e81 Auto merge of #21374 - dgrunwald:range-notation-fixes, r=nikomatsakis
This PR is intended as alternative to #20958. It fixes the same grammar inconsistencies, but does not increase the operator precedence of `..`, leaving it at the same level as the assignment operator.
For previous discussion, see #20811 and #20958.

Grammar changes:
* allow `for _ in 1..i {}` (fixes #20241)
* allow `for _ in 1.. {}` as infinite loop
* prevent use of range notation in contexts where only operators of high precedence are expected (fixes #20811)

Parser code cleanup:
* remove `RESTRICTION_NO_DOTS`
* make `AS_PREC` const and follow naming convention
* make `min_prec` inclusive

r? nikomatsakis
2015-01-23 06:53:09 +00:00
Sean Patrick Santos
7f45dc9e68 Add a random number string to the end of the issue-15149 test's child directory's name, and remove the directory after a successful test. 2015-01-22 18:34:58 -07:00
Steve Klabnik
07fb31a099 Rollup merge of #21471 - michaelwoerister:associated-types, r=alexcrichton
This should fix issue #20797 (but I don't want to close it automatically).
As the actual fix is very small this would be a perfect candidate for a rollup.
2015-01-22 18:09:59 -05:00
Daniel Grunwald
db013f9f45 Fix some grammar inconsistencies for the '..' range notation.
Grammar changes:
* allow 'for _ in 1..i {}' (fixes #20241)
* allow 'for _ in 1.. {}' as infinite loop
* prevent use of range notation in contexts where only operators of high
  precedence are expected (fixes #20811)

Parser code cleanup:
* remove RESTRICTION_NO_DOTS
* make AS_PREC const and follow naming convention
* make min_prec inclusive
2015-01-22 19:55:15 +01:00
Sean Patrick Santos
918dd3488f Attempt fix for assertion on Windows, and add extra output for debugging. 2015-01-22 11:54:45 -07:00
blackbeam
fd029209ec Add test for has_test_signature for explicit return 2015-01-22 21:38:00 +03:00
bors
b7930d93d9 Auto merge of #21187 - oli-obk:feature/hint_struct_field_access, r=alexcrichton
rebase and fix of #19267
2015-01-22 12:09:02 +00:00
Alex Crichton
90af72378d Make diagnostic ordering deterministic 2015-01-21 20:25:19 -08:00
Alex Crichton
df1cddf20a rollup merge of #20179: eddyb/blind-items
Conflicts:
	src/librustc/diagnostics.rs
	src/librustdoc/clean/mod.rs
	src/librustdoc/html/format.rs
	src/libsyntax/parse/parser.rs
2015-01-21 11:56:00 -08:00
Alex Crichton
886c6f3534 rollup merge of #21258: aturon/stab-3-index
Conflicts:
	src/libcore/ops.rs
	src/librustc_typeck/astconv.rs
	src/libstd/io/mem.rs
	src/libsyntax/parse/lexer/mod.rs
2015-01-21 11:53:49 -08:00
Alex Crichton
036d8c4189 rollup merge of #21252: nikomatsakis/assoc-type-ice-hunt-take-2
Project region bounds out of the trait when deciding whether a projection type outlives a given regions.

Fixes #20890.
Fixes #21150.
2015-01-21 11:51:10 -08:00
Niko Matsakis
626db33bc8 Move regression test for #20971 into run-fail, since it panics. 2015-01-21 14:35:41 -05:00
Aaron Turon
537889aa78 Fix type inference problems in tests and docs 2015-01-21 11:16:00 -08:00
Alex Crichton
4ffde0814f Test fixes and rebase conflicts 2015-01-21 10:32:56 -08:00
Eduard Burtescu
2d17a33878 Deny imports after non-item statements. 2015-01-21 20:05:16 +02:00
Eduard Burtescu
5e07f5a792 Added another test with success local-item shadowing 2015-01-21 20:05:16 +02:00
Marvin Löbel
652445f714 Added some tests for arbitrary ordered view items 2015-01-21 20:05:16 +02:00
Eduard Burtescu
139346adb6 tests: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 20:05:16 +02:00
Michael Woerister
3a44107f9e debuginfo: Fix issue with associated types and struct fields 2015-01-21 18:25:53 +01:00
Alex Crichton
87c3ee861e rollup merge of #21457: alexcrichton/issue-21436
Conflicts:
	src/liballoc/boxed.rs
	src/librustc/middle/traits/error_reporting.rs
	src/libstd/sync/mpsc/mod.rs
2015-01-21 09:20:35 -08:00
Alex Crichton
e4b81d2512 rollup merge of #21447: cmr/master
Closes #13971
2015-01-21 09:19:03 -08:00
Alex Crichton
b5de8333b3 rollup merge of #21441: alexcrichton/rustc-opts
This is a bit of cleanup work to clean out some old deprecated flags and deprecated lint names from the compiler (they've been deprecated for quite awhile now).

This also notably puts `--pretty` behind the `-Z unstable-options` flag (where it was supposed to be previously).
2015-01-21 09:17:43 -08:00
Alex Crichton
28937be16a rollup merge of #21429: GuillaumeGomez/macro-fix
This is little clean code of this PR: #21366. I patched the same thing as aochagavia but too slowly obviously. This is a merge of our two codes, more "rust-like".
2015-01-21 09:16:37 -08:00
Alex Crichton
bf77f6ca03 rollup merge of #21421: huonw/one-suggestion-per-trait
This is clearly useless, the user doesn't need to know that they could
implement/import `foo::bar::Baz` 4 times.

Fixes #21405.
2015-01-21 09:16:05 -08:00
Alex Crichton
5d82c0fabf rollup merge of #21411: P1start/help-tweaks
Conflicts:
	src/librustc_typeck/check/closure.rs
2015-01-21 09:15:54 -08:00
Alex Crichton
1646707c6e rollup merge of #21396: japaric/no-parens-in-range
Conflicts:
	src/libsyntax/parse/lexer/comments.rs
2015-01-21 09:15:15 -08:00
Alex Crichton
9227db398a rollup merge of #21392: japaric/iter
closes #20953
closes #21361

---

In the future, we will likely derive these `impl`s via syntax extensions or using compiler magic (see #20617). For the time being we can use these manual `impl`s.

r? @aturon
cc @burntsushi @Kroisse
2015-01-21 09:14:39 -08:00
Alex Crichton
0447721247 rollup merge of #21354: eddyb/vec-ufcs
There are two limitations to the macro that this addresses:
1. the expected type is not propagated, coercions don't trigger
2. references inside element expressions don't outlive the `Vec`

Both of these limitations are caused by the block in the
macro expansion, previously needed to trigger a coercion
from `Box<[T; N]>` to `Box<[T]>`, now possible with UFCS.
2015-01-21 09:13:55 -08:00
Alex Crichton
5123f75856 rollup merge of #21342: Diggsey/issue-21310
Fixes #21310
2015-01-21 09:13:53 -08:00
Alex Crichton
0c981875e4 rollup merge of #21340: pshc/libsyntax-no-more-ints
Collaboration with @rylev!

I didn't change `int` in the [quasi-quoter](99ae1a30f3/src/libsyntax/ext/quote.rs (L328)), because I'm not sure if there will be adverse effects.

Addresses #21095.
2015-01-21 09:13:51 -08:00
Alex Crichton
b250d9a3c8 rollup merge of #21289: brson/errorcodes
This does the bare minimum to make registration of error codes work again. After this patch, every call to `span_err!` with an error code gets that error code validated against a list in that crate and a new tidy script `errorck.py` validates that no error codes are duplicated globally.

There are further improvements to be made yet, detailed in #19624.

r? @nikomatsakis
2015-01-21 09:13:46 -08:00
Aaron Turon
da8023d653 Change init-large-type to use child thread 2015-01-21 08:11:07 -08:00
Alex Crichton
3cb9fa26ef std: Rename Show/String to Debug/Display
This commit is an implementation of [RFC 565][rfc] which is a stabilization of
the `std::fmt` module and the implementations of various formatting traits.
Specifically, the following changes were performed:

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0565-show-string-guidelines.md

* The `Show` trait is now deprecated, it was renamed to `Debug`
* The `String` trait is now deprecated, it was renamed to `Display`
* Many `Debug` and `Display` implementations were audited in accordance with the
  RFC and audited implementations now have the `#[stable]` attribute
  * Integers and floats no longer print a suffix
  * Smart pointers no longer print details that they are a smart pointer
  * Paths with `Debug` are now quoted and escape characters
* The `unwrap` methods on `Result` now require `Display` instead of `Debug`
* The `Error` trait no longer has a `detail` method and now requires that
  `Display` must be implemented. With the loss of `String`, this has moved into
  libcore.
* `impl<E: Error> FromError<E> for Box<Error>` now exists
* `derive(Show)` has been renamed to `derive(Debug)`. This is not currently
  warned about due to warnings being emitted on stage1+

While backwards compatibility is attempted to be maintained with a blanket
implementation of `Display` for the old `String` trait (and the same for
`Show`/`Debug`) this is still a breaking change due to primitives no longer
implementing `String` as well as modifications such as `unwrap` and the `Error`
trait. Most code is fairly straightforward to update with a rename or tweaks of
method calls.

[breaking-change]
Closes #21436
2015-01-20 22:36:13 -08:00
Diggory Blake
eb086505b8 Display negative trait implementations correctly in rustdoc
Added doc test
2015-01-21 04:35:57 +00:00
Corey Richardson
9714d3cccf tests: uncomment regression tests for 13970, 13971, 13972
Closes #13971
2015-01-20 18:44:55 -05:00
Alex Crichton
64914d9d39 rustc: Remove deprecated lint names
These were all renamed quite some time ago, so remove their old names from the
compiler.
2015-01-20 12:52:15 -08:00
Brian Anderson
953d6dfd7e Make error code registration work again. #19624 2015-01-20 11:27:14 -08:00
Alex Crichton
953f294ea3 rustc: Remove deprecated flags
This commit removes a number of deprecated flags from the compiler:

* opt-level => -C opt-level
* debuginfo => -C debuginfo
* print-crate-name => --print crate-name
* print-file-name => --print file-names
* no-trans => -Z no-trans
* no-analysis => -Z no-analysis
* parse-only => -Z parse-only
* dep-info => --emit dep-info

This commit also moves the --pretty flag behind `-Z unstable-options` as the
pretty printer will likely not be stable for 1.0

cc #19051
2015-01-20 11:16:26 -08:00
Barosl LEE
c49d428165 Rollup merge of #21424 - sanxiyn:coerce-mut, r=nikomatsakis
This is caught in borrowck now, but catching in typeck is faster and improves diagnostics.

CC #17561.

r? @nikomatsakis
2015-01-21 02:16:52 +09:00
Barosl LEE
1d206e2872 Rollup merge of #21404 - japaric:hash, r=alexcrichton
closes #21402
cc #15294

r? @alexcrichton or @aturon 
cc @ExpHP (btw, this only covers arrays with arity up to 32)
2015-01-21 02:16:52 +09:00
Barosl LEE
b9588393ee Rollup merge of #21386 - Diggsey:issue-21384, r=alexcrichton
Fixes #21384
2015-01-21 02:16:51 +09:00
Seo Sanghyeon
5cd9a69832 Forbid coercing &T to &mut T 2015-01-20 22:56:53 +09:00
bors
ffd8cb79a2 Auto merge of #21364 - cmr:fix-ttseq-ice, r=alexcrichton
Closes #21350
2015-01-20 13:36:03 +00:00
Huon Wilson
849a38ad86 Avoid suggesting traits multiple times.
This is clearly useless, the user doesn't need to know that they could
implement/import `foo::bar::Baz` 4 times.

Fixes #21405.
2015-01-20 23:10:37 +11:00
Oliver Schneider
09d9924713 librustc: hint close matches on accessing nonexisting fields 2015-01-20 10:58:06 +01:00