Commit Graph

65526 Commits

Author SHA1 Message Date
bors 3cf9f5d787 Auto merge of #42541 - gilescope:patch-1, r=alexcrichton
assert_eq failure message easier to read

By having the left and right strings aligned with one another it helps spot the difference between the two far quicker than if they are on the same line.

E.g.
Before:

```
thread 'tests::test_safe_filename' panicked at 'assertion failed: `(left == right)` left:  `"-aandb--S123.html"` right: `"-aandb-S123.html"`',
```

After:

```
thread 'tests::test_safe_filename' panicked at 'assertion failed: `(left == right)`
left:  `"-aandb--S123.html"`
right: `"-aandb-S123.html"`',
```

When the strings are both on the same line it take a lot longer to spot the difference. It is a small change but the small time savings add up with repetition. This would help Rust be an excellent language to write tests in out of the box.

Closes https://github.com/rust-lang/rust/issues/41615
2017-06-24 12:18:40 +00:00
Paul Woolcock 7ad9537812 fix some tests i missed 2017-06-24 06:42:29 -04:00
Paul Woolcock 76d605255b Shorten some lines so this can pass the tidy checks 2017-06-24 06:42:29 -04:00
Paul Woolcock 60dd83ea85 add `allow_fail` test attribute
This change allows the user to add an `#[allow_fail]` attribute to
tests that will cause the test to compile & run, but if the test fails
it will not cause the entire test run to fail. The test output will
show the failure, but in yellow instead of red, and also indicate that
it was an allowed failure.
2017-06-24 06:42:29 -04:00
bors 7e76505e01 Auto merge of #42854 - razielgn:relaxed-debug-constraints-on-maps-iterators, r=sfackler
Relaxed Debug constraints on {HashMap,BTreeMap}::{Keys,Values}.

I has hit by this yesterday too. 😄
And I've realised that Debug for BTreeMap::{Keys,Values} wasn't formatting just keys and values respectively, but the whole map. 🤔

Fixed #41924

r? @jonhoo
2017-06-24 09:32:20 +00:00
Esteban Küber c023856b38 Detect missing `;` on methods with return type `()`
- Point out the origin of a type requirement when it is the return type
  of a method
- Point out possibly missing semicolon when the return type is () and
  the implicit return makes sense as a statement
- Suggest changing the return type of methods with default return type
- Don't suggest changing the return type on fn main()
- Don't suggest changing the return type on impl fn
2017-06-24 01:09:27 -07:00
bors b0081b36b4 Auto merge of #42724 - Mark-Simulacrum:tests, r=alexcrichton
Add tests for a few issues.

Fixes #41998
Fixes #38381
Fixes #37515
Fixes #37510
Fixes #37366
Fixes #37323
Fixes #37051
Fixes #36839
Fixes #35570
Fixes #34373
Fixes #34222

Certainly not all of the E-needstest issues right now, but I started to get bored.
2017-06-24 07:10:10 +00:00
Zack M. Davis 890a76f479 only set "overruled by outer forbid" once for lint groups, by group name
Previously, conflicting forbid/allow attributes for a lint group would
result in a separate "allow(L) overruled by outer forbid(L)" error for
every lint L in the group. This was needlessly and annoyingly verbose;
we prefer to just have one error pointing out the conflicting
attributes.

Resolves #42873.
2017-06-23 22:36:40 -07:00
bors 1ccc330d4b Auto merge of #42687 - alexcrichton:windows-tls, r=sfackler
rustc: Enable #[thread_local] for Windows

I think LLVM has had support for quite some time now for this, we just never got
around to testing it out and binding it. We've had some trouble landing this in
the past I believe, but it's time to try again!

