Commit Graph

78166 Commits

Author SHA1 Message Date
kennytm
fd4bf23783
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
2018-05-04 02:12:48 +08:00
kennytm
06a47dc26e
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
2018-05-04 02:12:47 +08:00
kennytm
73042c54f5
Rollup merge of #50349 - GuillaumeGomez:rename-type-declaration-label, r=estebank
Rename "show type declaration" to "show declaration"

Fixes #50347.

r? @QuietMisdreavus
2018-05-04 02:12:46 +08:00
Harm Berntsen
b71f6364d2
Add armv5te-unknown-linux-musl target 2018-05-03 16:53:04 +02:00
kennytm
83c45051f8
Fix issue #50415. 2018-05-03 22:36:44 +08:00
Aleksey Kladov
70c52e5e19 Update Cargo 2018-05-03 16:49:47 +03:00
Christopher Vittal
2797fefb91 Add mailmap entry for Chris Vittal
I use both Chris and Christopher in git configs and other places.
2018-05-03 09:38:23 -04:00
Shotaro Yamada
14f32f64c8 rustdoc: Resolve nested impl Traits 2018-05-03 22:34:10 +09:00
Nicholas Nethercote
7cf142f78b Avoid many cmt allocations.
`cmt` is a ref-counted wrapper around `cmt_` The use of refcounting
keeps `cmt` handling simple, but a lot of `cmt` instances are very
short-lived, and heap-allocating the short-lived ones takes up time.

This patch changes things in the following ways.

- Most of the functions that produced `cmt` instances now produce `cmt_`
  instances. The `Rc::new` calls that occurred within those functions
  now occur at their call sites (but only when necessary, which isn't
  that often).

- Many of the functions that took `cmt` arguments now take `&cmt_`
  arguments. This includes all the methods in the `Delegate` trait.

As a result, the vast majority of the heap allocations are avoided. In
an extreme case, the number of calls to malloc in tuple-stress drops
from 9.9M to 7.9M, a drop of 20%. And the compile times for many runs of
coercions, deep-vector, and tuple-stress drop by 1--2%.
2018-05-03 22:14:35 +10:00
Felix S. Klock II
28d18fabe3 Unit test for the new implicit borrow and deref within the
guard expressions of matches (activated only when using
new NLL mode).

Review feedback: removed 27282 from filename. (The test still
references it in a relevant comment in the file itself so that seemed
like a reasonable compromise.)
2018-05-03 14:03:16 +02:00
Felix S. Klock II
a72790d879 When using NLL, implicitly borrow match bindings for any guard,
deref'ing such borrows within that guard.

Review feedback: Add comment noting a point where we may or may not
need to add a cast when we finish the work on rust-lang/rust#27282.

Review feedback: Pass a newtype'd `ArmHasGuard` rather than a raw boolean.

Review feedback: toggle "ref binding in guards" semantics via specific
method. (This should ease a follow-up PR that just unconditionally
adopts the new semantics.)
2018-05-03 14:03:16 +02:00
Felix S. Klock II
b00db7c75b Instrument statement_effect_on_borrows for the lhs = &place case. 2018-05-03 14:03:16 +02:00
Felix S. Klock II
1c3fd02a4c Improve instrumentation for the bug reported during fn report_borrowed_value_does_not_live_long_enough. 2018-05-03 14:03:16 +02:00
Felix S. Klock II
f67c683950 Include the test name when reporting that an expected line was not found in a mir-opt test. 2018-05-03 14:03:16 +02:00
bors
d68b0eceaa Auto merge of #50030 - flip1995:rfc2103, r=petrochenkov
Implement tool_attributes feature (RFC 2103)

cc #44690

This is currently just a rebased and compiling (hopefully) version of #47773.

