]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoRollup merge of #49609 - abonander:attr-macro-stmt-expr, r=petrochenkov
kennytm [Wed, 4 Apr 2018 09:07:25 +0000 (11:07 +0200)]
Rollup merge of #49609 - abonander:attr-macro-stmt-expr, r=petrochenkov

run-pass/attr-stmt-expr: expand test cases

Follow-up to https://github.com/rust-lang/rust/pull/49124#discussion_r178542587

r? @petrochenkov

6 years agoRollup merge of #49607 - cuviper:stable-iter-1.27, r=alexcrichton
kennytm [Wed, 4 Apr 2018 09:07:24 +0000 (11:07 +0200)]
Rollup merge of #49607 - cuviper:stable-iter-1.27, r=alexcrichton

Stabilize iterator methods in 1.27

- Closes #39480, feature  `iter_rfind`
  - `DoubleEndedIterator::rfind`
- Closes #44705, feature `iter_rfold`
  - `DoubleEndedIterator::rfold`
- Closes #45594, feature `iterator_try_fold`
  - `Iterator::try_fold`
  - `Iterator::try_for_each`
  - `DoubleEndedIterator::try_rfold`

6 years agoRollup merge of #49603 - GuillaumeGomez:fix-intra-link-trait-provided-method, r=Quiet...
kennytm [Wed, 4 Apr 2018 09:07:22 +0000 (11:07 +0200)]
Rollup merge of #49603 - GuillaumeGomez:fix-intra-link-trait-provided-method, r=QuietMisdreavus

Fix url for intra link provided method

Fixes #49582.

r? @QuietMisdreavus

6 years agoRollup merge of #49599 - rolfvandekrol:feature/no_ru, r=frewsxcv
kennytm [Wed, 4 Apr 2018 09:07:21 +0000 (11:07 +0200)]
Rollup merge of #49599 - rolfvandekrol:feature/no_ru, r=frewsxcv

Fix typo

In `libstd/io/buffered.rs` one example was marked as `no_ru` instead of `no_run`. I assume this is a typo.

6 years agoRollup merge of #49577 - tmccombs:string-splice-stabilize, r=TimNN
kennytm [Wed, 4 Apr 2018 09:07:20 +0000 (11:07 +0200)]
Rollup merge of #49577 - tmccombs:string-splice-stabilize, r=TimNN

Stabilize String::replace_range

Fixes #44643

6 years agoRollup merge of #49570 - arielb1:bounded-universe, r=nikomatsakis
kennytm [Wed, 4 Apr 2018 09:07:19 +0000 (11:07 +0200)]
Rollup merge of #49570 - arielb1:bounded-universe, r=nikomatsakis

avoid IdxSets containing garbage above the universe length

This makes sure that all bits in each IdxSet between the universe length
and the end of the word are all zero instead of being in an indeterminate state.

This fixes a crash with RUST_LOG=rustc_mir, and is probably a good idea
anyway.

r? @nikomatsakis - I think you are responsible for this code area now?

6 years agoRollup merge of #49559 - djc:resize-with, r=TimNN
kennytm [Wed, 4 Apr 2018 09:07:18 +0000 (11:07 +0200)]
Rollup merge of #49559 - djc:resize-with, r=TimNN

Introduce Vec::resize_with method (see #41758)

In #41758, the libs team decided they preferred `Vec::resize_with` over `Vec::resize_default()`. Here is an implementation to get this moving forward.

I don't know what the removal process for `Vec::resize_default()` should be, so I've left it in place for now. Would be happy to follow up with its removal.

6 years agoRollup merge of #49540 - bjorn3:fix_miri_discriminant, r=oli-obk
kennytm [Wed, 4 Apr 2018 09:07:17 +0000 (11:07 +0200)]
Rollup merge of #49540 - bjorn3:fix_miri_discriminant, r=oli-obk

Fix miri Discriminant() for non-ADT

Fixes #49327

6 years agoRollup merge of #49533 - scottmcm:more-must-use, r=nikomatsakis
kennytm [Wed, 4 Apr 2018 09:07:16 +0000 (11:07 +0200)]
Rollup merge of #49533 - scottmcm:more-must-use, r=nikomatsakis

Add #[must_use] to a few standard library methods

Chosen to start a precedent of using it on ones that are potentially-expensive and where using it for side effects is particularly discouraged.

Discuss :)

```rust
warning: unused return value of `std::iter::Iterator::collect` which must be used: if you really need to exhaust the iterator, consider `.for_each(drop)` instead
  --> $DIR/fn_must_use_stdlib.rs:19:5
   |
LL |     "1 2 3".split_whitespace().collect::<Vec<_>>();
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused return value of `std::borrow::ToOwned::to_owned` which must be used: cloning is often expensive and is not expected to have side effects
  --> $DIR/fn_must_use_stdlib.rs:21:5
   |
LL |     "hello".to_owned();
   |     ^^^^^^^^^^^^^^^^^^^

warning: unused return value of `std::clone::Clone::clone` which must be used: cloning is often expensive and is not expected to have side effects
  --> $DIR/fn_must_use_stdlib.rs:23:5
   |
LL |     String::from("world").clone();
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```

cc https://github.com/rust-lang/rust/issues/48926

6 years agoRollup merge of #49532 - Phlosioneer:32556-rustdoc-regression-test, r=GuillaumeGomez
kennytm [Wed, 4 Apr 2018 09:07:14 +0000 (11:07 +0200)]
Rollup merge of #49532 - Phlosioneer:32556-rustdoc-regression-test, r=GuillaumeGomez

Add test for rustdoc ignore test

This will check for regression on issue #32556

6 years agoRollup merge of #49516 - GuillaumeGomez:add-union-field-missing-anchor, r=QuietMisdreavus
kennytm [Wed, 4 Apr 2018 09:07:13 +0000 (11:07 +0200)]
Rollup merge of #49516 - GuillaumeGomez:add-union-field-missing-anchor, r=QuietMisdreavus

