]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoRollup merge of #50416 - rleungx:non-lifetime, r=estebank
kennytm [Thu, 3 May 2018 18:16:59 +0000 (02:16 +0800)]
Rollup merge of #50416 - rleungx:non-lifetime, r=estebank

check if the token is a lifetime before parsing

Fixes #50381.

6 years agoRollup merge of #50406 - ExpHP:concat-nonzero-idents, r=dtolnay
kennytm [Thu, 3 May 2018 18:16:39 +0000 (02:16 +0800)]
Rollup merge of #50406 - ExpHP:concat-nonzero-idents, r=dtolnay

Forbid constructing empty identifiers from concat_idents

The empty identifier is a [reserved identifier](https://github.com/rust-lang/rust/blob/8a37c75a3a661385cc607d934c70e86a9eaf5fd7/src/libsyntax_pos/symbol.rs#L300-L305) in rust, apparently used for black magicks like representing the crate root or somesuch... and therefore, being able to construct it is Ungood.  Presumably.

...even if the macro that lets you construct it is so useless that you can't actually do any damage with it. (and believe me, I tried)

Fixes #50403.

**Note:** I noticed that when you try to do something similar with `proc_macro::Term`, the compiler actually catches it and flags the identifier as reserved.  Perhaps a better solution would be to somehow have that same check applied here.

6 years agoRollup merge of #50421 - kennytm:fix-50415-ice-when-returning-range-inclusive-from...
kennytm [Thu, 3 May 2018 15:42:36 +0000 (23:42 +0800)]
Rollup merge of #50421 - kennytm:fix-50415-ice-when-returning-range-inclusive-from-closure, r=michaelwoerister

Fix ICE when using a..=b in a closure.

Fix #50415.

6 years agoRollup merge of #50417 - matklad:pr-50379, r=alexcrichton
kennytm [Thu, 3 May 2018 15:41:59 +0000 (23:41 +0800)]
Rollup merge of #50417 - matklad:pr-50379, r=alexcrichton

Update Cargo

This should fix RLS

cc https://github.com/rust-lang/rust/pull/50379, https://github.com/rust-lang/cargo/pull/5465

6 years agoRollup merge of #50407 - nnethercote:inline-BytePos, r=michaelwoerister
kennytm [Thu, 3 May 2018 08:11:34 +0000 (16:11 +0800)]
Rollup merge of #50407 - nnethercote:inline-BytePos, r=michaelwoerister

Always inline simple BytePos and CharPos methods.

Because they are (a) trivial, and (b) super hot.

This change speeds up most rustc-perf benchmarks, the best by 5%.

Full measurements:
```
coercions-check
avg: -3.0% min: -5.4% max: -1.3%
helloworld-check
avg: -3.9% min: -4.1% max: -3.6%
unify-linearly-check
avg: -3.1% min: -3.7% max: -2.5%
deeply-nested-check
avg: -2.6% min: -3.6% max: -2.1%
coercions-opt
avg: -2.1% min: -3.6% max: -1.3%
coercions
avg: -2.0% min: -3.5% max: -1.0%
issue-46449-check
avg: -2.8% min: -3.1% max: -2.6%
parser-check
avg: -2.6% min: -3.1% max: -2.0%
deeply-nested-opt
avg: -1.5% min: -3.0% max: -0.8%
deeply-nested
avg: -1.8% min: -2.9% max: -1.1%
issue-46449
avg: -1.4% min: -2.7% max: -1.1%
issue-46449-opt
avg: -1.0% min: -2.7% max: -0.5%
regression-31157-check
avg: -1.7% min: -2.3% max: -1.1%
tuple-stress-opt
avg: -1.0% min: -2.2% max: -0.5%
tokio-webpush-simple-check
avg: -1.6% min: -2.1% max: -1.2%
tuple-stress-check
avg: -1.2% min: -2.1% max: -0.8%
unused-warnings-check
avg: -1.6% min: -2.0% max: -1.4%
encoding-check
avg: -1.4% min: -1.8% max: -1.0%
tuple-stress
avg: -1.0% min: -1.7% max: -0.6%
encoding-opt
avg: -0.9% min: -1.6% max: -0.3%
unused-warnings
avg: -1.3% min: -1.6% max: -1.2%
unused-warnings-opt
avg: -1.3% min: -1.5% max: -1.2%
encoding
avg: -1.0% min: -1.5% max: -0.4%
html5ever-opt
avg: -0.7% min: -1.5% max: -0.3%
futures
avg: -1.0% min: -1.5% max: -0.5%
futures-check
avg: -1.0% min: -1.5% max: -0.5%
futures-opt
avg: -0.8% min: -1.4% max: -0.3%
regression-31157-opt
avg: -0.5% min: -1.4% max: -0.0%
unify-linearly-opt
avg: -1.2% min: -1.4% max: -1.0%
parser-opt
avg: -1.2% min: -1.4% max: -1.0%
helloworld
avg: -1.3% min: -1.4% max: -1.3%
helloworld-opt
avg: -1.3% min: -1.3% max: -1.3%
parser
avg: -1.2% min: -1.3% max: -1.0%
regex-check
avg: -1.1% min: -1.3% max: -0.7%
unify-linearly
avg: -1.1% min: -1.3% max: -1.0%
syn-check
avg: -0.8% min: -1.3% max: -0.3%
piston-image-check
avg: -0.7% min: -1.2% max: -0.4%
regex-opt
avg: -0.5% min: -1.2% max: -0.0%
syn
avg: -0.6% min: -1.2% max: -0.3%
hyper
avg: -0.8% min: -1.2% max: -0.4%
syn-opt
avg: -0.5% min: -1.2% max: -0.1%
regex
avg: -0.7% min: -1.2% max: -0.3%
regression-31157
avg: -0.7% min: -1.2% max: -0.3%
clap-rs-check
avg: -0.6% min: -1.1% max: -0.2%
hyper-check
avg: -0.8% min: -1.1% max: -0.5%
piston-image-opt
avg: -0.4% min: -1.1% max: -0.0%
hyper-opt
avg: -0.6% min: -1.0% max: 0.0%
inflate
avg: -0.4% min: -1.0% max: -0.2%
html5ever
avg: -0.5% min: -1.0% max: -0.2%
inflate-opt
avg: -0.3% min: -1.0% max: 0.3%
deep-vector-check
avg: -0.6% min: -1.0% max: -0.3%
style-servo-check
avg: -0.7% min: -1.0% max: -0.5%
tokio-webpush-simple-opt
avg: -0.3% min: -0.9% max: 0.0%
inflate-check
avg: -0.3% min: -0.9% max: -0.1%
piston-image
avg: -0.4% min: -0.8% max: -0.2%
deep-vector
avg: -0.4% min: -0.8% max: -0.1%
clap-rs
avg: -0.4% min: -0.7% max: -0.2%
deep-vector-opt
avg: -0.2% min: -0.7% max: 0.2%
style-servo
avg: -0.3% min: -0.7% max: 0.1%
crates.io
avg: -0.4% min: -0.6% max: -0.2%
crates.io-opt
avg: -0.3% min: -0.6% max: -0.1%
tokio-webpush-simple
avg: -0.4% min: -0.6% max: -0.3%
crates.io-check
avg: -0.4% min: -0.6% max: -0.3%
html5ever-check
avg: -0.4% min: -0.6% max: -0.2%
serde
avg: -0.1% min: -0.6% max: 0.2%
serde-check
avg: -0.1% min: -0.5% max: 0.4%
serde-opt
avg: -0.2% min: -0.5% max: -0.1%
style-servo-opt
avg: -0.2% min: -0.4% max: -0.0%
clap-rs-opt
avg: -0.1% min: -0.3% max: 0.0%

6 years agoRollup merge of #50401 - alexcrichton:remove-path-from-str, r=sfackler
kennytm [Thu, 3 May 2018 08:11:33 +0000 (16:11 +0800)]
Rollup merge of #50401 - alexcrichton:remove-path-from-str, r=sfackler

Revert "Implement FromStr for PathBuf"

This reverts commit 05a9acc3b844ff284a3e3d85dde2d9798abfb215.

The libs team was discussing https://github.com/rust-lang/rust/issues/44431 today and the changes originally added in https://github.com/rust-lang/rust/pull/48292 and the conclusion was that we'd like to revert this for now until `!` is stable. This'll provide us maximal flexibility to tweak the error type here in the future, and it looks like `!` is close-ish to stabilization so hopefully this won't be delayed for too long.

6 years agoRollup merge of #50393 - oli-obk:packed_const_panic, r=eddyb
kennytm [Thu, 3 May 2018 08:11:32 +0000 (16:11 +0800)]
Rollup merge of #50393 - oli-obk:packed_const_panic, r=eddyb

Allow unaligned reads in constants

fixes #50356

introduced in https://github.com/rust-lang/rust/pull/49513

6 years agoRollup merge of #50365 - nnethercote:nearest_common_ancestor-two-vecs, r=nikomatsakis
kennytm [Thu, 3 May 2018 08:11:31 +0000 (16:11 +0800)]
Rollup merge of #50365 - nnethercote:nearest_common_ancestor-two-vecs, r=nikomatsakis

Use two vectors in nearest_common_ancestor.

When looking at any scope in scope chain A, we only need to look for
matches among scopes previously seen in scope chain B, and vice versa.
This halves the number of "seen before?" comparisons, speeding up some
runs of style-servo, clap-rs, and syn by 1--2%.

Thanks to @kirillkh for the suggestion.

r? @nikomatsakis

6 years agoRollup merge of #50360 - kennytm:fix-50232-clarify-unstable-name-collision, r=nikomat...
kennytm [Thu, 3 May 2018 08:11:30 +0000 (16:11 +0800)]
Rollup merge of #50360 - kennytm:fix-50232-clarify-unstable-name-collision, r=nikomatsakis

Clarify wordings of the `unstable_name_collision` lint.

Stabilizing an inherent method may cause change in behavior instead of inference error. Updated to use the wording from [varkor's comment].

Closes #50232.

[varkor's comment]: https://github.com/rust-lang/rust/issues/50232#issuecomment-384678097

6 years agoRollup merge of #50349 - GuillaumeGomez:rename-type-declaration-label, r=estebank
kennytm [Thu, 3 May 2018 08:11:29 +0000 (16:11 +0800)]
Rollup merge of #50349 - GuillaumeGomez:rename-type-declaration-label, r=estebank

Rename "show type declaration" to "show declaration"

Fixes #50347.

r? @QuietMisdreavus

6 years agoFix issue #50415.
kennytm [Thu, 3 May 2018 14:36:44 +0000 (22:36 +0800)]
Fix issue #50415.

6 years agoUpdate Cargo
Aleksey Kladov [Thu, 3 May 2018 11:17:58 +0000 (14:17 +0300)]
Update Cargo

6 years agocheck if the token is a lifetime before parsing
rleungx [Thu, 3 May 2018 11:09:34 +0000 (19:09 +0800)]
check if the token is a lifetime before parsing

6 years agoupdate concat_idents doc stubs
Michael Lamparski [Thu, 3 May 2018 10:49:30 +0000 (06:49 -0400)]
update concat_idents doc stubs

6 years agoRollup merge of #50302 - GuillaumeGomez:add-query-search-order-check, r=QuietMisdreavus
kennytm [Thu, 3 May 2018 08:11:26 +0000 (16:11 +0800)]
Rollup merge of #50302 - GuillaumeGomez:add-query-search-order-check, r=QuietMisdreavus

Add query search order check

Fixes #50180.

r? @QuietMisdreavus

6 years agoAuto merge of #50391 - nnethercote:escape_unicode, r=eddyb
bors [Thu, 3 May 2018 08:06:08 +0000 (08:06 +0000)]
Auto merge of #50391 - nnethercote:escape_unicode, r=eddyb

Use escape_default() for strings in LitKind::token().

This avoids converting every char to \u{...} form, which bloats the
resulting strings unnecessarily. It also provides consistency with the
existing escape_default() calls in LitKind::token() used for raw
string literals, char literals, and raw byte char literals.

There are two benefits from this change.

- Compilation is faster. Most of the rustc-perf benchmarks see a
  non-trivial speedup, particularly for incremental rebuilds, with the
  best speedup over 13%, and multiple others over 10%.

- Generated rlibs are smaller. An extreme example is libfutures.rlib,
  which shrinks from 2073306 bytes to 1765927 bytes, a 15% reduction.

r? @jseyfried

<details><summary>Here are full numbers for all the rustc-perf runs where the improvement was > 1%.</summary>

```
regex-check
avg: -11.1% min: -13.4% max: -5.5%
futures-check
avg: -7.6% min: -11.4% max: -3.5%
futures-opt
avg: -6.3% min: -10.3% max: -2.3%
futures
avg: -6.6% min: -10.3% max: -2.8%
regex-opt
avg: -4.7% min: -10.2% max: -0.4%
regex
avg: -5.3% min: -10.2% max: -1.2%
hyper-check
avg: -4.8% min: -6.6% max: -2.7%
encoding-check
avg: -4.1% min: -5.5% max: -2.5%
issue-46449-check
avg: -4.7% min: -5.2% max: -4.1%
clap-rs-check
avg: -2.9% min: -5.2% max: -1.1%
hyper
avg: -3.0% min: -5.1% max: -0.8%
parser-check
avg: -4.2% min: -4.9% max: -3.2%
hyper-opt
avg: -2.6% min: -4.9% max: -0.3%
encoding-opt
avg: -2.3% min: -4.6% max: -0.5%
encoding
avg: -2.5% min: -4.4% max: -0.6%
issue-46449
avg: -2.3% min: -4.4% max: -1.8%
issue-46449-opt
avg: -1.7% min: -4.3% max: -0.9%
clap-rs-opt
avg: -1.6% min: -4.2% max: -0.2%
serde-check
avg: -1.4% min: -4.1% max: -0.2%
clap-rs
avg: -1.6% min: -3.9% max: -0.7%
unify-linearly-check
avg: -3.2% min: -3.7% max: -2.7%
serde
avg: -1.1% min: -3.5% max: -0.1%
regression-31157-check
avg: -2.6% min: -3.4% max: -1.6%
helloworld-check
avg: -2.5% min: -3.4% max: -0.6%
serde-opt
avg: -1.3% min: -3.3% max: -0.5%
tokio-webpush-simple-check
avg: -2.4% min: -3.2% max: -1.8%
piston-image-check
avg: -1.7% min: -3.2% max: -0.9%
deeply-nested-opt
avg: -1.5% min: -3.0% max: -0.6%
deeply-nested-check
avg: -1.9% min: -2.9% max: -0.4%
deeply-nested
avg: -1.9% min: -2.9% max: -1.2%
syn-check
avg: -1.8% min: -2.8% max: -0.6%
coercions
avg: -0.5% min: -2.8% max: 0.4%
syn-opt
avg: -0.9% min: -2.4% max: -0.1%
syn
avg: -1.1% min: -2.2% max: -0.3%
parser-opt
avg: -1.9% min: -2.1% max: -1.6%
parser
avg: -1.9% min: -2.1% max: -1.6%
style-servo-check
avg: -1.3% min: -2.0% max: -0.8%
regression-31157-opt
avg: -0.8% min: -2.0% max: 0.0%
piston-image
avg: -0.7% min: -1.8% max: -0.2%
piston-image-opt
avg: -0.6% min: -1.8% max: -0.0%
regression-31157
avg: -1.0% min: -1.7% max: -0.3%
html5ever-opt
avg: -0.6% min: -1.5% max: -0.1%
unify-linearly-opt
avg: -1.3% min: -1.5% max: -1.1%
unify-linearly
avg: -1.3% min: -1.4% max: -1.2%
tokio-webpush-simple-opt
avg: -0.4% min: -1.2% max: -0.0%
helloworld-opt
avg: -1.0% min: -1.1% max: -0.6%
helloworld
avg: -1.0% min: -1.1% max: -0.7%
inflate-opt
avg: -0.3% min: -1.1% max: 0.1%
html5ever-check
avg: -0.6% min: -1.0% max: -0.3%
inflate-check
avg: -0.3% min: -1.0% max: -0.1%
```

</details>

6 years agoAuto merge of #50378 - varkor:repr-align-max-29, r=eddyb
bors [Thu, 3 May 2018 05:38:11 +0000 (05:38 +0000)]
Auto merge of #50378 - varkor:repr-align-max-29, r=eddyb

Reduce maximum repr(align(N)) to 2^29

The current maximum `repr(align(N))` alignment is larger than the maximum alignment accepted by LLVM, which can cause issues for huge values of `N`, as seen in #49492. Fixes #49492.

r? @rkruppe

6 years agoadd missing output for ui test
Michael Lamparski [Thu, 3 May 2018 04:25:14 +0000 (00:25 -0400)]
add missing output for ui test

6 years agoAlways inline simple BytePos and CharPos methods.
Nicholas Nethercote [Wed, 2 May 2018 23:12:26 +0000 (09:12 +1000)]
Always inline simple BytePos and CharPos methods.

Because they are (a) trivial, and (b) super hot.

This change speeds up most rustc-benchmarks, the best by 5%.

6 years agoforbid empty identifiers from concat_idents
Michael Lamparski [Thu, 3 May 2018 00:51:39 +0000 (20:51 -0400)]
forbid empty identifiers from concat_idents

6 years agoAuto merge of #50369 - pftbest:unicode, r=SimonSapin
bors [Thu, 3 May 2018 02:01:04 +0000 (02:01 +0000)]
Auto merge of #50369 - pftbest:unicode, r=SimonSapin

Fix a warning in libcore on 16bit targets.

This code is assuming that usize >= 32bits, but it is not the case on
16bit targets. It is producing a warning that can fail the compilation
on MSP430 if deny(warnings) is enabled.
It is very unlikely that someone would actually use this code on
a microcontroller, but since unicode was merged into libcore we
have to compile it on 16bit targets.

I've tried to make sure that the code stays the same on x86,
here is an assembly comparison: https://godbolt.org/g/wFw7dZ

r? @SimonSapin

6 years agoRemove parse::escape_default().
Nicholas Nethercote [Wed, 2 May 2018 22:55:58 +0000 (08:55 +1000)]
Remove parse::escape_default().

str::escape_default() can be used instead.

6 years agoUse escape_default() for strings in LitKind::token().
Nicholas Nethercote [Wed, 2 May 2018 01:50:21 +0000 (11:50 +1000)]
Use escape_default() for strings in LitKind::token().

This avoids converting every char to \u{...} form, which bloats the
resulting strings unnecessarily. It also provides consistency with the
existing escape_default() calls in LitKind::token() used for raw
string literals, char literals, and raw byte char literals.

There are two benefits from this change.

- Compilation is faster. Most of the rustc-perf benchmarks see a
  non-trivial speedup, particularly for incremental rebuilds, with the
  best speedup over 13%, and multiple others over 10%.

- Generated rlibs are smaller. An extreme example is libfutures.rlib,
  which shrinks from 2073306 bytes to 1765927 bytes, a 15% reduction.

6 years agoRevert "Implement FromStr for PathBuf"
Alex Crichton [Wed, 2 May 2018 23:39:54 +0000 (16:39 -0700)]
Revert "Implement FromStr for PathBuf"

This reverts commit 05a9acc3b844ff284a3e3d85dde2d9798abfb215.

6 years agoAuto merge of #50355 - petrochenkov:50187, r=oli-obk
bors [Wed, 2 May 2018 20:33:31 +0000 (20:33 +0000)]
Auto merge of #50355 - petrochenkov:50187, r=oli-obk

Fix an unresolved import issue with enabled `use_extern_macros`

This is a kinda ugly special-purpose solution that will break if we suddenly add a fourth namespace, but I hope to come up with something more general if I get to import resolution refactoring this summer.

Fixes https://github.com/rust-lang/rust/issues/50187 thus removing a blocker for stabilization of `use_extern_macros`

6 years agoAuto merge of #50354 - varkor:initial-field-alignment-c-int, r=eddyb
bors [Wed, 2 May 2018 17:02:25 +0000 (17:02 +0000)]
Auto merge of #50354 - varkor:initial-field-alignment-c-int, r=eddyb

Correct initial field alignment for repr(C)/repr(int)

Fixes #50098 following https://github.com/rust-lang/rust/issues/50098#issuecomment-385497333.

(I wasn't sure which kind of test was best suited here — I picked run-pass simply because that was convenient, but if codegen is more appropriate, let me know and I'll change it.)

r? @eddyb

6 years agoAllow unaligned reads in constants
Oliver Schneider [Wed, 2 May 2018 10:30:45 +0000 (12:30 +0200)]
Allow unaligned reads in constants

6 years agoAuto merge of #49943 - pnkfelix:fix-issue-49918, r=nikomatsakis
bors [Wed, 2 May 2018 12:20:31 +0000 (12:20 +0000)]
Auto merge of #49943 - pnkfelix:fix-issue-49918, r=nikomatsakis

Treat generators as if they have an arbitrary destructor

Conservatively assume dropping a generator touches its upvars, via locals' destructors.

Fix #49918

6 years agoAuto merge of #50339 - nnethercote:lazy-Printer-buf, r=michaelwoerister
bors [Wed, 2 May 2018 10:13:11 +0000 (10:13 +0000)]
Auto merge of #50339 - nnethercote:lazy-Printer-buf, r=michaelwoerister

Extend Printer::buf on demand.

So that 55 entries (at 48 bytes each) don't need to be eagerly
initialized on creation.

This speeds up numerous rust-perf benchmark runs, by up to 3%.
```
crates.io-check
        avg: -2.4%      min: -3.7%      max: -1.1%
encoding-check
        avg: -2.1%      min: -2.9%      max: -1.2%
crates.io-opt
        avg: -1.3%      min: -2.7%      max: -0.1%
crates.io
        avg: -1.4%      min: -2.7%      max: -0.3%
encoding-opt
        avg: -1.1%      min: -2.5%      max: 0.1%
encoding
        avg: -1.3%      min: -2.4%      max: -0.3%
hyper-check
        avg: -1.7%      min: -2.3%      max: -0.9%
regex-check
        avg: -1.5%      min: -1.9%      max: -0.7%
piston-image-check
        avg: -0.9%      min: -1.8%      max: -0.5%
hyper
        avg: -1.0%      min: -1.7%      max: -0.3%
hyper-opt
        avg: -0.9%      min: -1.7%      max: -0.1%
syn-check
        avg: -1.0%      min: -1.5%      max: -0.6%
clap-rs
        avg: -0.3%      min: -1.5%      max: 0.2%
regex-opt
        avg: -0.6%      min: -1.5%      max: -0.0%
regression-31157-check
        avg: -1.1%      min: -1.4%      max: -0.7%
regex
        avg: -0.7%      min: -1.3%      max: -0.1%
clap-rs-check
        avg: -0.5%      min: -1.2%      max: 0.1%
syn-opt
        avg: -0.5%      min: -1.1%      max: -0.1%
syn
        avg: -0.5%      min: -1.1%      max: -0.2%
serde-opt
        avg: -0.3%      min: -1.1%      max: 0.1%
piston-image-opt
        avg: -0.4%      min: -1.1%      max: -0.0%
piston-image
        avg: -0.4%      min: -1.0%      max: -0.0%
```

6 years agoAuto merge of #50329 - Zoxc:opt-3, r=alexcrichton
bors [Wed, 2 May 2018 07:50:23 +0000 (07:50 +0000)]
Auto merge of #50329 - Zoxc:opt-3, r=alexcrichton

Set opt-level to 3

r? @alexcrichton

6 years agoAuto merge of #50282 - fitzgen:run-more-passes-on-constant-mir, r=nikomatsakis
bors [Wed, 2 May 2018 05:22:29 +0000 (05:22 +0000)]
Auto merge of #50282 - fitzgen:run-more-passes-on-constant-mir, r=nikomatsakis

Run more passes on constant mir

Not very familiar with this code, but everything seems to be working!

r? @eddyb

6 years agoAuto merge of #50278 - eddyb:mir-succ-iter, r=nikomatsakis
bors [Wed, 2 May 2018 02:10:51 +0000 (02:10 +0000)]
Auto merge of #50278 - eddyb:mir-succ-iter, r=nikomatsakis

rustc: return iterators from Terminator(Kind)::successors(_mut).

Minor cleanup (and potentially speedup) prompted by @nnethercote's `SmallVec` experiments.
This PR assumes `.count()` and `.nth(i)` on `iter::Chain<option::IntoIter, slice::Iter(Mut)>` are `O(1)`, but otherwise all of the uses appear to immediately iterate through the successors.

r? @nikomatsakis

6 years agoAuto merge of #50379 - nrc:update, r=alexcrichton
bors [Tue, 1 May 2018 23:43:32 +0000 (23:43 +0000)]
Auto merge of #50379 - nrc:update, r=alexcrichton

Update RLS

r? @alexcrichton

Fixes RLS tests (broken by Cargo update) and enables nightly release

6 years agoUpdate RLS and Rustfmt
Nick Cameron [Tue, 1 May 2018 19:50:58 +0000 (07:50 +1200)]
Update RLS and Rustfmt

6 years agoAuto merge of #49982 - petrochenkov:noreex, r=alexcrichton
bors [Tue, 1 May 2018 21:22:49 +0000 (21:22 +0000)]
Auto merge of #49982 - petrochenkov:noreex, r=alexcrichton

Remove unstable `macro_reexport`

It's subsumed by `feature(use_extern_macros)` and `pub use`

cc https://github.com/rust-lang/rust/issues/35896
closes https://github.com/rust-lang/rust/issues/29638
closes https://github.com/rust-lang/rust/issues/38951

6 years agoReduce the maximum alignment to repr(align(1 << 29))
varkor [Tue, 1 May 2018 20:26:23 +0000 (21:26 +0100)]
Reduce the maximum alignment to repr(align(1 << 29))

This brings it into line with LLVM's maximum permitted alignment.

6 years agoAdd E0589 to the error index
varkor [Tue, 1 May 2018 20:44:37 +0000 (21:44 +0100)]
Add E0589 to the error index

6 years agoUpdate ui/generator tests to reflect changes from new generator drop rules.
Felix S. Klock II [Mon, 16 Apr 2018 10:41:32 +0000 (12:41 +0200)]
Update ui/generator tests to reflect changes from new generator drop rules.

6 years agoConservatively assume dropping a generator touches its upvars, via locals' dtors.
Felix S. Klock II [Fri, 13 Apr 2018 15:11:53 +0000 (17:11 +0200)]
Conservatively assume dropping a generator touches its upvars, via locals' dtors.

This is meant to address rust-lang/rust#49918.

Review feedback: put back comment justifying skipping interior traversal.

Review feedback: dropck generators like trait objects: all their upvars must
outlive the generator itself, so just create a DtorckConstraint saying so.

6 years agoAdd a print_types_sizes regression test
varkor [Tue, 1 May 2018 19:25:30 +0000 (20:25 +0100)]
Add a print_types_sizes regression test

6 years agoAuto merge of #50374 - petrochenkov:pypath, r=Mark-Simulacrum
bors [Tue, 1 May 2018 19:14:34 +0000 (19:14 +0000)]
Auto merge of #50374 - petrochenkov:pypath, r=Mark-Simulacrum

rustbuild: Normalize paths coming from Python slightly

Fixes #49785

6 years agorustbuild: Normalize paths coming from Python slightly
Vadim Petrochenkov [Tue, 1 May 2018 18:25:38 +0000 (21:25 +0300)]
rustbuild: Normalize paths coming from Python slightly

Fixes #49785

6 years agoAdd repr(u8) to the test
varkor [Tue, 1 May 2018 17:52:27 +0000 (18:52 +0100)]
Add repr(u8) to the test

6 years agoCorrect initial field alignment for repr(C)/repr(int)
varkor [Mon, 30 Apr 2018 23:13:14 +0000 (00:13 +0100)]
Correct initial field alignment for repr(C)/repr(int)

6 years agoAuto merge of #49789 - petrochenkov:prelext, r=nikomatsakis
bors [Tue, 1 May 2018 16:58:26 +0000 (16:58 +0000)]
Auto merge of #49789 - petrochenkov:prelext, r=nikomatsakis

Module experiments: Add one more prelude layer for extern crate names passed with `--extern`

Implements one item from https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678/183

When some name is looked up in lexical scope (`name`, i.e. not module-relative scope `some_mod::name` or `::name`), it's searched roughly in the next order:
- local variables
- items in unnamed blocks
- items in the current module
- :sparkles: NEW! :sparkles: crate names passed with `--extern` ("extern prelude")
- standard library prelude (`Vec`, `drop`)
- language prelude (built-in types like `u8`, `str`, etc)

The last two layers contain a limited set of names controlled by us and not arbitrary user-defined names like upper layers. We want to be able to add new names into these two layers without breaking user code, so "extern prelude" names have higher priority than std prelude and built-in types.
This is a one-time breaking change, that's why it would be nice to run this through crater.
Practical impact is expected to be minimal though due to stylistic reasons (there are not many `Uppercase` crates) and due to the way how primitive types are resolved (https://github.com/rust-lang/rust/pull/32131).

6 years agoFix a warning in libcore on 16bit targets.
Vadzim Dambrouski [Tue, 1 May 2018 14:48:31 +0000 (17:48 +0300)]
Fix a warning in libcore on 16bit targets.

This code is assuming that usize >= 32bits, but it is not the case on
16bit targets. It is producing a warning that will fail the compilation
on MSP430 if deny(warnings) is enabled.
It is very unlikely that someone would actually use this code on
a microcontroller, but since unicode was merged into libcore we
have compile it on 16bit targets.

6 years agoFix an error from "unused" lint + Fix rebase
Vadim Petrochenkov [Mon, 30 Apr 2018 11:06:24 +0000 (14:06 +0300)]
Fix an error from "unused" lint + Fix rebase

6 years agoGive removal reasons to removed features
Vadim Petrochenkov [Sun, 29 Apr 2018 14:58:51 +0000 (17:58 +0300)]
Give removal reasons to removed features

6 years agoRemove `macro_reexport`
Vadim Petrochenkov [Sun, 15 Apr 2018 13:59:00 +0000 (16:59 +0300)]
Remove `macro_reexport`

It's subsumed by `feature(use_extern_macros)` and `pub use`

6 years agoAuto merge of #50198 - oli-obk:const_prop, r=eddyb
bors [Tue, 1 May 2018 12:16:14 +0000 (12:16 +0000)]
Auto merge of #50198 - oli-obk:const_prop, r=eddyb

Remove some unused code

6 years agoUse two vectors in nearest_common_ancestor.
Nicholas Nethercote [Tue, 1 May 2018 00:01:02 +0000 (10:01 +1000)]
Use two vectors in nearest_common_ancestor.

When looking at any scope in scope chain A, we only need to look for
matches among scopes previously seen in scope chain B, and vice versa.
This halves the number of "seen before?" comparisons, speeding up some
runs of style-servo, clap-rs, and syn by 1--2%.

6 years agoMerge adjacent write! invocations
Oliver Schneider [Tue, 1 May 2018 10:26:58 +0000 (12:26 +0200)]
Merge adjacent write! invocations

6 years agorustc: return impl Iterator from Terminator(Kind)::successors(_mut).
Eduard-Mihai Burtescu [Fri, 27 Apr 2018 11:02:09 +0000 (14:02 +0300)]
rustc: return impl Iterator from Terminator(Kind)::successors(_mut).

6 years agoAuto merge of #49724 - kennytm:range-inc-start-end-methods, r=Kimundi
bors [Tue, 1 May 2018 10:10:46 +0000 (10:10 +0000)]
Auto merge of #49724 - kennytm:range-inc-start-end-methods, r=Kimundi

Introduce RangeInclusive::{new, start, end} methods and make the fields private.

cc #49022

6 years agoClarify wordings of the `unstable_name_collision` lint.
kennytm [Tue, 1 May 2018 08:52:03 +0000 (16:52 +0800)]
Clarify wordings of the `unstable_name_collision` lint.

Stabilizing an inherent method may cause change in behavior instead of
inference error. Updated to use the wording from [varkor's comment].

Closes #50232.

[varkor's comment]: https://github.com/rust-lang/rust/issues/50232#issuecomment-384678097

6 years agoAuto merge of #48786 - nagisa:fp, r=nikomatsakis
bors [Tue, 1 May 2018 08:05:51 +0000 (08:05 +0000)]
Auto merge of #48786 - nagisa:fp, r=nikomatsakis

Add force-frame-pointer flag to allow control of frame pointer ommision

Rebase of #47152 plus some changes suggested by https://github.com/rust-lang/rust/issues/48785.

Fixes #11906

r? @nikomatsakis

6 years agoForce frame pointers for the backtrace test
Simonas Kazlauskas [Wed, 18 Apr 2018 17:48:34 +0000 (20:48 +0300)]
Force frame pointers for the backtrace test

6 years agoDon’t eliminate frame pointers on apple by default
Simonas Kazlauskas [Sat, 24 Mar 2018 19:54:21 +0000 (21:54 +0200)]
Don’t eliminate frame pointers on apple by default

6 years agoRework force-frame-pointer
Simonas Kazlauskas [Tue, 6 Mar 2018 18:27:19 +0000 (20:27 +0200)]
Rework force-frame-pointer

This reworks the force-frame-pointer PR to explicitly only consider the
value of the flag if it is provided, and use a target default otherwise.

Something that was tried but not kept was renaming the flag to
`frame-pointer`, because for flag `frame-pointer=no`, there is no
guarante, that LLVM will elide *all* the frame pointers; oposite of what
the literal reading of the flag would suggest.

6 years agoDon't force-enable frame pointers when generating debug info
Björn Steinbrink [Wed, 3 Jan 2018 09:29:27 +0000 (10:29 +0100)]
Don't force-enable frame pointers when generating debug info

We apparently used to generate bad/incomplete debug info causing
debuggers not to find symbols of stack allocated variables. This was
somehow worked around by having frame pointers.

With the current codegen, this seems no longer necessary, so we can
remove the code that force-enables frame pointers whenever debug info
is requested.

Since certain situations, like profiling code profit from having frame
pointers, we add a -Cforce-frame-pointers flag to always enable frame
pointers.

Fixes #11906

6 years agoSet opt-level to 3
John Kåre Alsaker [Tue, 20 Mar 2018 00:18:08 +0000 (01:18 +0100)]
Set opt-level to 3

6 years agoAuto merge of #50304 - nox:uninhabited-output, r=eddyb
bors [Tue, 1 May 2018 05:52:12 +0000 (05:52 +0000)]
Auto merge of #50304 - nox:uninhabited-output, r=eddyb

Mark functions returning uninhabited types as noreturn

6 years agoAuto merge of #50197 - nikomatsakis:skolemize-out-of-tcx, r=eddyb
bors [Tue, 1 May 2018 00:16:16 +0000 (00:16 +0000)]
Auto merge of #50197 - nikomatsakis:skolemize-out-of-tcx, r=eddyb

move skolemized regions into global tcx

Experimental branch to move skolemized regions into global tcx. This is probably not what we want long term but may be convenient to unblock @sgrif in the short term.

I'd like to do a perf run, though the main concern I guess would be memory usage.

r? @eddyb

6 years agoBetter support for import resolution in 3 namespaces
Vadim Petrochenkov [Tue, 1 May 2018 00:12:36 +0000 (03:12 +0300)]
Better support for import resolution in 3 namespaces

6 years agoresolve (cleanup): Get rid of `Option` in `PerNS`
Vadim Petrochenkov [Sun, 29 Apr 2018 23:20:14 +0000 (02:20 +0300)]
resolve (cleanup): Get rid of `Option` in `PerNS`

6 years agoAuto merge of #48925 - zackmdavis:fn_must_stabilize, r=nikomatsakis
bors [Mon, 30 Apr 2018 22:02:33 +0000 (22:02 +0000)]
Auto merge of #48925 - zackmdavis:fn_must_stabilize, r=nikomatsakis

stabilize `#[must_use]` for functions and must-use comparison operators (RFC 1940)

r? @nikomatsakis

6 years agoRename "show type declaration" to "show declaration"
Guillaume Gomez [Mon, 30 Apr 2018 20:32:17 +0000 (22:32 +0200)]
Rename "show type declaration" to "show declaration"

6 years agoput ReSkolemized into the global tcx
Niko Matsakis [Wed, 4 Apr 2018 22:24:17 +0000 (18:24 -0400)]
put ReSkolemized into the global tcx

6 years agomake needs_infer specific to inference variables
Niko Matsakis [Wed, 4 Apr 2018 21:21:50 +0000 (17:21 -0400)]
make needs_infer specific to inference variables

Notably, excluding ReSkolemized

6 years agonew() should be const; start()/end() after iteration is unspecified.
kennytm [Sat, 7 Apr 2018 06:19:34 +0000 (14:19 +0800)]
new() should be const; start()/end() after iteration is unspecified.

6 years agoRemoved direct field usage of RangeInclusive in rustc itself.
kennytm [Thu, 5 Apr 2018 21:21:47 +0000 (05:21 +0800)]
Removed direct field usage of RangeInclusive in rustc itself.

6 years agoremove some (apparently) dead code
Niko Matsakis [Wed, 4 Apr 2018 21:17:23 +0000 (17:17 -0400)]
remove some (apparently) dead code

6 years agoAuto merge of #50345 - kennytm:rollup, r=kennytm
bors [Mon, 30 Apr 2018 17:30:55 +0000 (17:30 +0000)]
Auto merge of #50345 - kennytm:rollup, r=kennytm

Rollup of 7 pull requests

Successful merges:

 - #50233 (Make `Vec::new` a `const fn`)
 - #50312 (Add more links in panic docs)
 - #50316 (Fix some broken links in docs.)
 - #50325 (Add a few more tests for proc macro feature gating)
 - #50327 (Display correct unused field suggestion for nested struct patterns)
 - #50330 (check that #[used] is used only on statics)
 - #50344 (Update Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca)

Failed merges:

6 years agoRollup merge of #50344 - SimonSapin:cargo, r=alexcrichton
kennytm [Mon, 30 Apr 2018 17:18:43 +0000 (01:18 +0800)]
Rollup merge of #50344 - SimonSapin:cargo, r=alexcrichton

Update Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca

6 years agoRollup merge of #50330 - japaric:used, r=nagisa
kennytm [Mon, 30 Apr 2018 17:18:41 +0000 (01:18 +0800)]
Rollup merge of #50330 - japaric:used, r=nagisa

check that #[used] is used only on statics

this attribute has no effect on other items. This makes the implementation match what's described in the RFC.

cc #40289

r? @nagisa

6 years agoRollup merge of #50327 - varkor:match-unused-struct-field, r=estebank
kennytm [Mon, 30 Apr 2018 17:18:40 +0000 (01:18 +0800)]
Rollup merge of #50327 - varkor:match-unused-struct-field, r=estebank

Display correct unused field suggestion for nested struct patterns

Extends https://github.com/rust-lang/rust/pull/47922 by checking more sophisticated patterns (e.g. references, slices, etc.).
Before:
```
warning: unused variable: `bar`
  --> src/main.rs:37:21
   |
37 |         &Foo::Bar { bar } => true,
   |                     ^^^ help: consider using `_bar` instead
   |
   = note: #[warn(unused_variables)] on by default
```
After:
```
warning: unused variable: `bar`
  --> src/main.rs:37:21
   |
37 |         &Foo::Bar { bar } => true,
   |                     ^^^ help: try ignoring the field: `bar: _`
   |
   = note: #[warn(unused_variables)] on by default
```

Fixes #50303.

r? @estebank

6 years agoRollup merge of #50325 - petrochenkov:pmgate, r=alexcrichton
kennytm [Mon, 30 Apr 2018 17:18:39 +0000 (01:18 +0800)]
Rollup merge of #50325 - petrochenkov:pmgate, r=alexcrichton

Add a few more tests for proc macro feature gating

6 years agoRollup merge of #50316 - ehuss:fix-doc-links, r=frewsxcv
kennytm [Mon, 30 Apr 2018 17:18:38 +0000 (01:18 +0800)]
Rollup merge of #50316 - ehuss:fix-doc-links, r=frewsxcv

Fix some broken links in docs.

6 years agoRollup merge of #50312 - Pazzaz:master, r=GuillaumeGomez
kennytm [Mon, 30 Apr 2018 17:18:37 +0000 (01:18 +0800)]
Rollup merge of #50312 - Pazzaz:master, r=GuillaumeGomez

Add more links in panic docs

Fixes #48695 by adding a link to `AssertUnwindSafe`. Also added some other links in the module's docs to make things clearer.

6 years agoRollup merge of #50233 - mark-i-m:const_vec, r=kennytm
kennytm [Mon, 30 Apr 2018 17:18:36 +0000 (01:18 +0800)]
Rollup merge of #50233 - mark-i-m:const_vec, r=kennytm

Make `Vec::new` a `const fn`

`RawVec::empty/_in` are a hack. They're there because `if size_of::<T> == 0 { !0 } else { 0 }` is not allowed in `const` yet. However, because `RawVec` is unstable, the `empty/empty_in` constructors can be removed when #49146 is done...

6 years agoImprove div by zero const eval errors
Oliver Schneider [Sat, 28 Apr 2018 11:35:35 +0000 (13:35 +0200)]
Improve div by zero const eval errors

6 years agoUpdate Cargo.lock
Oliver Schneider [Fri, 27 Apr 2018 13:21:42 +0000 (15:21 +0200)]
Update Cargo.lock

6 years agoUnify MIR assert messages and const eval errors
Oliver Schneider [Fri, 27 Apr 2018 13:21:31 +0000 (15:21 +0200)]
Unify MIR assert messages and const eval errors

6 years agoUpdate ui test output
Oliver Schneider [Thu, 26 Apr 2018 13:02:54 +0000 (15:02 +0200)]
Update ui test output

6 years agoMerge ConstMathError into EvalErrorKind
Oliver Schneider [Thu, 26 Apr 2018 12:52:59 +0000 (14:52 +0200)]
Merge ConstMathError into EvalErrorKind

6 years agoRemove the `rustc_const_math` crate
Oliver Schneider [Thu, 26 Apr 2018 09:37:03 +0000 (11:37 +0200)]
Remove the `rustc_const_math` crate

6 years agoReintroduce the float parsing error
Oliver Schneider [Thu, 26 Apr 2018 08:39:04 +0000 (10:39 +0200)]
Reintroduce the float parsing error

6 years agoRemove ConstFloat
Oliver Schneider [Wed, 25 Apr 2018 13:26:12 +0000 (15:26 +0200)]
Remove ConstFloat

6 years agoRemoved unused dependencies on rustc_const_math
Oliver Schneider [Tue, 24 Apr 2018 13:36:25 +0000 (15:36 +0200)]
Removed unused dependencies on rustc_const_math

6 years agoRemove unused const math ops
Oliver Schneider [Tue, 24 Apr 2018 13:35:58 +0000 (15:35 +0200)]
Remove unused const math ops

6 years agoRemove unused const error variant
Oliver Schneider [Tue, 24 Apr 2018 13:09:09 +0000 (15:09 +0200)]
Remove unused const error variant

6 years agoRemove the `UnequalTypes` error variant
Oliver Schneider [Tue, 24 Apr 2018 12:55:34 +0000 (14:55 +0200)]
Remove the `UnequalTypes` error variant

6 years agoImplement `PartialCmp` for `ConstFloat`
Oliver Schneider [Tue, 24 Apr 2018 12:42:30 +0000 (14:42 +0200)]
Implement `PartialCmp` for `ConstFloat`

6 years agoComment typo
Oliver Schneider [Tue, 24 Apr 2018 12:36:16 +0000 (14:36 +0200)]
Comment typo

6 years agoRemove unused error variants
Oliver Schneider [Tue, 24 Apr 2018 12:17:05 +0000 (14:17 +0200)]
Remove unused error variants

6 years agoAuto merge of #50163 - kornelski:error, r=Kimundi
bors [Mon, 30 Apr 2018 15:17:01 +0000 (15:17 +0000)]
Auto merge of #50163 - kornelski:error, r=Kimundi

Bury Error::description()

Second attempt of #49536 https://github.com/rust-lang/rfcs/pull/2230

The exact wording of the default implementation is still up in the air, but I think it's a detail that can be amended later.

6 years agoUpdate Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca
Simon Sapin [Mon, 30 Apr 2018 15:04:42 +0000 (17:04 +0200)]
Update Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca

6 years agoMake the fields of RangeInclusive private.
kennytm [Thu, 5 Apr 2018 18:03:22 +0000 (02:03 +0800)]
Make the fields of RangeInclusive private.

Added new()/start()/end() methods to RangeInclusive.

Changed the lowering of `..=` to use RangeInclusive::new().

6 years agoAuto merge of #50326 - ollie27:rustdoc_cross_crate_const_link, r=GuillaumeGomez
bors [Mon, 30 Apr 2018 10:30:14 +0000 (10:30 +0000)]
Auto merge of #50326 - ollie27:rustdoc_cross_crate_const_link, r=GuillaumeGomez

rustdoc: Fix links to constants in external crates

r? @GuillaumeGomez

6 years agoExtend Printer::buf on demand.
Nicholas Nethercote [Fri, 27 Apr 2018 21:33:34 +0000 (07:33 +1000)]
Extend Printer::buf on demand.

So that 55 entries (at 48 bytes each) don't need to be eagerly
initialized on creation.

This speeds up numerous rust-perf benchmark runs, by up to 3%.