This commit flags the `#[thread_local]` attribute as being available for Windows
targets and adds an implementation of `register_dtor` in the `thread::local`
module to ensure we can destroy these keys. The same functionality is
implemented in clang via a function called `__tlregdtor` (presumably provided in
some Windows runtime somewhere), but this function unfortunately does not take a
data pointer (just a thunk) which means we can't easily call it. For now
destructors are just run in the same way the Linux fallback is implemented,
which is just keeping track via a single OS-based TLS key.
2017-06-24 04:42:18 +00:00
Zack M. Davis 426331b9e4 remove unused parameters from LintStore.find_lint
Long ago, in the before-time, the find_lint method was created with the
unused_variables ("unused_variable" in the singular, as it was called at
the time) attribute in anticipation of using the session and span in the
handling of renamed lints (31b7d64fd), and indeed, the session and span
came to be used in this method, while the unused_variables attribute
remained (1ad1e2e29). In modern times, the session and span are again no
longer used (ca81d3dd); it seems we can safely prune them from the
method signature, for justice, and mercy.
2017-06-23 19:34:28 -07:00
Esteban Küber 8e11189cbb Move tests to `ui` 2017-06-23 18:01:38 -07:00
Thomas Lively 4ad6a95860 Add Target (de)serialization for environment vars
Also turn WebAssembly backend back on in its builder.
2017-06-23 17:49:36 -07:00
Alex Crichton 06540cb205 rustc: Enable #[thread_local] for Windows
I think LLVM has had support for quite some time now for this, we just never got
around to testing it out and binding it. We've had some trouble landing this in
the past I believe, but it's time to try again!

This commit flags the `#[thread_local]` attribute as being available for Windows
targets and adds an implementation of `register_dtor` in the `thread::local`
module to ensure we can destroy these keys. The same functionality is
implemented in clang via a function called `__tlregdtor` (presumably provided in
some Windows runtime somewhere), but this function unfortunately does not take a
data pointer (just a thunk) which means we can't easily call it. For now
destructors are just run in the same way the Linux fallback is implemented,
which is just keeping track via a single OS-based TLS key.
2017-06-23 16:11:39 -07:00
Oliver Middleton 4488f9bc0f rustdoc: Fix a few issues with associated consts
* Make sure private consts are stripped.
* Don't show a code block for the value if there is none.
* Make sure default values are shown in impls.
* Make sure docs from the trait are used if the impl has no docs.
2017-06-23 18:39:27 +01:00
slo a5c29cbf38 Saves created temp directory if save-temps option is used. 2017-06-23 13:20:23 -04:00
Andre Bogus ebe71fdd53 change binding name of for loop lowering to appease clippy
With the latest change to for loop lowering, a `_next` binding was introduced.
Unfortunately, this disturbs clippy's `used_underscore_binding` lint. This
commit just renames the binding to `__next` so clippy will be happy. It should
have no other effect.
2017-06-23 18:23:23 +02:00
Mark Simulacrum 2346169f99 Add tests for a few issues. 2017-06-23 07:51:01 -06:00
bors 229d0d3266 Auto merge of #42856 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 8 pull requests

- Successful merges: #42777, #42783, #42787, #42821, #42822, #42825, #42829, #42833
- Failed merges:
2017-06-23 13:46:43 +00:00
Mark Simulacrum 9037ef2c78 Rollup merge of #42833 - durka:non-constant-used-with-constant, r=Mark-Simulacrum
change span label for E0435

r? @Mark-Simulacrum
2017-06-23 06:02:15 -06:00
Mark Simulacrum 747643ff3a Rollup merge of #42829 - ids1024:cxx, r=alexcrichton
Set CXX_<target> in bootstrap

I came across this trying to cross-compile rustc for Redox. It was also mentioned in a comment on https://github.com/rust-lang/rust/pull/42206, but doesn't seem to have been corrected.
2017-06-23 06:02:14 -06:00
Mark Simulacrum 97b7783333 Rollup merge of #42825 - letheed:patch-1, r=alexcrichton
Fix ref as mutable ref in std::rc::Rc doc
2017-06-23 06:02:12 -06:00
Mark Simulacrum bb2db942ee Rollup merge of #42822 - ChrisMacNaughton:guard-traits, r=alexcrichton
Ensure Guard types impl Display & Debug