Add missing anchor for union type fields

r? @QuietMisdreavus

6 years agoRollup merge of #49515 - GuillaumeGomez:target-background, r=QuietMisdreavus
kennytm [Wed, 4 Apr 2018 09:07:12 +0000 (11:07 +0200)]
Rollup merge of #49515 - GuillaumeGomez:target-background, r=QuietMisdreavus

fix targetted value background

r? @QuietMisdreavus

6 years agoRollup merge of #49512 - GuillaumeGomez:intra-links-fields, r=QuietMisdreavus
kennytm [Wed, 4 Apr 2018 09:07:11 +0000 (11:07 +0200)]
Rollup merge of #49512 - GuillaumeGomez:intra-links-fields, r=QuietMisdreavus

Add support for variant and types fields for intra links

Part of #43466.

r? @QuietMisdreavus

6 years agoRollup merge of #49179 - varkor:future-deprecation, r=QuietMisdreavus,GuillaumeGomez
kennytm [Wed, 4 Apr 2018 09:07:10 +0000 (11:07 +0200)]
Rollup merge of #49179 - varkor:future-deprecation, r=QuietMisdreavus,GuillaumeGomez

Handle future deprecation annotations

This adds special handling to the `since` parameter of the `deprecated` attribute: in particular, if the `since` version exceeds the version of the compiler, the deprecation notice will not be printed; but a note is added to the documentation stating that the item will be deprecated in a later version.

(I've used `since` for this, rather than adding a new attribute, because it's more seamless and, I feel, intuitive. Plus it involves less code churn.)

