Commit Graph

47097 Commits

Author SHA1 Message Date
Nick Cameron 2b4f28e531 Misc fixups 2015-10-09 11:53:42 +13:00
Nick Cameron 3d81f78544 Add a comment 2015-10-09 11:53:42 +13:00
Nick Cameron ba43c228b5 Some cleanup of no longer used AST things 2015-10-09 11:53:42 +13:00
Nick Cameron 21205f4f9e Cache ids between lowering runs
So that lowering is reproducible
2015-10-09 11:53:42 +13:00
Nick Cameron ce80094632 Make save-analysis work for `if let` etc. 2015-10-09 11:53:42 +13:00
Nick Cameron 08f3752270 hygiene for `for` loops, `if let`, `while let`
and some unrelated test cleanups
2015-10-09 11:53:41 +13:00
Nick Cameron e0c74868c3 Fix stability 2015-10-09 11:53:41 +13:00
Nick Cameron bfffa9ecfc Fixes to rustdoc, etc. 2015-10-09 11:53:41 +13:00
Nick Cameron 7f469ba6c5 Move placement in desugaring to lowering 2015-10-09 11:53:41 +13:00
Nick Cameron bc364b4a0d if let and while let 2015-10-09 11:53:41 +13:00
Nick Cameron 04a7675d22 For loops in save-analysis 2015-10-09 11:53:41 +13:00
Nick Cameron 20083c1e1f Move `for` loop desugaring to lowering 2015-10-09 11:53:41 +13:00
Nick Cameron 56713a1684 Add a lowering context 2015-10-09 11:53:41 +13:00
bors 11eda66df8 Auto merge of #27197 - nwin:generic-cursor-impl, r=alexcrichton
This is a revival of #23364. Github didn’t recognize my updated branch there.

The cursor implementation now uses `AsRef` which means that fixed-sized array can now be used with `Cursor`. Besides that, the generic implementation simplifies the code as the macro can be avoided.