Fixes #24372
2017-06-23 06:02:11 -06:00
Mark Simulacrum f3aebb0a83 Rollup merge of #42821 - michaelwoerister:incr-debug-output-on-stderr, r=alexcrichton
Print -Zincremental-info to stderr instead of stdout.

Fixes #42583.

The [cargo-incremental](https://github.com/nikomatsakis/cargo-incremental) tool probably does not need to be updated. It already merges stdout and stderr before parsing the compiler's output.

r? @alexcrichton
2017-06-23 06:02:10 -06:00
Mark Simulacrum ddc2333fab Rollup merge of #42787 - zackmdavis:explain_E0562, r=GuillaumeGomez
add extended information for E0562; impl Trait can only be a return type

r? @GuillaumeGomez
2017-06-23 06:02:09 -06:00
Mark Simulacrum d22eb081ef Rollup merge of #42783 - ids1024:redox-env, r=sfackler
Redox: Use create() instead of open() when setting env variable

See https://github.com/redox-os/kernel/pull/25.
2017-06-23 06:02:08 -06:00
Mark Simulacrum 377ff895a5 Rollup merge of #42777 - kennytm:kill-ignore-doctest, r=estebank
Remove most "```ignore" doc tests.

Unconditional ` ```ignore ` doc tests lead to outdated examples (e.g. https://github.com/rust-lang/rust/issues/42729#issuecomment-309346572). This PR tries to change all existing ` ```ignore ` tests into one of the following:

* Add import and declarations to ensure the code is run-pass
* If the code is not Rust, change to ` ```text `/` ```sh `/` ```json `/` ```dot `
* If the code is expected compile-fail, change to ` ```compile_fail `
* If the code is expected run-fail, change to ` ```should_panic `
* If the code can type-check but cannot link/run, change to ` ```no_run `
* Otherwise, add an explanation after the ` ```ignore `

The `--explain` handling is changed to cope with hidden lines from the error index.

Tidy is changed to reject any unexplained ` ```ignore ` and ` ```rust,ignore `.
2017-06-23 06:02:08 -06:00
Federico Ravasio 545bfcd864
Relax Debug constraints when debugging {HashMap,BTreeMap}::{Keys,Values}.
Fixed #41924.
2017-06-23 12:48:29 +02:00
Federico Ravasio 2ea1d2d007
Correctly iterate on keys/values when debugging BTreeMap::{Keys,Values}. 2017-06-23 12:47:43 +02:00
kennytm 9addd3ba65
Added a tidy check to disallow "```ignore" and "```rust,ignore". 2017-06-23 15:31:54 +08:00
kennytm 2c89165814
Modify --explain to handle hidden code (`# ...`) and indented code blocks. 2017-06-23 15:31:53 +08:00
kennytm 4711982314
Removed as many "```ignore" as possible.
Replaced by adding extra imports, adding hidden code (`# ...`), modifying
examples to be runnable (sorry Homura), specifying non-Rust code, and
converting to should_panic, no_run, or compile_fail.

Remaining "```ignore"s received an explanation why they are being ignored.
2017-06-23 15:31:53 +08:00
bors bd32b1ba0d Auto merge of #42828 - parched:umulo, r=alexcrichton
Update LLVM to fix unsigned multiplication overflow

check for some targets, notably ARMv6-M.

Fixes https://github.com/rust-lang-nursery/compiler-builtins/issues/150
2017-06-23 05:25:22 +00:00
Ian Douglas Scott 87f6d6249c
Fix Redox build, broken in ecbb896b9e 2017-06-22 19:14:26 -07:00
Thomas Lively a4f97449b0 Add wasm32-experimental-emscripten to wasm builder
This modifies the builder to download and use the LLVM tools from the
last known good build on the WebAssembly buildbot waterfall, since these
tools are built with the WebAssembly LLVM backend enabled.
2017-06-22 18:34:56 -07:00
Thomas Lively 16da303209 Add target option for linker environment variables
This is used in wasm32-experimental-emscripten to ensure that emscripten
links against the libc bitcode files produced by the wasm LLVM backend,
instead of using fastcomp.
2017-06-22 18:34:56 -07:00
Thomas Lively 447297ce59 Make wasm32 buildbot test LLVM backend
This adds the experimental targets option to configure so it can be used
by the builders and changes the wasm32 Dockerfile accordingly. Instead
of using LLVM from the emsdk, the builder's emscripten tools now uses
the Rust in-tree LLVM, since this is the one built with wasm support.
2017-06-22 18:34:56 -07:00
bors 737962056a Auto merge of #42304 - Mark-Simulacrum:issue-37157, r=nikomatsakis
Print the two types in the span label for transmute errors.

Fixes #37157. I'm not entirely happy with the changes here but overall it's better in my opinion; we certainly avoid the odd language in that issue, which changes to:

```
error[E0512]: transmute called with differently sized types: <C as TypeConstructor<'a>>::T (size can vary because of <C as TypeConstructor>::T) to <C as TypeConstructor<'b>>::T (size can vary because of <C as TypeConstructor>::T)
 --> test.rs:8:5
  |
8 |     ::std::mem::transmute(x)
  |     ^^^^^^^^^^^^^^^^^^^^^ transmuting between <C as TypeConstructor<'a>>::T and <C as TypeConstructor<'b>>::T

error: aborting due to previous error(s)
```
2017-06-23 00:32:40 +00:00
bors bd62230fbd Auto merge of #42614 - GuillaumeGomez:new-error-codes, r=pnkfelix
New error codes

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus
2017-06-22 21:46:08 +00:00
Giles Cope 940d5ca3d0 Adding training commer to be more consistent with prior format. 2017-06-22 22:18:57 +01:00
Simonas Kazlauskas 3b9fe77bfc Fix NaN handling in is_sign_negative/positive
See #42425
2017-06-22 23:12:01 +03:00
Alex Burka 369d4f1883 remove duplicate E0435 test 2017-06-22 19:13:09 +00:00
Alex Burka 0883ce1b43 change span label for E0435 (fix #41871) 2017-06-22 19:10:56 +00:00
Ryan Thomas c5d078fd8c Update docs for std::fmt::format #29355.
This rewords and removes the `Arguments` section from the docs for
fmt::format.

r? @steveklabnik
2017-06-22 20:08:38 +01:00
Ian Douglas Scott f98ffb5bc3
Make Build.cxx() return a Result instead of panicking 2017-06-22 11:51:32 -07:00
Ryan Thomas b9a44fc489 Update docs for fmt::write.
I reworded it slightly to make it more clear that the function only take
two arguments - the output and the Arguments struct that can be
generated from the format_args! macro.

r? @steveklabnik
2017-06-22 19:50:56 +01:00
Ian Douglas Scott 526afcb0a3
Set CXX_<target> in bootstrap 2017-06-22 10:42:10 -07:00
bors ab5bec2553 Auto merge of #42634 - Zoxc:for-desugar2, r=nikomatsakis
Change the for-loop desugar so the `break` does not affect type inference. Fixes #42618

Rewrite the `for` loop desugaring to avoid contaminating the inference results. Under the older desugaring, `for x in vec![] { .. }` would erroneously type-check, even though the type of `vec![]` is unconstrained. (written by @nikomatsakis)
2017-06-22 15:24:58 +00:00
Chris MacNaughton 14df54989a Ensure Guard types impl Display & Debug
Fixes #24372
2017-06-22 16:54:32 +02:00
Letheed fc581457ec Fix ref as mutable ref in std::rc::Rc doc 2017-06-22 15:48:20 +02:00
bors 74fa27928a Auto merge of #42824 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 4 pull requests

- Successful merges: #42799, #42804, #42805, #42806
- Failed merges:
2017-06-22 12:48:54 +00:00