Commit graph

14246 commits

Author SHA1 Message Date
Ulrik Sverdrup
ed5015939f Expand .zip() specialization to .map() and .cloned()
Implement .zip() specialization for Map and Cloned.

The crucial thing for transparent specialization is that we want to
preserve the potential side effects.

The simplest example is that in this code snippet:

`(0..6).map(f).zip((0..4).map(g)).count()`

`f` will be called five times, and `g` four times. The last time for `f`
is when the other iterator is at its end, so this element is unused.
This side effect can be preserved without disturbing code generation for
simple uses of `.map()`.

The `Zip::next_back()` case is even more complicated, unfortunately.
2016-10-17 10:58:21 +02:00
bors
0b2c356420 Auto merge of #37090 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 9 pull requests

- Successful merges: #36679, #36699, #36997, #37040, #37060, #37065, #37072, #37073, #37081
- Failed merges:
2016-10-11 13:29:02 -07:00
Guillaume Gomez
bfbd0a5e49 Rollup merge of #37072 - michaelwoerister:enable-trait-ich-tests, r=nikomatsakis
ICH: Enable some cases in trait definition hashing.

Enable some test cases originally written by @eulerdisk. The tests can be enabled now because @MathieuBordere has fixed the underlying problem in #36974.

r? @nikomatsakis
2016-10-11 17:51:27 +02:00
Guillaume Gomez
ac94bde803 Rollup merge of #37060 - jfirebaugh:E0303, r=jonathandturner
Update E0303 to new error format

Fixes #35790

r? @jonathandturner
2016-10-11 17:51:26 +02:00
Guillaume Gomez
0ff115c507 Rollup merge of #37040 - flodiebold:hash-tests, r=michaelwoerister
Incr. comp. hash tests for consts and statics

Hi,

These two commits fix #37000 and #37001.

r? @michaelwoerister
2016-10-11 17:51:26 +02:00
Guillaume Gomez
6717dba276 Rollup merge of #36679 - QuietMisdreavus:rustdoc-line-breaks, r=steveklabnik
rustdoc: print non-self arguments of bare functions and struct methods on their own line

This change alters the formatting rustdoc uses when it creates function and struct method documentation. For bare functions, each argument is printed on its own line. For struct methods, non-self arguments are printed on their own line. In both cases, no line breaks are introduced if there are no arguments, and for struct methods, no line breaks are introduced if there is only a single self argument. This should aid readability of long function signatures and allow for greater comprehension of these functions.

I've run rustdoc with these changes on my crate egg-mode and its set of dependencies and put the result [on my server](https://shiva.icesoldier.me/doc-custom/egg_mode/). Of note, here are a few shortcut links that highlight the changes:

