Commit graph

6756 commits

Author SHA1 Message Date
Masaki Hara
23d1521684
Add unsized tuple coercions. 2017-06-29 21:23:33 +09:00
Masaki Hara
17fca8b460
Check explicitly that tuple initializer is Sized. 2017-06-29 21:23:33 +09:00
Ariel Ben-Yehuda
4f121542e9 Rollup merge of #42953 - estebank:fix-20729, r=petrochenkov
Move type parameter shadowing test to `ui`

Fix #20729.
2017-06-29 08:40:10 +00:00
Ariel Ben-Yehuda
effd1e040e Rollup merge of #42886 - durka:pplmm-mwe, r=petrochenkov
syntax: allow negative integer literal expression to be interpolated as pattern

Fixes #42820.

r? @jseyfried
2017-06-29 08:40:05 +00:00
Ariel Ben-Yehuda
bea4e60327 Rollup merge of #42219 - pwoolcoc:add-allow-fail-to-libtest, r=GuillaumeGomez
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.

Here is an example of the output: http://imgur.com/a/wt7ga
2017-06-29 08:40:01 +00:00
bors
0816b94f02 Auto merge of #42642 - venkatagiri:issue_42312, r=nikomatsakis
rustc_typeck: enforce argument type is sized

closes #42312

r? @nikomatsakis
2017-06-29 02:30:53 +00:00
Esteban Küber
5ed38946be Move type parameter shadowing test to ui 2017-06-28 15:11:05 -07:00
Venkata Giri Reddy
5ed21f5d47 rustc_typeck: use body-id of type-checking item in need_type_info 2017-06-28 20:19:52 +00:00
bors
69c65d2961 Auto merge of #42850 - estebank:unwanted-return-rotj, r=nikomatsakis
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
 - Suggest removal of semicolon (instead of being help)
2017-06-28 20:16:13 +00:00
Venkata Giri Reddy
74cb315a10 rustc_typeck: enforce argument type is sized 2017-06-28 17:54:18 +00:00
Alex Burka
0dfd9c30f2 syntax: allow negative integer literal expression to be interpolated as pattern 2017-06-27 18:39:38 +00:00
Eduard-Mihai Burtescu
69076f3a78 tests: work around fallout from normalizing signatures separately. 2017-06-27 16:39:58 +03:00
Eduard-Mihai Burtescu
a9d4069975 rustc_typeck: support functions in variance computation. 2017-06-27 16:39:58 +03:00
Eduard-Mihai Burtescu
33ecf72e8e rustc: move the PolyFnSig out of TyFnDef. 2017-06-27 16:39:52 +03:00
Paul Woolcock
8edc3cae3b Add compile-fail test for the new feature gate 2017-06-24 18:41:05 -04:00
Guillaume Gomez
deb1eb6134 wording improvement 2017-06-24 21:28:08 +02:00
Guillaume Gomez
7b8c6a2d30 Add E0607 2017-06-24 21:27:49 +02:00
Guillaume Gomez
30effc14e4 Add E0606 2017-06-24 21:27:45 +02:00
Guillaume Gomez
0e4b8ffccd Add E0605 2017-06-24 21:25:31 +02:00
Guillaume Gomez
d5977df1c1 Add E0604 2017-06-24 21:25:31 +02: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
Esteban Küber
8e11189cbb Move tests to ui 2017-06-23 18:01:38 -07:00
Mark Simulacrum
2346169f99 Add tests for a few issues. 2017-06-23 07:51:01 -06: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
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
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
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
bors
80271e8edf Auto merge of #42682 - alexcrichton:jobserver, r=michaelwoerister
Integrate jobserver support to parallel codegen

This commit integrates the `jobserver` crate into the compiler. The crate was
previously integrated in to Cargo as part of rust-lang/cargo#4110. The purpose
here is to two-fold:

* Primarily the compiler can cooperate with Cargo on parallelism. When you run
  `cargo build -j4` then this'll make sure that the entire build process between
  Cargo/rustc won't use more than 4 cores, whereas today you'd get 4 rustc
  instances which may all try to spawn lots of threads.

* Secondarily rustc/Cargo can now integrate with a foreign GNU `make` jobserver.
  This means that if you call cargo/rustc from `make` or another
  jobserver-compatible implementation it'll use foreign parallelism settings
  instead of creating new ones locally.

As the number of parallel codegen instances in the compiler continues to grow
over time with the advent of incremental compilation it's expected that this'll
become more of a problem, so this is intended to nip concurrent concerns in the
bud by having all the tools to cooperate!

Note that while rustc has support for itself creating a jobserver it's far more
likely that rustc will always use the jobserver configured by Cargo. Cargo today
will now set a jobserver unconditionally for rustc to use.
2017-06-22 00:32:42 +00:00
Corey Farwell
d33e2c5181 Rollup merge of #42620 - wesleywiser:compile_error, r=brson
Add compile_error!

Related to #40872
2017-06-21 10:40:15 -04:00
Corey Farwell
292fcc880f Rollup merge of #42397 - sfackler:syncsender-sync, r=alexcrichton
Implement Sync for SyncSender