![image](https://user-images.githubusercontent.com/3943692/37611317-ef5cdf16-2b99-11e8-8251-e35e8f7b0137.png)
![image](https://user-images.githubusercontent.com/3943692/37611323-f748c2d0-2b99-11e8-966b-11408c73d416.png)

This is a prerequisite for doing things renaming methods in the standard library (e.g. #30459). Resolves #30785.

6 years agoAuto merge of #48575 - ishitatsuyuki:unix-no-thread, r=alexcrichton
bors [Wed, 4 Apr 2018 06:19:40 +0000 (06:19 +0000)]
Auto merge of #48575 - ishitatsuyuki:unix-no-thread, r=alexcrichton

rustc_driver: get rid of the extra thread

**Do not rollup**

We can alter the stack size afterwards on Unix.

Having a separate thread causes poor debugging experience when interrupting with signals. I have to get the backtrace of the all thread, as the main thread is waiting to join doing nothing else. This patch allows me to just run `bt` to get the desired backtrace.

6 years agoAuto merge of #49573 - glandium:huge-align, r=SimonSapin
bors [Wed, 4 Apr 2018 03:48:22 +0000 (03:48 +0000)]
Auto merge of #49573 - glandium:huge-align, r=SimonSapin

Reject huge alignments on macos with system allocator only

ef8804ba277b055fdc3e6d148e680e3c1b597ad8 addressed #30170 by rejecting
huge alignments at the allocator API level, transforming a specific
platform bug/limitation into an enforced API limitation on all
platforms.

This change essentially reverts that commit, and instead makes alloc()
itself return AllocErr::Unsupported when receiving huge alignments.

This was discussed in https://github.com/rust-lang/rust/issues/32838#issuecomment-368348408
and following.

6 years agoAuto merge of #48333 - aidanhs:aphs-no-place-for-placement, r=nikomatsakis
bors [Wed, 4 Apr 2018 01:06:35 +0000 (01:06 +0000)]
Auto merge of #48333 - aidanhs:aphs-no-place-for-placement, r=nikomatsakis

Remove all unstable placement features

Closes #22181, #27779. Effectively makes the assortment of placement RFCs (rust-lang/rfcs#470, rust-lang/rfcs#809, rust-lang/rfcs#1228) 'unaccepted'. It leaves `box_syntax` and keeps the `<-` token as recognised by libsyntax.

------------------------

I don't know the correct process for unaccepting an unstable feature that was accepted as an RFC so...here's a PR.

Let me preface this by saying I'm not particularly happy about doing this (I know it'll be unpopular), but I think it's the most honest expression of how things stand today. I've been motivated by a [post on reddit](https://www.reddit.com/r/rust/comments/7wrqk2/when_will_box_and_placementin_syntax_be_stable/) which asks when these features will be stable - the features have received little RFC-style design work since the end of 2015 (~2 years ago) and leaving them in limbo confuses people who want to know where they're up to. Without additional design work that needs to happen (see the collection of unresolved questions later in this post) they can't really get stabilised, and I think that design work would be most suited to an RFC rather than (currently mostly unused) experimental features in Rust nightly.

I have my own motivations - it's very simple to 'defeat' placement in debug mode today and I don't want a placement in Rust that a) has no guarantees to work and b) has no plan for in-place serde deserialisation.

There's a quote in [1]: "Ordinarily these uncertainties might lead to the RFC being postponed. [The RFC seems like a promising direction hence we will accept since it] will thus give us immediate experience with the design and help in determining the best final solution.". I propose that there have been enough additional uncertainties raised since then that the original direction is less promising and we should be think about the problem anew.

(a historical note: the first mention of placement (under that name - uninit pointers were earlier) in an RFC AFAIK is [0] in late 2014 (pre-1.0). RFCs since then have built on this base - [1] is a comment in Feb 2015 accepting a more conservative design of the Place* traits - this is back when serde still required aster and seemed to break every other nightly! A lot has changed since then, perhaps placement should too)

------------------------

Concrete unresolved questions include:

 - making placement work in debug mode [7]
 - making placement work for serde/with fallible creation [5], [irlo2], [8]
 - trait design:
   - opting into not consuming the placer in `Placer::make_place` - [2]
   - trait proliferation - [4] (+ others in that thread)
   - fallible allocation - [3], [4] (+ others in that thread)
 - support for DSTs/unsized structs (if at all) - [1], [6]

More speculative unresolved questions include:

 - better trait design with in the context of future language features [irlo1] (Q11), [irlo3]
 - interaction between custom allocators and placement [irlo3]

[0] https://github.com/rust-lang/rfcs/pull/470
[1] https://github.com/rust-lang/rfcs/pull/809#issuecomment-73910414
[2] https://github.com/rust-lang/rfcs/issues/1286
[3] https://github.com/rust-lang/rfcs/issues/1315
[4] https://github.com/rust-lang/rust/issues/27779#issuecomment-146711893
[5] https://github.com/rust-lang/rust/issues/27779#issuecomment-285562402
[6] https://github.com/rust-lang/rust/issues/27779#issuecomment-354464938
[7] https://github.com/rust-lang/rust/issues/27779#issuecomment-358025344
[8] https://github.com/rust-lang/rfcs/pull/1228#issuecomment-190825370
[irlo1] https://internals.rust-lang.org/t/placement-nwbi-faq-new-box-in-left-arrow/2789
[irlo2] https://internals.rust-lang.org/t/placement-nwbi-faq-new-box-in-left-arrow/2789/19
[irlo3] https://internals.rust-lang.org/t/lang-team-minutes-feature-status-report-placement-in-and-box/4646

6 years agoAuto merge of #48647 - alexcrichton:update-sccache, r=kennytm
bors [Tue, 3 Apr 2018 22:21:37 +0000 (22:21 +0000)]
Auto merge of #48647 - alexcrichton:update-sccache, r=kennytm

Update sccache to its master branch

Ideally I'd like to soon enable sccache for rustbuild itself and some of the
stage0 tools, but for that to work we'll need some better Rust support than the
pretty old version we were previously using!

6 years agoIntroduce Vec::resize_with method (see #41758)
Dirkjan Ochtman [Sun, 1 Apr 2018 14:55:25 +0000 (16:55 +0200)]
Introduce Vec::resize_with method (see #41758)

6 years agoAuto merge of #49447 - pnkfelix:remove-cfg-const-pat-hack-47295, r=nikomatsakis
bors [Tue, 3 Apr 2018 11:50:11 +0000 (11:50 +0000)]
Auto merge of #49447 - pnkfelix:remove-cfg-const-pat-hack-47295, r=nikomatsakis

Remove adjacent all-const match arm hack.

An old fix for moves-in-guards had a hack for adjacent all-const match arms.

The hack was explained in a comment, which you can see here:
https://github.com/rust-lang/rust/pull/22580/files#diff-402a0fa4b3c6755c5650027c6d4cf1efR497

But hack was incomplete (and thus unsound), as pointed out here:
https://github.com/rust-lang/rust/issues/47295#issuecomment-357108458

Plus, it is likely to be at least tricky to reimplement this hack in
the new NLL borrowck.

So rather than try to preserve the hack, we want to try to just remove
it outright. (At least to see the results of a crater run.)

[breaking-change]

This is a breaking-change, but our hope is that no one is actually
relying on such an extreme special case. (We hypothesize the hack was
originally added to accommodate a file in our own test suite, not code
in the wild.)

6 years agoAuto merge of #49348 - bobtwinkles:extend_2pb, r=nikomatsakis
bors [Tue, 3 Apr 2018 09:11:35 +0000 (09:11 +0000)]
Auto merge of #49348 - bobtwinkles:extend_2pb, r=nikomatsakis

Extend two-phase borrows to apply to method receiver autorefs

Fixes #48598 by permitting two-phase borrows on the autorefs created when functions and methods.

6 years agoRemove all unstable placement features
Aidan Hobson Sayers [Sun, 18 Feb 2018 17:39:40 +0000 (17:39 +0000)]
Remove all unstable placement features

Closes #22181, #27779

6 years agoAuto merge of #49098 - matklad:find_map, r=KodrAus
bors [Tue, 3 Apr 2018 06:28:41 +0000 (06:28 +0000)]
Auto merge of #49098 - matklad:find_map, r=KodrAus

Add Iterator::find_map

I'd like to propose to add `find_map` method to the `Iterator`: an occasionally useful utility, which relates to `filter_map` in the same way that `find` relates to `filter`.

`find_map` takes an `Option`-returning function, applies it to the elements of the iterator, and returns the first non-`None` result. In other words, `find_map(f) == filter_map(f).next()`.

Why do we want to add a function to the `Iterator`, which can be trivially expressed as a combination of existing ones? Observe that `find(f) == filter(f).next()`, so, by the same logic, `find` itself is unnecessary!

The more positive argument is that desugaring of  `find[_map]` in terms of `filter[_map]().next()` is not super obvious, because the `filter` operation reads as if it is applies to the whole collection, although in reality we are interested only in the first element. That is, the jump from "I need a **single** result" to "let's use a function which maps **many** values to **many** values" is a non-trivial speed-bump, and causes friction when reading and writing code.

Does the need for `find_map` arise in practice? Yes!

* Anecdotally, I've more than once searched the docs for the function with `[T] -> (T -> Option<U>) -> Option<U>` signature.
* The direct cause for this PR was [this](https://github.com/rust-lang/cargo/pull/5187/files/1291c50e86ed4b31db0c76de03a47a5d0074bbd7#r174934173) discussion in Cargo, which boils down to "there's some pattern that we try to express here, but current approaches looks non-pretty" (and the pattern is `filter_map`
* There are several `filter_map().next` combos in Cargo: [[1]](https://github.com/rust-lang/cargo/blob/545a4a2c930916cc9c3dc1716fb7a33299e4062b/src/cargo/ops/cargo_new.rs#L585), [[2]](https://github.com/rust-lang/cargo/blob/545a4a2c930916cc9c3dc1716fb7a33299e4062b/src/cargo/core/resolver/mod.rs#L1130), [[3]](https://github.com/rust-lang/cargo/blob/545a4a2c930916cc9c3dc1716fb7a33299e4062b/src/cargo/ops/cargo_rustc/mod.rs#L1086).
* I've also needed similar functionality in `Kotlin` several times. There, it is expressed as `mapNotNull {}.firstOrNull`, as can be seen [here](https://github.com/intellij-rust/intellij-rust/blob/ee8bdb4e073fd07142fc6e1853ca288c57495e69/src/main/kotlin/org/rust/cargo/project/model/impl/CargoProjectImpl.kt#L154), [here](https://github.com/intellij-rust/intellij-rust/blob/ee8bdb4e073fd07142fc6e1853ca288c57495e69/src/main/kotlin/org/rust/lang/core/resolve/ImplLookup.kt#L444) [here](https://github.com/intellij-rust/intellij-rust/blob/ee8bdb4e073fd07142fc6e1853ca288c57495e69/src/main/kotlin/org/rust/ide/inspections/RsLint.kt#L38) and [here](https://github.com/intellij-rust/intellij-rust/blob/ee8bdb4e073fd07142fc6e1853ca288c57495e69/src/main/kotlin/org/rust/cargo/toolchain/RustToolchain.kt#L74) (and maybe in some other cases as well)

Note that it is definitely not among the most popular functions (it definitely is less popular than `find`), but, for example it (in case of Cargo) seems to be more popular than `rposition` (1 occurrence), `step_by` (zero occurrences) and `nth` (three occurrences as `nth(0)` which probably should be replaced with `next`).

Do we necessary need this function in `std`? Could we move it to itertools? That is possible, but observe that `filter`, `filter_map`, `find` and `find_map` together really form a complete table:

|||
|-------|---------|
| filter| find|
|filter_map|find_map|

It would be somewhat unsatisfying to have one quarter of this table live elsewhere :) Also, if `Itertools` adds an `find_map` method, it would be more difficult to move it to std due to name collision.

Hm, at this point I've searched for `filter_map` the umpteenth time, and, strangely, this time I do find this RFC: https://github.com/rust-lang/rfcs/issues/1801. I guess this could be an implementation though? :)

To sum up:

Pro:
  - complete the symmetry with existing method
  - codify a somewhat common non-obvious pattern

Contra:
  - niche use case
  - we can, and do, live without it

6 years agoFix imports
Tatsuyuki Ishi [Tue, 3 Apr 2018 03:42:36 +0000 (12:42 +0900)]
Fix imports

6 years agoRemove splice page from unstable book.
Thayne McCombs [Tue, 3 Apr 2018 01:41:22 +0000 (19:41 -0600)]
Remove splice page from unstable book.

6 years agoMerge remote-tracking branch 'upstream/master' into string-splice-stabilize
Thayne McCombs [Tue, 3 Apr 2018 01:36:13 +0000 (19:36 -0600)]
Merge remote-tracking branch 'upstream/master' into string-splice-stabilize

6 years agorun-pass/attr-stmt-expr: expand test cases
Austin Bonander [Tue, 3 Apr 2018 00:21:37 +0000 (17:21 -0700)]
run-pass/attr-stmt-expr: expand test cases

6 years agoStabilize iterator_try_fold in 1.27.0
Josh Stone [Mon, 2 Apr 2018 23:40:53 +0000 (16:40 -0700)]
Stabilize iterator_try_fold in 1.27.0

6 years agoStabilize iter_rfind in 1.27.0
Josh Stone [Mon, 2 Apr 2018 23:37:06 +0000 (16:37 -0700)]
Stabilize iter_rfind in 1.27.0

6 years agoStabilize iter_rfold in 1.27.0
Josh Stone [Mon, 2 Apr 2018 23:33:09 +0000 (16:33 -0700)]
Stabilize iter_rfold in 1.27.0

6 years agoAuto merge of #49590 - alexcrichton:update-deps, r=Mark-Simulacrum
bors [Mon, 2 Apr 2018 22:37:15 +0000 (22:37 +0000)]
Auto merge of #49590 - alexcrichton:update-deps, r=Mark-Simulacrum

Bump to 1.27.0

Also update some `Cargo.lock` dependencies, finishing up some final steps of our
[release process]!

This doesn't update the bootstrap compiler just yet but that will come in a
follow-up PR.

[release process]: https://forge.rust-lang.org/release-process.html

6 years agoReplace as_ref with &
varkor [Mon, 2 Apr 2018 21:57:47 +0000 (22:57 +0100)]
Replace as_ref with &

6 years agoAdd Iterator::find_map
Aleksey Kladov [Fri, 16 Mar 2018 16:38:25 +0000 (19:38 +0300)]
Add Iterator::find_map

6 years agoFix typo
Rolf van de Krol [Mon, 2 Apr 2018 19:48:56 +0000 (21:48 +0200)]
Fix typo

6 years agoBump to 1.27.0
Alex Crichton [Mon, 2 Apr 2018 15:43:55 +0000 (08:43 -0700)]
Bump to 1.27.0

Also update some `Cargo.lock` dependencies, finishing up some final steps of our
[release process]!

This doesn't update the bootstrap compiler just yet but that will come in a
follow-up PR.

[release process]: https://forge.rust-lang.org/release-process.html

6 years agoUpdate sccache to its master branch
Alex Crichton [Thu, 1 Mar 2018 22:50:50 +0000 (14:50 -0800)]
Update sccache to its master branch

Ideally I'd like to soon enable sccache for rustbuild itself and some of the
stage0 tools, but for that to work we'll need some better Rust support than the
pretty old version we were previously using!

6 years agoAuto merge of #49252 - Manishearth:easy-feature-flag, r=nikomatsakis
bors [Mon, 2 Apr 2018 18:14:09 +0000 (18:14 +0000)]
Auto merge of #49252 - Manishearth:easy-feature-flag, r=nikomatsakis

Easy edition feature flag

We no longer gate features on epochs; instead we have a `#![feature(rust_2018_preview)]` that flips on a bunch of features (currently dyn_trait).

Based on #49001 to avoid merge conflicts

r? @nikomatsakis

6 years agoFix url for intra link provided method
Guillaume Gomez [Mon, 2 Apr 2018 16:52:04 +0000 (18:52 +0200)]
Fix url for intra link provided method

6 years agoAuto merge of #49124 - abonander:attr-macro-stmt-expr, r=abonander
bors [Mon, 2 Apr 2018 10:38:28 +0000 (10:38 +0000)]
Auto merge of #49124 - abonander:attr-macro-stmt-expr, r=abonander

Expand Attributes on Statements and Expressions

This enables attribute-macro expansion on statements and expressions while retaining the `stmt_expr_attributes` feature requirement for attributes on expressions.

closes #41475
cc #38356  @petrochenkov @jseyfried
r? @nrc

6 years agoExpand attribute macros on statements and expressions.
Austin Bonander [Fri, 16 Mar 2018 06:20:56 +0000 (23:20 -0700)]
Expand attribute macros on statements and expressions.

Retains the `stmt_expr_attributes` feature requirement for attributes on expressions.

closes #41475
cc #38356

6 years agoAuto merge of #49580 - glandium:core-heap, r=SimonSapin
bors [Mon, 2 Apr 2018 08:07:10 +0000 (08:07 +0000)]
Auto merge of #49580 - glandium:core-heap, r=SimonSapin

Use Alloc and Layout from core::heap.

94d1970bba87f2d2893f6e934e4c3f02ed50604d moved the alloc::allocator
module to core::heap, moving e.g. Alloc and Layout out of the alloc
crate. While alloc::heap reexports them, it's better to use them from
where they really come from.

6 years agoUse Alloc and Layout from core::heap.
Mike Hommey [Mon, 2 Apr 2018 07:05:30 +0000 (16:05 +0900)]
Use Alloc and Layout from core::heap.

94d1970bba87f2d2893f6e934e4c3f02ed50604d moved the alloc::allocator
module to core::heap, moving e.g. Alloc and Layout out of the alloc
crate. While alloc::heap reexports them, it's better to use them from
where they really come from.

6 years agoAuto merge of #49574 - tmccombs:stabilize-getpid, r=sfackler
bors [Mon, 2 Apr 2018 05:48:33 +0000 (05:48 +0000)]
Auto merge of #49574 - tmccombs:stabilize-getpid, r=sfackler

Stabilize `std::process::id()`

Fixes #44971

6 years agoStabilize String::replace_range
Thayne McCombs [Mon, 2 Apr 2018 04:50:22 +0000 (22:50 -0600)]
Stabilize String::replace_range

Fixes #44643

6 years agoStabilize `std::process::id()`
Thayne McCombs [Mon, 2 Apr 2018 03:40:56 +0000 (21:40 -0600)]
Stabilize `std::process::id()`

Fixes #44971

6 years agoReject huge alignments on macos with system allocator only
Mike Hommey [Mon, 2 Apr 2018 02:06:19 +0000 (11:06 +0900)]
Reject huge alignments on macos with system allocator only

ef8804ba277b055fdc3e6d148e680e3c1b597ad8 addressed #30170 by rejecting
huge alignments at the allocator API level, transforming a specific
platform bug/limitation into an enforced API limitation on all
platforms.

This change essentially reverts that commit, and instead makes alloc()
itself return AllocErr::Unsupported when receiving huge alignments.

This was discussed in https://github.com/rust-lang/rust/issues/32838#issuecomment-368348408
and following.

6 years agoAuto merge of #49571 - anderspitman:patch-1, r=frewsxcv
bors [Mon, 2 Apr 2018 03:24:51 +0000 (03:24 +0000)]
Auto merge of #49571 - anderspitman:patch-1, r=frewsxcv

Update drop.rs

6 years agoUpdate drop.rs
Anders Pitman [Sun, 1 Apr 2018 23:19:42 +0000 (16:19 -0700)]
Update drop.rs

6 years agoavoid IdxSets containing garbage above the universe length
Ariel Ben-Yehuda [Sun, 1 Apr 2018 21:14:44 +0000 (00:14 +0300)]
avoid IdxSets containing garbage above the universe length

This makes sure that all bits in each IdxSet between the universe length
and the end of the word are all zero instead of being in an indeterminate state.

This fixes a crash with RUST_LOG=rustc_mir, and is probably a good idea
anyway.

6 years agoAuto merge of #49561 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
bors [Sun, 1 Apr 2018 16:34:27 +0000 (16:34 +0000)]
Auto merge of #49561 - Mark-Simulacrum:rollup, r=Mark-Simulacrum

Rollup of 3 pull requests

- Successful merges: #49451, #49498, #49549
- Failed merges:

6 years agoFix miri Discriminant() for non-ADT
bjorn3 [Sat, 31 Mar 2018 10:47:49 +0000 (12:47 +0200)]
Fix miri Discriminant() for non-ADT

6 years agoRollup merge of #49549 - Mark-Simulacrum:bootstrap-cleanup, r=alexcrichton
Mark Simulacrum [Sun, 1 Apr 2018 16:04:57 +0000 (18:04 +0200)]
Rollup merge of #49549 - Mark-Simulacrum:bootstrap-cleanup, r=alexcrichton

Remove filetime dep from build_helper

r? @alexcrichton

6 years agoRollup merge of #49498 - Manishearth:clippyup, r=oli-obk
Mark Simulacrum [Sun, 1 Apr 2018 16:04:56 +0000 (18:04 +0200)]
Rollup merge of #49498 - Manishearth:clippyup, r=oli-obk

Update clippy

r? @oli-obk

6 years agoRollup merge of #49451 - QuietMisdreavus:epoch-doctests, r=GuillaumeGomez
Mark Simulacrum [Sun, 1 Apr 2018 16:04:54 +0000 (18:04 +0200)]
Rollup merge of #49451 - QuietMisdreavus:epoch-doctests, r=GuillaumeGomez

rustdoc: add an --edition flag to compile docs/doctests with a certain edition

To correspond with the 2018 edition, this adds a (currently unstable) `--edition` flag to rustdoc that makes it compile crates and doctests with the given edition. Once this lands, Cargo should be updated to pass this flag when the edition configuration option is given.

6 years agoAuto merge of #49478 - Phlosioneer:fix-windows-file-not-found, r=petrochenkov
bors [Sun, 1 Apr 2018 12:54:02 +0000 (12:54 +0000)]
Auto merge of #49478 - Phlosioneer:fix-windows-file-not-found, r=petrochenkov

Fix escaped backslash in windows file not found message

When a module is declared, but no matching file exists, rustc gives
an error like `help: name the file either foo.rs or foo/mod.rs inside
the directory "src/bar"`. However, at on windows, the backslash was
double-escaped when naming the directory.

It did this because the string was printed in debug mode (`"{:?}"`) to
surround it with quotes. However, it should just be printed like any
other directory in an error message and surrounded by escaped quotes,
rather than relying on the debug print to add quotes (`"\"{}\""`).

I also checked the test suite to see if this output is being correctly tested. It's not - it only tests up to the word "directory". Presumably this is so that the test is not dependent on its exact position in the source tree. I don't know a better way to test this, unless the test suite supports regex?

6 years agoRemove filetime dep from build_helper
Mark Simulacrum [Sun, 1 Apr 2018 02:32:40 +0000 (20:32 -0600)]
Remove filetime dep from build_helper

6 years agoAuto merge of #49418 - frewsxcv:frewsxcv-network-order, r=TimNN
bors [Sun, 1 Apr 2018 10:09:58 +0000 (10:09 +0000)]
Auto merge of #49418 - frewsxcv:frewsxcv-network-order, r=TimNN

Clarify network byte order conversions for integer / IP address conversions.

Opened primarily to address https://github.com/rust-lang/rust/issues/48819.

Also added a few other conversion docs/examples.

6 years agoAuto merge of #49545 - alexcrichton:proc-macro-fixes, r=eddyb
bors [Sun, 1 Apr 2018 07:22:28 +0000 (07:22 +0000)]
Auto merge of #49545 - alexcrichton:proc-macro-fixes, r=eddyb

proc_macro: Tweak doc comments and negative literals

This commit tweaks the tokenization of a doc comment to use `#[doc = "..."]`
like `macro_rules!` does (instead of treating it as a `Literal` token).
Additionally it fixes treatment of negative literals in the compiler, for
exapmle `Literal::i32(-1)`. The current fix is a bit of a hack around the
current compiler implementation, providing a fix at the proc-macro layer rather
than the libsyntax layer.

Closes #48889

6 years agoAuto merge of #49530 - petrhosek:empty-extra-flags, r=cramertj
bors [Sun, 1 Apr 2018 05:09:48 +0000 (05:09 +0000)]
Auto merge of #49530 - petrhosek:empty-extra-flags, r=cramertj

Only include space in RUSTFLAGS extra flags if not empty

When the RUSTFLAGS_STAGE_{1,2} is not set, including a space means
the string will always be non-empty and RUSTFLAGS will be always be
reset which breaks other ways of setting these such as through config
in CARGO_HOME.

6 years agoAuto merge of #49522 - mbrubeck:fs_read, r=SimonSapin
bors [Sun, 1 Apr 2018 02:44:45 +0000 (02:44 +0000)]
Auto merge of #49522 - mbrubeck:fs_read, r=SimonSapin

Rename fs::read_string to read_to_string and stabilize

As approved in https://github.com/rust-lang/rust/issues/46588#issuecomment-377530365

Closes #46588.

6 years agoAuto merge of #49527 - petrhosek:fast-submodules, r=alexcrichton
bors [Sun, 1 Apr 2018 00:22:45 +0000 (00:22 +0000)]
Auto merge of #49527 - petrhosek:fast-submodules, r=alexcrichton

Handle fast-submodules option correctly

This option was introduced in 72cb109bec8, but it uses two different
spellings (`fast-submodule` in `bootstrap.py` vs `fast-submodules` in
`config.toml.example`) and isn't handled by Rust bootstrap which means
that any attempt to set this flag fails.

6 years agoproc_macro: Tweak doc comments and negative literals
Alex Crichton [Fri, 30 Mar 2018 09:55:54 +0000 (02:55 -0700)]
proc_macro: Tweak doc comments and negative literals

This commit tweaks the tokenization of a doc comment to use `#[doc = "..."]`
like `macro_rules!` does (instead of treating it as a `Literal` token).
Additionally it fixes treatment of negative literals in the compiler, for
exapmle `Literal::i32(-1)`. The current fix is a bit of a hack around the
current compiler implementation, providing a fix at the proc-macro layer rather
than the libsyntax layer.

6 years agoShorten deprecation note
varkor [Sat, 31 Mar 2018 17:31:22 +0000 (18:31 +0100)]
Shorten deprecation note

6 years agoAdd ignore reason
Phlosioneer [Sat, 31 Mar 2018 20:23:50 +0000 (16:23 -0400)]
Add ignore reason

6 years agoRemove whitespace
Phlosioneer [Sat, 31 Mar 2018 20:08:58 +0000 (16:08 -0400)]
Remove whitespace

6 years agoAuto merge of #49521 - mbrubeck:fs_read_write_bytes, r=TimNN
bors [Sat, 31 Mar 2018 17:58:50 +0000 (17:58 +0000)]
Auto merge of #49521 - mbrubeck:fs_read_write_bytes, r=TimNN

fs_read_write_bytes stabilized in 1.26.0

Fix the stabilization attributes from #49422 because it merged before 1.26 branched to beta.

r? @TimNN

6 years agoAuto merge of #49501 - sfackler:unix-epoch-assoc-const, r=alexcrichton
bors [Sat, 31 Mar 2018 15:33:28 +0000 (15:33 +0000)]
Auto merge of #49501 - sfackler:unix-epoch-assoc-const, r=alexcrichton

Make UNIX_EPOCH an associated constant of SystemTime

It's not very discoverable as a separate const in the module.

r? @alexcrichton

6 years agoAuto merge of #49500 - oli-obk:mir_dep_graph, r=michaelwoerister
bors [Sat, 31 Mar 2018 12:50:13 +0000 (12:50 +0000)]
Auto merge of #49500 - oli-obk:mir_dep_graph, r=michaelwoerister

Introduce an edge from a const eval to the MIR of all statics it depends on

r? @michaelwoerister

6 years agoAuto merge of #49481 - SimonSapin:core-heap, r=alexcrichton
bors [Sat, 31 Mar 2018 09:11:21 +0000 (09:11 +0000)]
Auto merge of #49481 - SimonSapin:core-heap, r=alexcrichton

Move the alloc::allocator module to core::heap

This is the `Alloc` trait and its dependencies.

6 years agoAuto merge of #49201 - Phlosioneer:add-trivial-size-hints, r=SimonSapin
bors [Sat, 31 Mar 2018 06:40:56 +0000 (06:40 +0000)]
Auto merge of #49201 - Phlosioneer:add-trivial-size-hints, r=SimonSapin

Implement some trivial size_hints for various iterators

This also implements ExactSizeIterator where applicable.

Addresses most of the Iterator traits mentioned in #23708.

I intend to do more, but I don't want to make the PR too large.

6 years agoAdd #[must_use] to a few standard library methods
Scott McMurray [Sat, 31 Mar 2018 06:06:05 +0000 (23:06 -0700)]
Add #[must_use] to a few standard library methods

Chosen to start a precedent of using it on ones that are potentially-expensive and where using it for side effects is particularly discouraged.

Discuss :)

6 years agoFix tidy trailing newlines
Phlosioneer [Sat, 31 Mar 2018 05:26:02 +0000 (01:26 -0400)]
Fix tidy trailing newlines

6 years agoCommit code for option size hint
Phlosioneer [Sat, 31 Mar 2018 05:13:02 +0000 (01:13 -0400)]
Commit code for option size hint

6 years agoAdd test for rustdoc ignore test
Phlosioneer [Sat, 31 Mar 2018 04:50:53 +0000 (00:50 -0400)]
Add test for rustdoc ignore test

This will check for regression on issue #32556

6 years agoAuto merge of #49472 - nikomatsakis:nll-optimize-constraint-prop-1, r=pnkfelix
bors [Sat, 31 Mar 2018 04:09:43 +0000 (04:09 +0000)]
Auto merge of #49472 - nikomatsakis:nll-optimize-constraint-prop-1, r=pnkfelix

optimize NLL constraint propagation a little

Removes a bone-headed hot spot in NLL constant propagation; we were re-allocating the stack vector and hashmap as we repeated the DFS. This change shares those resources across each call.

It also modifies the constraint list to be a linked list; arguably I should revert that, though, as this didn't turn out to be a perf hit and perhaps the old code was clearer? (Still, the new style appeals to me.)

r? @pnkfelix

6 years agoOnly include space in RUSTFLAGS extra flags if not empty
Petr Hosek [Sat, 31 Mar 2018 02:37:08 +0000 (19:37 -0700)]
Only include space in RUSTFLAGS extra flags if not empty

When the RUSTFLAGS_STAGE_{1,2} is not set, including a space means
the string will always be non-empty and RUSTFLAGS will be always be
reset which breaks other ways of setting these such as through config
in CARGO_HOME.

6 years agoAuto merge of #49459 - GuillaumeGomez:primitive-intra-links, r=QuietMisdreavus
bors [Sat, 31 Mar 2018 01:34:15 +0000 (01:34 +0000)]
Auto merge of #49459 - GuillaumeGomez:primitive-intra-links, r=QuietMisdreavus

Add primitive intra-links

Part of #43466.

r? @QuietMisdreavus

6 years agoHandle fast-submodules option correctly
Petr Hosek [Fri, 30 Mar 2018 23:42:57 +0000 (16:42 -0700)]
Handle fast-submodules option correctly

This option was introduced in 72cb109bec8, but it uses two different
spellings (fast-submodule vs fast-submodules) and isn't handled by
Rust bootstrap which means that any attempt to set this flag fails.

6 years agoAuto merge of #49324 - SimonSapin:unsigned, r=alexcrichton
bors [Fri, 30 Mar 2018 19:11:15 +0000 (19:11 +0000)]
Auto merge of #49324 - SimonSapin:unsigned, r=alexcrichton

Deprecate signed std::num::NonZeroI* with a call for use cases

CC https://github.com/rust-lang/rust/issues/49137#issuecomment-375823481

6 years agoRename fs::read_string to read_to_string and stabilize
Matt Brubeck [Fri, 30 Mar 2018 16:48:18 +0000 (09:48 -0700)]
Rename fs::read_string to read_to_string and stabilize

6 years agofs_read_write_bytes stabilized in 1.26.0
Matt Brubeck [Fri, 30 Mar 2018 16:55:52 +0000 (09:55 -0700)]
fs_read_write_bytes stabilized in 1.26.0

6 years agoAuto merge of #49518 - SimonSapin:prelude, r=alexcrichton
bors [Fri, 30 Mar 2018 16:44:15 +0000 (16:44 +0000)]
Auto merge of #49518 - SimonSapin:prelude, r=alexcrichton

Revert "Add TryFrom and TryInto to the prelude"

This reverts commit 09008cc23ff6395c2c928f3690e07d7389d08ebc.

This addition landed in https://github.com/rust-lang/rust/pull/49305 and turned out to break crates that had their own copy of `TryFrom` in order to use it on the Stable channel :(

We’ll explore the possibility of the 2018 edition having a different prelude that includes this traits. However per the editions RFC this requires implementing a warning in the 2015 edition for code that *would* break.

6 years agoDeprecate signed std::num::NonZeroI* with a call for use cases
Simon Sapin [Sat, 24 Mar 2018 10:15:10 +0000 (11:15 +0100)]
Deprecate signed std::num::NonZeroI* with a call for use cases

6 years agoAdd support for variant and types fields for intra links
Guillaume Gomez [Fri, 30 Mar 2018 12:20:16 +0000 (14:20 +0200)]
Add support for variant and types fields for intra links

6 years agoAuto merge of #49425 - alexcrichton:disallow-inline-always, r=petrochenkov
bors [Fri, 30 Mar 2018 14:11:35 +0000 (14:11 +0000)]
Auto merge of #49425 - alexcrichton:disallow-inline-always, r=petrochenkov

rustc: Forbid #[inline(always)] with #[target_feature]

Once a target feature is enabled for a function that means that it in general
can't be inlined into other functions which don't have that target feature
enabled. This can cause both safety and LLVM issues if we were to actually
inline it, so `#[inline(always)]` both can't be respected and would be an error
if we did so!

Today LLVM doesn't inline functions with different `#[target_feature]`
annotations, but it turns out that if one is tagged with `#[inline(always)]`
it'll override this and cause scary LLVM error to arise!

This commit fixes this issue by forbidding these two attributes to be used in
conjunction with one another.

Closes rust-lang-nursery/stdsimd#404

6 years agoAdd missing anchor for union type fields
Guillaume Gomez [Fri, 30 Mar 2018 14:10:05 +0000 (16:10 +0200)]
Add missing anchor for union type fields

6 years agoRevert "Add TryFrom and TryInto to the prelude"
Simon Sapin [Fri, 30 Mar 2018 13:54:05 +0000 (15:54 +0200)]
Revert "Add TryFrom and TryInto to the prelude"

This reverts commit 09008cc23ff6395c2c928f3690e07d7389d08ebc.

6 years agofix targetted value background
Guillaume Gomez [Fri, 30 Mar 2018 13:43:22 +0000 (15:43 +0200)]
fix targetted value background

6 years agoFix doctest
Steven Fackler [Fri, 30 Mar 2018 13:35:36 +0000 (15:35 +0200)]
Fix doctest

6 years agoAdd an explanation for the `create_depgraph_edges`
Oliver Schneider [Fri, 30 Mar 2018 11:57:11 +0000 (13:57 +0200)]
Add an explanation for the `create_depgraph_edges`

6 years agoAuto merge of #49403 - oli-obk:try2, r=eddyb
bors [Fri, 30 Mar 2018 11:48:10 +0000 (11:48 +0000)]
Auto merge of #49403 - oli-obk:try2, r=eddyb

Trim discriminants to their final type size

r? @eddyb

fixes  #49181

6 years agoMake UNIX_EPOCH an associated constant of SystemTime
Steven Fackler [Fri, 30 Mar 2018 10:01:36 +0000 (12:01 +0200)]
Make UNIX_EPOCH an associated constant of SystemTime

It's not very discoverable as a separate const in the module.

6 years agoIntroduce an edge from a const eval to the MIR of all statics it depends on
Oliver Schneider [Fri, 30 Mar 2018 10:31:48 +0000 (12:31 +0200)]
Introduce an edge from a const eval to the MIR of all statics it depends on

6 years agoAuto merge of #49424 - oli-obk:stable_allocid_hash, r=michaelwoerister
bors [Fri, 30 Mar 2018 09:11:08 +0000 (09:11 +0000)]
Auto merge of #49424 - oli-obk:stable_allocid_hash, r=michaelwoerister

Fix stable hashing of AllocIds

r? @michaelwoerister

fixes #49081

6 years agoBump lockfile
Manish Goregaokar [Fri, 30 Mar 2018 09:08:58 +0000 (11:08 +0200)]
Bump lockfile

6 years agoUpdate clippy
Manish Goregaokar [Fri, 30 Mar 2018 09:08:06 +0000 (11:08 +0200)]
Update clippy

6 years agoAuto merge of #49422 - mbrubeck:fs_read, r=TimNN
bors [Fri, 30 Mar 2018 06:49:33 +0000 (06:49 +0000)]
Auto merge of #49422 - mbrubeck:fs_read, r=TimNN

Stabilize fs::read and fs::write

As discussed in https://github.com/rust-lang/rust/issues/46588#issuecomment-373956283

6 years agoAuto merge of #49489 - kennytm:rollup, r=kennytm
bors [Fri, 30 Mar 2018 04:17:05 +0000 (04:17 +0000)]
Auto merge of #49489 - kennytm:rollup, r=kennytm

Rollup of 10 pull requests

- Successful merges: #49443, #49445, #49446, #49463, #49464, #49466, #49468, #49473, #49484, #49486
- Failed merges:

6 years agoAuto merge of #49412 - GuillaumeGomez:hide-type-decl, r=QuietMisdreavus
bors [Fri, 30 Mar 2018 01:45:54 +0000 (01:45 +0000)]
Auto merge of #49412 - GuillaumeGomez:hide-type-decl, r=QuietMisdreavus

Hide type declarations by default

I'm not very happy for the moment about the rendering but the bases are here:

<img width="610" alt="screen shot 2018-03-27 at 11 56 27" src="https://user-images.githubusercontent.com/3050060/37960492-0e045954-31b6-11e8-9cea-1ef8a3f980c4.png">

r? @QuietMisdreavus

6 years agoRollup merge of #49486 - oconnor663:releases_typo, r=steveklabnik
kennytm [Thu, 29 Mar 2018 23:31:20 +0000 (01:31 +0200)]
Rollup merge of #49486 - oconnor663:releases_typo, r=steveklabnik

correct a typo in RELEASES.md