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
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
Sean Griffin
4ac9717a1f
Fix rebase issues
2018-05-02 11:52:18 -06:00
bors
3eadd75473
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
2018-05-02 17:02:25 +00:00
Sean Griffin
04708ba60e
track skol levels in the InferCtxt rather than via counter
2018-05-02 08:36:13 -06:00
Sean Griffin
f5d240b432
Wrap InferCtxt::universe
in a cell
...
We'll need this in order to start tracking skolemizatoins here, and it's
easier to update all the field accesses now rather than later.
2018-05-02 08:36:07 -06:00
Sean Griffin
ce64f9d823
Fix rebase issues
2018-05-02 08:28:42 -06:00
Oliver Schneider
bf2a6c3ff9
Allow unaligned reads in constants
2018-05-02 15:48:26 +02:00
Sean Griffin
2f69b798af
give a universe to region variables
2018-05-02 07:36:11 -06:00
Sean Griffin
6234a89828
store RegionVariableInfo and not just RegionVariableOrigin
2018-05-02 07:36:11 -06:00
Sean Griffin
360cbf2f48
change skolemizations to use universe index
...
This is sort of confusing "side step". All it does is to change the
representation of a skolemized region. but the source of that universe
index is not the inference context, which is what we eventually want,
but rather an internal counter in the region inference context.
We'll patch that up later. But doing this now ought to help with
confusing diffs later.
2018-05-02 07:36:10 -06:00
Sean Griffin
e904d56928
add universes to type inference variables
...
This gives each type inference variable a notion of universe but doesn't
do anything with it. We can always get the "current universe" from
infer_ctxt. This relies on the property of type variables that they can
never interact with siblings.
2018-05-02 07:36:09 -06:00
Sean Griffin
df8f5375a6
introduce UniverseIndex
into InferCtxt
...
Always using root environment for now.
2018-05-02 07:36:08 -06:00
bors
d40a0b3dc1
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
2018-05-02 12:20:31 +00:00
Hoàng Đức Hiếu
2885b9e35a
lint: deny incoherent_fundamental_impls by default
...
Warn the ecosystem of the pending intent-to-disallow in #49799 .
2018-05-02 17:30:26 +07:00
bors
6a87289fa4
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%
```
2018-05-02 10:13:11 +00:00
flip1995
84f4508660
fix tests
2018-05-02 12:05:18 +02:00
flip1995
121abd0599
make it compile again
2018-05-02 12:05:13 +02:00
Seiichi Uchida
24a6284fcd
Fix failures in rustdoc
2018-05-02 11:48:11 +02:00