The only drawback is, that specialized implementation for fixed-sized arrays are now ruled out unless [RFC#1210](https://github.com/rust-lang/rfcs/pull/1210) is accepted & implemented.

`Box<[u8]>` cannot be used yet, but that should be mitigated by [implementing `AsRef` for `Box` and friends](https://internals.rust-lang.org/t/forward-implement-traits-on-smart-pointers-make-smart-pointers-more-transparent/2380/3). I will submit a separate PR for that later as it is an orthogonal issue.
2015-10-08 20:53:23 +00:00
bors e38210b195 Auto merge of #28913 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #28621, #28872, #28893, #28904, #28905, #28908, #28910
- Failed merges: #28906
2015-10-08 19:05:54 +00:00
Steve Klabnik 1625c133de Rollup merge of #28910 - frewsxcv:patch-26, r=steveklabnik 2015-10-08 13:54:05 -04:00
Steve Klabnik 17819aa8f3 Rollup merge of #28908 - GuillaumeGomez:patch-2, r=Manishearth
r? @Manishearth
2015-10-08 13:54:05 -04:00
Steve Klabnik 8ca14251c9 Rollup merge of #28905 - tshepang:typo, r=steveklabnik 2015-10-08 13:54:04 -04:00
Steve Klabnik 8600610197 Rollup merge of #28904 - panicbit:trpl-derive, r=steveklabnik 2015-10-08 13:54:04 -04:00
Steve Klabnik ac541d3206 Rollup merge of #28893 - steveklabnik:gh28687, r=nikomatsakis
Fixes #28687
2015-10-08 13:54:03 -04:00
Steve Klabnik 252c3838df Rollup merge of #28872 - iwillspeak:master, r=Manishearth
Currently the explain command line flag requires full error codes, complete with
the leading zeros and the E at the beginning. This commit changes that,
if you don't supply a full error code then the error number is padded
out to the required size and the E is added to the beginning.

This means that where previously you would need to write E0001, you can
now write 0001, 001, 01 or just 1 to refer to the same error.
2015-10-08 13:54:03 -04:00
Guillaume Gomez e4cc54ed06 Fix typo in E0101 2015-10-08 19:49:37 +02:00
bors 64c4b51dd6 Auto merge of #28826 - arthurprs:leading_plus, r=alexcrichton
Closes #27580
2015-10-08 17:19:59 +00:00
bors 95285c496f Auto merge of #28621 - tshepang:move-safety, r=steveklabnik 2015-10-08 14:04:41 +00:00
bors b75fe81055 Auto merge of #28897 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #28836, #28856, #28874, #28876, #28878, #28880, #28882, #28885, #28889, #28896
- Failed merges:
2015-10-08 12:15:47 +00:00
Corey Farwell f18d1ad324 Format code-like text in Iterator::cloned doc-comment 2015-10-08 08:00:02 -04:00
bors bcd27eb7d5 Auto merge of #28891 - cristicbz:new-nbody, r=alexcrichton
This new version takes inspiration from the C implementation of the benchmark, but instead of explicitly using SIMD operations which can't be done on stable, it instead arranges everything the same way and leaves the actual vectorization up to LLVM.

In addition to the ~20% speed gains (see below), this PR also adds some general niceties which showcase the language a little bit: a `Vec3` type to cut down on `(x, y, z)` repetition,  using `while let` instead of `loop-if-break`, iterator adapters instead of for loops etc.

Here are the times in seconds of 10 runs each on my workstation:

```
before: 6.254, 6.260, 6.263, 6.264, 6.265, 6.267, 6.334, 6.341, 6.441, 6.509
before-min: 6.254
before-median: 6.266
before-max: 6.509

after: 4.823, 4.824, 4.826, 4.827, 4.837, 4.839, 4.881, 4.959, 4.990, 5.377
after-min: 4.823
after-median: 4.838
after-max: 5.377

gcc: 4.674, 4.676, 4.680, 4.682, 4.695, 4.696, 4.701, 4.708, 4.794, 5.297
gcc-min: 4.674
gcc-median: 4.696
gcc-max: 5.297
```

On my i7 laptop the speed up is less impressive, from ~5.4s to ~4.7s, but still significant. On my Vultr VPS the numbers look closer to the workstation results. Surprisingly my laptop beats both office workstation and VPS...
2015-10-08 10:04:12 +00:00
bors 88898e6ca7 Auto merge of #28892 - cristicbz:default-wrapping, r=alexcrichton
It's not very common to store `Wrapping` values, but I kept wrapping and unwrapping a hash value when I taking it out of a struct to do operations on it. I couldn't store the hash as `Wrapping<u64>` because I wanted to be able to `#[derive(Default)]` for the struct.

At any rate, it feels to me that `Wrapping<T>` should implement pretty much everything `T` does. I left out `#[derive(Hash)]` since I'd be hard pressed to find a use case and wanted to avoid the extra generated code, but maybe I should add that too?
2015-10-08 07:39:06 +00:00
Tshepang Lekhonkhobe 88506c2261 reference: fix typos 2015-10-08 07:34:58 +02:00
panicbit 7515514fdc trpl: link to derivable trait's docs 2015-10-08 07:27:26 +02:00
panicbit 4d7eee1817 trpl: mention deriving in traits section 2015-10-08 07:15:39 +02:00
bors 2d405afeb0 Auto merge of #28863 - nagisa:test-16403, r=alexcrichton
Closes #16403
2015-10-08 02:31:46 +00:00
bors e362679bb6 Auto merge of #28811 - alexcrichton:as-ref-ptrs, r=aturon
These common traits were left off originally by accident from these smart
pointers, and a past attempt (#26008) to add them was later reverted (#26160)
due to unexpected breakge (#26096) occurring. The specific breakage in worry is
the meaning of this return value changed:

    let a: Box<Option<T>> = ...;
    a.as_ref()

Currently this returns `Option<&T>` but after this change it will return
`&Option<T>` because the `AsRef::as_ref` method shares the same name as
`Option::as_ref`. A [crater report][crater] of this change, however, has shown
that the fallout of this change is quite minimal. These trait implementations
are "the right impls to add" to these smart pointers and would enable various
generalizations such as those in #27197.

[crater]: https://gist.github.com/anonymous/0ba4c3512b07641c0f99

This commit is a breaking change for the above reasons mentioned, and the
mitigation strategies look like any of:

    Option::as_ref(&a)
    a.as_ref().as_ref()
    (*a).as_ref()
2015-10-08 00:46:01 +00:00
Steve Klabnik 0fbf7eaf81 Rollup merge of #28896 - mkpankov:core-fmt, r=nrc
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/rust-lang/rust/28896)
<!-- Reviewable:end -->
2015-10-07 18:18:38 -04:00
Steve Klabnik fb09639d92 Rollup merge of #28889 - JIghtuse:str_doc, r=steveklabnik 2015-10-07 18:18:38 -04:00
Steve Klabnik c66ff93da7 Rollup merge of #28885 - frewsxcv:patch-25, r=alexcrichton 2015-10-07 18:18:38 -04:00
Steve Klabnik 4c8a0c0578 Rollup merge of #28882 - ykomatsu:trpl, r=steveklabnik 2015-10-07 18:18:37 -04:00
Steve Klabnik 94755b291a Rollup merge of #28880 - Wallacoloo:book-5.14-typo, r=alexcrichton
The diff can hopefully speak for itself. Regardless: this chapter of the book contained a sentence where "the" was mistakenly repeated twice. In this same section, there was a comma separating two sentences where a period should have been. This PR fixes both issues.
2015-10-07 18:18:37 -04:00
Steve Klabnik 5470a1c975 Rollup merge of #28878 - sourcefrog:doc-links, r=steveklabnik 2015-10-07 18:18:37 -04:00
Steve Klabnik 55c2002b2b Rollup merge of #28876 - steveklabnik:oops, r=Gankro
In #28864, @aarzee submitted some whitespace fixes. I r+'d it. But
@retp998 noticed[1] that this file is explicitly a test of this kind of
whitespace, and so I shouldn't have changed it. This restores the old
line endings.

1: https://github.com/rust-lang/rust/pull/28864#discussion_r41332279
2015-10-07 18:18:37 -04:00
Steve Klabnik 4b44296308 Rollup merge of #28874 - GuillaumeGomez:error_code, r=Manishearth
r? @Manishearth
2015-10-07 18:18:36 -04:00
Steve Klabnik f688c0e711 Rollup merge of #28856 - chills42:master, r=steveklabnik
This is to address issue #28803 by improving some of the references to closures, to explain what they are more clearly, while hopefully still being concise.

r? @steveklabnik
2015-10-07 18:18:36 -04:00
Steve Klabnik 18c66b5aff Rollup merge of #28836 - jackwilsonv:patch-6, r=steveklabnik
r? @steveklabnik
2015-10-07 18:18:36 -04:00
Michael Pankov 11a7773a3a Fix comment gone astray 2015-10-08 01:08:33 +03:00
Michael Pankov 3fbbee6ad5 rustfmt hash submodule 2015-10-08 01:03:52 +03:00
Michael Pankov 17033a62b4 rustfmt part of libcore/fmt
Rest is blocked by https://github.com/nrc/rustfmt/issues/413
2015-10-08 01:02:45 +03:00
bors e50298f7b5 Auto merge of #28884 - Ms2ger:fmt-mir, r=nikomatsakis
This commit contains some of the changes proposed by a rustfmt invocation,
chosen based on the fairly non-deterministic metric of how much I liked the
change. I expect we will run rustfmt on this crate again later, probably
accepting more of its changes. For now, this is already an improvement over
the status-quo.
2015-10-07 21:25:43 +00:00
Steve Klabnik bbc2056694 Comment on shadowing with patterns
Fixes #28687
2015-10-07 16:41:15 -04:00
Cristi Cobzarenco e8021808cb core: Derive Default for Wrapping<T> 2015-10-07 21:31:36 +01:00
Cristi Cobzarenco 49d2441b05 bench: rewrite nbody for better vectorization 2015-10-07 21:05:22 +01:00