Let's see if travis likes this. I will add the implementation for `tool_lints` this week.
2018-05-03 11:52:03 +00:00
rleungx
390c3cee6a check if the token is a lifetime before parsing 2018-05-03 19:12:39 +08:00
Michael Lamparski
8e38d02d98 update concat_idents doc stubs 2018-05-03 06:49:30 -04:00
Michael Woerister
6a71143965 run-make/cross-lang-lto: Make output artifact names consistent across platforms. 2018-05-03 02:30:15 -07:00
Michael Woerister
34e658ebd8 Don't run LTO passes in rustc when cross-lang LTO is enabled. 2018-05-03 02:30:15 -07:00
Michael Woerister
a21fb3f8da Make run-make host_test!(). 2018-05-03 02:30:15 -07:00
Michael Woerister
ae149f11ec Ignore cross-lang-lto test for LLVM versions without ThinLTO. 2018-05-03 02:30:15 -07:00
Michael Woerister
fefed13747 Support test header directives in run-make mode too. 2018-05-03 02:30:14 -07:00
Michael Woerister
d58ab3dbb8 Use correct section name for embedded LLVM bitcode on OSX. 2018-05-03 02:30:14 -07:00
Michael Woerister
54b0e07061 Add LLVM bin directory to PATH for running run-make tests. 2018-05-03 02:30:14 -07:00
Michael Woerister
98bf62a109 Add tests for -Z cross-lang-lto. 2018-05-03 02:30:14 -07:00
Michael Woerister
443f99fca0 Add -Z cross-lang-lto flag in order to support linker-based LTO. 2018-05-03 02:30:14 -07:00
Michael Woerister
aed5b9c815 Declare embedded LLVM bitcode section readonly. 2018-05-03 02:30:14 -07:00
kennytm
4e3da52d02
Rollup merge of #50302 - GuillaumeGomez:add-query-search-order-check, r=QuietMisdreavus
Add query search order check

Fixes #50180.

r? @QuietMisdreavus
2018-05-03 16:11:26 +08:00
bors
698b956a9f 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>
2018-05-03 08:06:08 +00:00
bors
427c548749 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
2018-05-03 05:38:11 +00:00
Keith Yeung
4bc48480c0 Skip checking for unused mutable locals that have no name 2018-05-02 21:43:39 -07:00
Michael Lamparski
fbc57a7c7a add missing output for ui test 2018-05-03 00:25:14 -04:00
Nicholas Nethercote
e740b97be6 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%.
2018-05-03 13:25:18 +10:00
Michael Lamparski
cd54b3e448 forbid empty identifiers from concat_idents 2018-05-02 22:58:28 -04:00
bors
9e3cbbb60a 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
2018-05-03 02:01:04 +00:00
Hoàng Đức Hiếu
cabbe50c55 ignore erroneous example 2018-05-03 08:17:21 +07:00
Hoàng Đức Hiếu
8e4072cb4b fix error text 2018-05-03 08:16:34 +07:00
Hoàng Đức Hiếu
2fce5b34f6 doc: move incoherent_fundamental_impls to deny-by-default listing 2018-05-03 07:52:36 +07:00
Nicholas Nethercote
7a56360ece Remove parse::escape_default().
str::escape_default() can be used instead.
2018-05-03 10:31:45 +10:00
Nicholas Nethercote
d5d389e4f1 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.
2018-05-03 10:31:39 +10:00
Alex Crichton
f6841470f1 Revert "Implement FromStr for PathBuf"
This reverts commit 05a9acc3b8.
2018-05-02 16:39:54 -07:00
Tomas Gavenciak
9073c89745 Minor fromatting for RFC 1598 tests 2018-05-03 00:58:35 +02:00
Tomas Gavenciak
a43171a242 Update tests to use compile-pass 2018-05-03 00:34:34 +02:00
Andre Bogus
1cefb5ce31 nano-optimization for memchr::repeat_byte 2018-05-02 23:53:40 +02:00
Sean Griffin
68a1fdfee4 Add a comment explaining unification w/ universes 2018-05-02 15:02:11 -06:00
bors
8a37c75a3a 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`
2018-05-02 20:33:31 +00:00
Tomas Gavenciak
571337b3dd Update tests with Nikos comments 2018-05-02 22:17:31 +02:00
Tomas Gavenciak
0617b925e8 Add tests for GAT parameter number and kindness 2018-05-02 22:17:31 +02:00
Tomas Gavenciak
a66a0110de Fix test stderr after tidying the source 2018-05-02 22:17:31 +02:00
Tomas Gavenciak
e09d9ecbcd Tidy up the code 2018-05-02 22:17:31 +02:00