* [Bare function with a long signature](https://shiva.icesoldier.me/doc-custom/egg_mode/place/fn.reverse_geocode.html)
* [Struct methods, with single self argument and with self and non-self arguments](https://shiva.icesoldier.me/doc-custom/egg_mode/tweet/struct.Timeline.html#method.reset)
* [Bare functions with no arguments](https://shiva.icesoldier.me/doc-custom/rand/fn.thread_rng.html) and [struct methods with no arguments](https://shiva.icesoldier.me/doc-custom/hyper/client/struct.Client.html#method.new) are left unchanged.

This PR consists of two commits: one for bare functions and one for struct methods.
2016-10-11 17:51:25 +02:00
bors
304d0c8d85 Auto merge of #36871 - petrochenkov:pdderr, r=nikomatsakis
Turn compatibility lint `match_of_unit_variant_via_paren_dotdot` into a hard error

The lint was introduced 10 months ago and made deny-by-default 7 months ago.
In case someone is still using it, https://github.com/rust-lang/rust/pull/36868 contains a stable replacement.

r? @nikomatsakis
2016-10-11 07:39:09 -07:00
bors
1e4c8b1a81 Auto merge of #36825 - sbwtw:master, r=alexcrichton
add println!() macro with out any arguments

lets add println!() to write "\n".
like java https://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#println()
2016-10-11 01:17:03 -07:00
Michael Woerister
f52723c330 ICH: Enable some cases in trait definition hashing. 2016-10-10 11:57:49 -04:00
John Firebaugh
9d364267d6 Update E0303 to new error format 2016-10-09 11:41:59 -07:00
Florian Diebold
eb07a6cfd0 Add ICH test case for consts
Fixes #37000.
2016-10-08 14:44:51 +02:00
Florian Diebold
5a30f0c728 Add ICH test case for statics
Fixes #37001.
2016-10-08 14:43:50 +02:00
bors
ca76c7e014 Auto merge of #36945 - alexcrichton:proc-macro-rename, r=nrc
rustc: Rename rustc_macro to proc_macro

This commit blanket renames the `rustc_macro` infrastructure to `proc_macro`,
which reflects the general consensus of #35900. A follow up PR to Cargo will be
required to purge the `rustc-macro` name as well.
2016-10-07 07:58:27 -07:00
bors
e51190cf07 Auto merge of #37024 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 5 pull requests

- Successful merges: #36222, #36665, #36929, #37003, #37008
- Failed merges:
2016-10-07 04:24:24 -07:00
Guillaume Gomez
85e95cc801 Rollup merge of #36222 - acrrd:better_underline_E0057, r=GuillaumeGomez
Better underline for E0057,E0060,E0061

Fix #35214
Part of #35233

r? @jonathandturner
2016-10-07 11:45:04 +02:00
bors
e2bd2d83dd Auto merge of #36940 - eulerdisk:incr_test_for_hash_trait, r=michaelwoerister
Test Case for Incr. Comp. Hash for traits #36681.

Fixes #36681
Part of #36350

Currently, the following tests fail:

Unsafe modifier
Extern modifier
Extern c to rust-intrinsic
Trait unsafety
Change type of method parameter (&i32 => &mut i32)
Mode of self parameter

r? @michaelwoerister
2016-10-07 00:51:28 -07:00
Andrea Corradi
d0c6172501 Better underline for E0057,E0060,E0061 2016-10-06 22:02:46 +02:00
Alex Crichton
2148bdfcc7 rustc: Rename rustc_macro to proc_macro
This commit blanket renames the `rustc_macro` infrastructure to `proc_macro`,
which reflects the general consensus of #35900. A follow up PR to Cargo will be
required to purge the `rustc-macro` name as well.
2016-10-06 11:07:23 -07:00
Jonathan Turner
2c8c0defab Rollup merge of #36974 - MathieuBordere:mb/36812_ICHFunctionInterfaces, r=michaelwoerister
Mb/36812 ich function interfaces

r? @michaelwoerister

This PR contains fixes for #36812 and #36914
2016-10-06 08:35:43 -07:00
Jonathan Turner
ed5a3c01a0 Rollup merge of #36962 - arielb1:cast-assumptions, r=eddyb
Emit more assumptions in trans

Perf numbers pending.
2016-10-06 08:35:42 -07:00
Jonathan Turner
9f1089b56f Rollup merge of #36959 - arielb1:simplify-cfg-fixes, r=eddyb
fix pred_count accounting in SimplifyCfg

r? @eddyb
2016-10-06 08:35:42 -07:00
Jonathan Turner
5dcd71f8ab Rollup merge of #36932 - michaelwoerister:type-alias-dep-graph-test, r=nikomatsakis
incr.comp.: Add test case for dependency graph of type aliases.

r? @nikomatsakis
2016-10-06 08:35:42 -07:00
Jonathan Turner
5a199bf3fc Rollup merge of #36909 - GuillaumeGomez:merge_e0002_e0004, r=arielb1
Merge E0002 into E0004

Fixes #36724.

r? @jonathandturner
2016-10-06 08:35:41 -07:00
Jonathan Turner
09712d7ac3 Rollup merge of #36832 - ParkHanbum:master, r=michaelwoerister
Add testcase for issue-32948

issue-32948 is similar to issue-32554.

issue-32948 : Symbol names for monomorphized trait impls are not stable across crates
issue-32554 : Symbol names for generics are not stable across crates

so, I append issue-32948's testcase to issue-32554's testcase.
thanks!
2016-10-06 08:35:41 -07:00
Andrea Pretto
bd77b3972f Changed some names 2016-10-06 10:05:48 +02:00
ParkHanbum
cb700e78ed Add testcase for issue-32948
ref : https://github.com/rust-lang/rust/issue/32948
2016-10-06 15:52:09 +09:00
Mathieu Borderé
6f6429609a Merge branch 'master' into mb/36812_ICHFunctionInterfaces 2016-10-05 23:30:55 +02:00
Mathieu Borderé
4b5a9a3706 ICH: update saw_ty for TyBareFn; Update tests for functioninterfaces 2016-10-05 23:17:58 +02:00
Andrea Pretto
0004698a88 Added the third parameter to the "add second lifetime bound to method type parameter" 2016-10-05 23:02:01 +02:00
Andrea Pretto
a12d763602 Fixes requested by @michaelwoerister 2016-10-05 22:05:54 +02:00
Ariel Ben-Yehuda
45fe3a1a2a emit an assume that cast-from enums are in range
Fixes #36955.
2016-10-05 14:12:30 +03:00
Vadim Petrochenkov
b3cb8f68cc Turn compatibility lint match_of_unit_variant_via_paren_dotdot into a hard error 2016-10-05 12:22:26 +03:00
bors
506f80730f Auto merge of #36958 - nikomatsakis:issue-36856, r=eddyb
force `i1` booleans to `i8` when comparing

Work around LLVM bug.

cc #36856

r? @eddyb
2016-10-04 23:13:08 -07:00
Mathieu Borderé
9081c003d3 ICH - Add test cases for function interfaces 2016-10-05 06:46:04 +02:00
bors
165a03d983 Auto merge of #36942 - arielb1:cast-lifetimes, r=eddyb
stop having identity casts be lexprs

that made no sense (see test), and was incompatible with borrowck.

Fixes #36936.

beta-nominated since (bad) regression.

r? @eddyb
2016-10-04 19:51:08 -07:00
Vadim Petrochenkov
c95b280d72 Move pattern resolution checks from typeck to resolve
Make error messages more precise
2016-10-04 22:20:38 +03:00
Vadim Petrochenkov
d19c16acfb Fix cross-crate resolution of half-items created by export shadowing 2016-10-04 22:20:37 +03:00
Ariel Ben-Yehuda
bfdf437f37 update tests 2016-10-04 20:43:43 +03:00
bors
a5dac7a2af Auto merge of #36874 - japaric:thumbs, r=alexcrichton
add Thumbs to the compiler

this commit adds 4 new target definitions to the compiler for easier
cross compilation to ARM Cortex-M devices.

- `thumbv6m-none-eabi`
  - For the Cortex-M0, Cortex-M0+ and Cortex-M1
  - This architecture doesn't have hardware support (instructions) for
    atomics. Hence, the `Atomic*` structs are not available for this
    target.
- `thumbv7m-none-eabi`
  - For the Cortex-M3
- `thumbv7em-none-eabi`
  - For the FPU-less variants of the Cortex-M4 and Cortex-M7
  - On this target, all the floating point operations will be lowered
    software routines (intrinsics)
- `thumbv7em-none-eabihf`
  - For the variants of the Cortex-M4 and Cortex-M7 that do have a FPU.
  - On this target, all the floating point operations will be lowered
    to hardware instructions

No binary releases of standard crates, like `core`, are planned for
these targets because Cargo, in the future, will compile e.g. the `core`
crate on the fly as part of the `cargo build` process. In the meantime,
you'll have to compile the `core` crate yourself. [Xargo] is the easiest
way to do that as in handles the compilation of `core` automatically and
can be used just like Cargo: `xargo build --target thumbv6m-none-eabi`
is all that's needed.

[Xargo]: https://crates.io/crates/xargo

---

cc @brson @alexcrichton
2016-10-04 08:29:41 -07:00
bors
4a9af010eb Auto merge of #36953 - Manishearth:rollup, r=Manishearth
Rollup of 12 pull requests

- Successful merges: #36798, #36878, #36902, #36903, #36908, #36916, #36917, #36921, #36928, #36938, #36941, #36951
- Failed merges:
2016-10-04 04:15:20 -07:00
Niko Matsakis
3e1bd199b0 force i1 booleans to i8 when comparing
Work around LLVM bug.

cc #36856
2016-10-04 05:56:02 -04:00
Manish Goregaokar
0e3cd4ed15 Rollup merge of #36941 - martinhath:issue-21837, r=alexcrichton
Add regression test for Issue #21837

This PR adds a regression test for Issue #21837, as explained in the comments of the issue.
2016-10-04 15:24:04 +05:30
Manish Goregaokar
5a4ecb4a0c Rollup merge of #36798 - gavinb:fix/36164, r=GuillaumeGomez
Improve error message and snippet for "did you mean `x`"

- Fixes #36164
- Part of #35233

Based on the standalone example https://is.gd/8STXMd posted by @nikomatsakis and using the third formatting option mentioned in #36164 and agreed by @jonathandturner.

Note however this does not address the question of [how to handle an empty or unknown suggestion](https://github.com/rust-lang/rust/issues/36164#issuecomment-244460024). @nikomatsakis any suggestions on how best to address that part?
2016-10-04 15:24:01 +05:30
bors
5ea241b9fb Auto merge of #36876 - nikomatsakis:issue-36381, r=pnkfelix
loosen assertion against proj in collector

The collector was asserting a total absence of projections, but some projections are expected, even in trans: in particular, projections containing higher-ranked regions, which we don't currently normalize.

r? @pnkfelix

Fixes #36381
2016-10-03 19:36:27 -07:00
Ariel Ben-Yehuda
c2a0859b3e stop having identity casts be lexprs
that made no sense (see test), and was incompatible with borrowck.

Fixes #36936.
2016-10-04 01:13:36 +03:00
Andrea Pretto
801a580aa8 Fixed lines longer than 100. 2016-10-03 23:51:22 +02:00
Martin Thoresen
d8ddef0de3
Add test for Issue #21837 2016-10-03 23:40:40 +02:00
Andrea Pretto
cf26cae4ee Test Case for Incr. Comp. Hash for traits #36681. 2016-10-03 22:59:16 +02:00
Michael Woerister
f320004a1b incr.comp.: Add test case for dependency graph of type aliases. 2016-10-03 12:30:29 -04:00
Niko Matsakis
58b75f7aa3 loosen assertion against proj in collector
The collector was asserting a total absence of projections, but some
projections are expected, even in trans: in particular, projections
containing higher-ranked regions, which we don't currently normalize.
2016-10-03 11:52:36 -04:00