r? @alexcrichton
2017-06-21 10:40:14 -04:00
Alex Crichton
201f06988f Integrate jobserver support to parallel codegen
This commit integrates the `jobserver` crate into the compiler. The crate was
previously integrated in to Cargo as part of rust-lang/cargo#4110. The purpose
here is to two-fold:

* Primarily the compiler can cooperate with Cargo on parallelism. When you run
  `cargo build -j4` then this'll make sure that the entire build process between
  Cargo/rustc won't use more than 4 cores, whereas today you'd get 4 rustc
  instances which may all try to spawn lots of threads.

* Secondarily rustc/Cargo can now integrate with a foreign GNU `make` jobserver.
  This means that if you call cargo/rustc from `make` or another
  jobserver-compatible implementation it'll use foreign parallelism settings
  instead of creating new ones locally.

As the number of parallel codegen instances in the compiler continues to grow
over time with the advent of incremental compilation it's expected that this'll
become more of a problem, so this is intended to nip concurrent concerns in the
bud by having all the tools to cooperate!

Note that while rustc has support for itself creating a jobserver it's far more
likely that rustc will always use the jobserver configured by Cargo. Cargo today
will now set a jobserver unconditionally for rustc to use.
2017-06-21 07:16:43 -07:00
bors
bb143890a4 Auto merge of #42076 - alex-ozdemir:master, r=nrc
Clearer Error Message for Duplicate Definition

Clearer use of the error message and span labels to communicate duplication definitions/imports.

fixes #42061
2017-06-21 00:06:02 +00:00
Seo Sanghyeon
05540bf08b Show type name for unused_must_use lint 2017-06-20 04:36:56 +09:00
Wesley Wiser
0b29d26079 Add compile_error!
Related to #40872
2017-06-19 14:29:12 -04:00
Mark Simulacrum
effa869cab Update transmute size lints.
Also moves a few transmute tests to UI tests to better test their
output.
2017-06-18 10:36:07 -06:00
Malo Jaffré
5fe89e8eb1 Add tests for various issues
Fixes #11740.
Fixes #19601.
Fixes #22603
Fixes #22789.
Fixes #26614.

r? @Mark-Simulacrum.
2017-06-18 18:18:08 +02:00
bors
78d8416caf Auto merge of #42649 - estebank:if-cond, r=nikomatsakis
Report error for assignment in `if` condition

For code like `if x = 3 {}`, output:

```
error[E0308]: mismatched types
  --> $DIR/issue-17283.rs:25:8
   |
25 |     if x = x {
   |        ^^^^^
   |        |
   |        help: did you mean to compare equality? `x == x`
   |        expected bool, found ()
   |
   = note: expected type `bool`
              found type `()`
```

Fix #40926.
2017-06-17 16:54:07 +00:00
bors
787d9da125 Auto merge of #41840 - arielb1:deduplicate-selection-errors, r=nikomatsakis
Suppress trait errors that are implied by other errors

this is currently a hack and should be cleaned up somewhat. Posting this to get some feedback.

r? @nikomatsakis
cc @estebank
2017-06-16 10:07:58 +00:00
Corey Farwell
999f3ad60d Rollup merge of #42656 - VBChunguk:struct-field-attributes, r=nikomatsakis
Remove struct_field_attributes feature gate

Part of #41681. ~This PR only removes the feature gate; this *does not* update any documentations.~ This PR removes the feature gate and the corresponding chapter of the Unstable Book.

I'm not very sure about the changes I made though... Just followed the stabilization guideline.

r? @nikomatsakis
2017-06-16 00:32:45 -04:00
Corey Farwell
f05afa09a8 Rollup merge of #42654 - GuillaumeGomez:error-codes-new, r=QuietMisdreavus
Error codes new

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus
2017-06-16 00:32:44 -04:00
bors
a3114961a1 Auto merge of #42568 - GuillaumeGomez:E0608, r=QuietMisdreavus
E0608

Part of #42229.

cc @Susurrus
2017-06-16 00:40:05 +00:00
Niko Matsakis
09bc09201c remove trailing whitespace 2017-06-15 15:45:37 -04:00
Niko Matsakis
d5fd8fef67 explain purpose of test 2017-06-15 12:27:15 -04:00
Alex Ozdemir
a82890e67b Clearer Error Message for Duplicate Definition
Clearer use of the error message and span labels to communicate
duplicaiton defitions/imports.

New error format:

```
error[E0428]: the name `Foo` is defined twice
 --> example.rs:2:1
  |
1 | trait Foo { }
  | ------------- previous definition of the trait `Foo` here
2 | struct Foo { }
  | ^^^^^^^^^^^^^^ `Foo` redefined here
  = note: `Foo` must be defined only once in the type namespace of this module

error: aborting due to previous error
```
2017-06-15 08:21:17 -07:00
bors
258ae6dd9b Auto merge of #42648 - murarth:merge-alloc-collections, r=alexcrichton
Merge crate `collections` into `alloc`

This is a necessary step in order to merge #42565
2017-06-15 12:37:54 +00:00
Guillaume Gomez
f720e972cf Add E0618 2017-06-15 14:00:58 +02:00
Guillaume Gomez
ee600642db Add E0616 2017-06-15 10:30:26 +02:00
Guillaume Gomez
5bb58bf2e6 Add E0615 2017-06-15 10:29:47 +02:00