Commit Graph

75740 Commits

Author SHA1 Message Date
Niko Matsakis
3955708576 WIP tweak example to include feature gate 2018-03-21 16:31:20 -04:00
Niko Matsakis
94eebaa325 WIP fix mir-opt-end-region-8 2018-03-21 09:24:32 -04:00
Niko Matsakis
9d5ec9ef1a work around fallout from these changes in rustc 2018-03-21 05:40:59 -04:00
Niko Matsakis
f71de45b23 use subtyping when we create a closure instead of for upvar types
We used to make the upvar types in the closure `==` but that was
stronger than we needed. Subtyping suffices, since we are copying the
upvar value into the closure field. This in turn allows us to infer
smaller lifetimes in captured values in some cases (like the example
here), avoiding errors.
2018-03-21 05:40:59 -04:00
Niko Matsakis
fc3c90cf8a report an error if we see an unexpected lifetime in impl Trait
But leave closure substs alone.
2018-03-21 05:40:59 -04:00
Niko Matsakis
a9cbfaa296 rewrite to use a custom folder 2018-03-20 16:09:42 -04:00
bors
75af15ee6c Auto merge of #49190 - kennytm:rollup, r=kennytm
Rollup of 17 pull requests

- Successful merges: #46518, #48810, #48834, #48902, #49004, #49092, #49096, #49099, #49104, #49125, #49139, #49152, #49157, #49161, #49166, #49176, #49184
- Failed merges:
2018-03-20 10:18:34 +00:00
bors
b99172311c Auto merge of #48516 - petrochenkov:stabsl, r=nikomatsakis
Stabilize slice patterns without `..`

And merge `feature(advanced_slice_patterns)` into `feature(slice_patterns)`.

The detailed description can be found in https://github.com/rust-lang/rust/issues/48836.

Slice patterns were unstable for long time since before 1.0 due to many bugs in the implementation, now this stabilization is possible primarily due to work of @arielb1 who [wrote the new MIR-based implementation of slice patterns](https://github.com/rust-lang/rust/pull/32202) and @mikhail-m1 who [fixed one remaining class of codegen issues](https://github.com/rust-lang/rust/pull/47926).

Reference PR https://github.com/rust-lang-nursery/reference/pull/259
cc https://github.com/rust-lang/rust/issues/23121
fixes #48836
2018-03-20 07:42:19 +00:00
kennytm
57b821112e
Rollup merge of #49184 - bdrewery:update-beta-freebsd, r=alexcrichton
Update beta to version with fixed FreeBSD support from #49023.

Fixes #42681

r? @alexcrichton
2018-03-20 11:39:48 +08:00
kennytm
d5244e4cf5
Rollup merge of #49176 - matthiaskrgr:config_example_rm_thinlto, r=alexcrichton
config.toml.example: thinlto bootstrap was removed

 It was removed in ff227c4a2d so remove the option that no longer works (we did not notice because it was commented out by default).
2018-03-20 11:39:46 +08:00
kennytm
c152e98a75
Rollup merge of #49166 - dileepbapat:pr-49133, r=nikomatsakis
#49133 - Reworded the Error message: "`pub` not needed here" message
2018-03-20 11:39:45 +08:00
kennytm
7fc81fa781
Rollup merge of #49161 - rust-lang:SimonSapin-patch-1, r=KodrAus
Docs: fix incorrect copy-paste for new `X?` in formatting strings
2018-03-20 11:39:44 +08:00
kennytm
cfb531748f
Rollup merge of #49157 - estebank:const-into, r=oli-obk
Do not suggest `.into()` in `const`s

Fix #49100.
2018-03-20 11:39:42 +08:00
kennytm
45de057727
Rollup merge of #49152 - GuillaumeGomez:rustdoc-event-handling, r=QuietMisdreavus
Fix events handling in rustdoc

Fixes #49075.
2018-03-20 11:39:40 +08:00
Vadim Petrochenkov
7c90189e13 Stabilize slice patterns without ..
Merge `feature(advanced_slice_patterns)` into `feature(slice_patterns)`
2018-03-20 02:27:40 +03:00
kennytm
1f5d31f8db
Rollup merge of #49139 - sfackler:bufreader-buffer, r=SimonSapin
Add BufReader::buffer

This subsumes the need for an explicit is_empty function, and provides
access to the buffered data itself which has been requested from time to
time.

We could call this `buf` to match `fill_buf`, but I think I'd prefer `fill_buffer` anyways in hindsight.
2018-03-20 07:15:25 +08:00
kennytm
baea60b610
Rollup merge of #49125 - NovemberZulu:master, r=alexcrichton
rustbuild: Ship libsynchronization

Hot on the heels of #49044 comes similar issue with libsynchronization. Discovered while building clippy:
```
<skipped>
Compiling serde_derive v1.0.33
error: linking with `gcc` failed: exit code: 1
<skipped>
  = note: ld: cannot find -lsynchronization
```

r? @nikomatsakis
2018-03-20 07:15:24 +08:00
kennytm
73846dca7b
Rollup merge of #49104 - csmoe:semicolon_error, r=petrochenkov
improve error message of inner attribute syntax

Fixes #49040
2018-03-20 07:15:23 +08:00
kennytm
63ab36190d
Rollup merge of #49099 - glandium:master, r=sfackler
Use associated consts for GenericRadix base and prefix

The trait being private, this does not imply an API change.
2018-03-20 07:15:22 +08:00
kennytm
23e2e3a431
Rollup merge of #49096 - alanhdu:master, r=alexcrichton
Update rustfmt to 0.4.1
2018-03-20 07:15:20 +08:00
kennytm
7bc9fe3250
Rollup merge of #49092 - mark-i-m:deptrack_readme, r=nikomatsakis
Replace many of the last references to readmes

In particular, this removes the dep track readme, so it should not be merged before https://github.com/rust-lang-nursery/rustc-guide/pull/92

Fix #47935

cc #48478

r? @nikomatsakis
2018-03-20 07:15:19 +08:00
kennytm
28eced1cb5
Rollup merge of #49004 - wesleywiser:incr_specialization_graph_query, r=michaelwoerister
Cache the specialization_graph query

Fixes #48987

r? @michaelwoerister
2018-03-20 07:15:18 +08:00
kennytm
7aa66515f6
Rollup merge of #48902 - csmoe:refactor_BorrowckErrors_fn_self, r=nikomatsakis
refactor the `BorrowckErrors` trait to take `fn(self)`

Fixes #48783
2018-03-20 07:15:16 +08:00
kennytm
49b584ce60
Rollup merge of #48834 - ysiraichi:suggest-remove-ref, r=estebank
Suggest removing `&`s

This implements the error message discussed in #47744.
We check whether removing each `&` yields a type that satisfies the requested obligation.
Also, it was created a new `NodeId` field in `ObligationCause` in order to iterate through the `&`s. The way it's implemented now, it iterates through the obligation snippet and counts the number of `&`.

r? @estebank
2018-03-20 07:15:15 +08:00
kennytm
5d5f5a08b8
Rollup merge of #48810 - Phlosioneer:32463-impl-integer-for-wrapping, r=dtolnay
Implement Integer methods for Wrapping

Wrapping<T> now implements:

count_ones, count_zeros, leading_zeros,
trailing_zeros, rotate_left, rotate_right, swap_bytes, from_be,
from_le, to_be, to_le, and pow

where T is:

u8, u16, u32, u64, usize, i8, i16, i32, i64, or isize.

Docs were written for all these methods, as well as examples. The
examples mirror the ones on u8, u16, etc... for consistency.

Closes #32463
2018-03-20 07:15:14 +08:00
kennytm
f32f810e6e
Rollup merge of #46518 - partim:asref-borrow-doc, r=dtolnay
Improve documentation for Borrow

This is the first step in improving the documentation for all the reference conversion traits. It proposes new text for the trait documentation of `Borrow`. Since I feel it is a somewhat radical rewrite and includes a stricter contract for `Borrow` then the previous text—namely that *all* shared traits need to behave the same, not just a select few—, I wanted to get some feedback before continuing.

Apart from the ‘normative’ description, the new text also includes a fairly extensive explanation of how the trait is used in the examples section. I included it because every time I look at how `HashMap` uses the trait, I need to think for a while as the use is a bit twisted. So, I thought having this thinking written down as part of the trait itself might be useful. One could argue that this should go into The Book, and, while I really like having everything important in the docs, I can see the text moved there, too.

So, before I move on: is this new text any good? Do we feel it is correct, useful, comprehensive, and understandable?

(This PR is in response to #44868 and #24140.)
2018-03-20 07:15:12 +08:00
bors
6bfa7d02d6 Auto merge of #49058 - withoutboats:pin, r=cramertj
Pin, Unpin, PinBox

Implementing rust-lang/rfcs#2349 (do not merge until RFC is merged)

@bors r? @cramertj
2018-03-19 23:01:37 +00:00
boats
540021ff5d
Okay this is the right way. 2018-03-19 15:48:48 -07:00
boats
c68885bd05
Comment out entire test. 2018-03-19 15:34:11 -07:00
boats
e4d0d666b5
Ignore properly. 2018-03-19 13:15:15 -07:00
boats
f8fb9f18a5
Comment out flakey test. 2018-03-19 13:13:31 -07:00
Bryan Drewery
57c74c3981 Update beta to version with fixed FreeBSD support from #49023.
Fixes #42681
2018-03-19 12:40:42 -07:00
Esteban Küber
1b8f1fc2d9 Do not suggest .into() in consts 2018-03-19 11:18:35 -07:00
Matthias Krüger
7dd9438662 config.toml.example: thinlto bootstrap was removed in ff227c4a2d so remove the option. 2018-03-19 15:14:19 +01:00
Alan Du
253ade5b31 Update rustfmt to 0.4.1 2018-03-19 10:14:13 -04:00
Dileep Bapat
a8f59aaef9 #49133 - Reworded the Error message: "pub not needed here" message 2018-03-19 19:22:36 +05:30
Dileep Bapat
3799866063 #49133 - Reworded the Error message: "pub not needed here" message 2018-03-19 16:44:58 +05:30
bors
a04b88d194 Auto merge of #49079 - oli-obk:cross_miri, r=michaelwoerister
Cleanup metadata and incremental cache processing of constants

fixes #49033
fixes #49081

we really need tests for this. do we have any cross compilation tests? I couldn't find any
2018-03-19 10:39:26 +00:00
bors
aafe7d89f0 Auto merge of #49108 - SimonSapin:sip, r=TimNN
Remove or hide deprecated unstable SipHasher{13,24}

Deprecated since Rust 1.13.0.
2018-03-19 07:49:32 +00:00
Simon Sapin
741d7a5598
Docs: fix incorrect copy-paste for new X? in formatting strings 2018-03-19 07:37:59 +01:00
Phlosioneer
bf101a5759 Fix trailing whitespace 2018-03-19 01:39:39 -04:00
Phlosioneer
5258af398a Make Wrapping::pow use wrapping_pow, add example 2018-03-19 01:39:38 -04:00
Phlosioneer
612c4a95bc Impl Integer methods for Wrapping
Wrapping<T> now implements:

count_ones, count_zeros, leading_zeros,
trailing_zeros, rotate_left, rotate_right, swap_bytes, from_be,
from_le, to_be, to_le, and pow

where T is:

u8, u16, u32, u64, usize, i8, i16, i32, i64, or isize.

Docs were written for all these methods, as well as examples. The
examples mirror the ones on u8, u16, etc... for consistency.

Closes #32463
2018-03-19 01:39:37 -04:00
bors
15add366fa Auto merge of #49091 - nikomatsakis:issue-49043-ty-infer-hash, r=michaelwoerister
extend stable hasher to support `CanonicalTy`

Fixes #49043

r? @michaelwoerister
2018-03-19 05:07:27 +00:00
bors
152217d29c Auto merge of #48978 - SimonSapin:debug-hex, r=KodrAus
Add hexadecimal formatting of integers with fmt::Debug

This can be used for integers within a larger types which implements Debug (possibly through derive) but not fmt::UpperHex or fmt::LowerHex.

```rust
assert!(format!("{:02x?}", b"Foo\0") == "[46, 6f, 6f, 00]");
assert!(format!("{:02X?}", b"Foo\0") == "[46, 6F, 6F, 00]");
```

RFC: https://github.com/rust-lang/rfcs/pull/2226

The new formatting string syntax (`x?` and `X?`) is insta-stable in this PR because I don’t know how to change a built-in proc macro’s behavior based of a feature gate. I can look into adding that, but I also strongly suspect that keeping this feature unstable for a time period would not be useful as possibly no-one would use it during that time.

This PR does not add the new (public) `fmt::Formatter` proposed in the API because:

* There was some skepticism on response to this part of the RFC
* It is not possible to implement as-is without larger changes to `fmt`, because `Formatter` at the moment has no easy way to tell apart for example `Octal` from `Binary`: it only has a function pointer for the relevant `fmt()` method.

If some integer-like type outside of `std` want to implement this behavior, another RFC will likely need to propose a different public API for `Formatter`.
2018-03-19 02:38:19 +00:00
bors
c2f4744d2d Auto merge of #49095 - alexcrichton:debug-asmjs, r=kennytm
Try to reduce amount of time on the asmjs builder

This PR has two commits for two separate strategies:

* First it disables optimizations for all tests, hopefully saving time by not optimizing the test code. This caused a number of run-pass tests to fail which are switched to being ignored here.
* Next it disables a number of test suites which aren't asm.js specific and already run elsewhere

cc #48826
2018-03-19 00:02:32 +00:00
Yukio Siraichi
736ba433ac Cleaned comments and extras s. 2018-03-18 20:58:56 -03:00
Yukio Siraichi
0b36b20651 CodeMap functions refactored.
- Using `span_take_while` to implement others.
2018-03-18 20:46:29 -03:00
Yukio Siraichi
74a4928ed4 Review fixes.
- `span_suggestion` changed to `span_suggestion_short`;
- `Span` used changed to contain only `&` refs;
- Tests passing.
2018-03-18 20:46:28 -03:00
Yukio Siraichi
c1ba5ac62c Reporting with span_suggestion_short. 2018-03-18 20:46:28 -03:00