Commit graph

21345 commits

Author SHA1 Message Date
Alex Crichton
1fd45a13de Fix warnings about the native target-cpu
This fixes a regression from #53031 where specifying `-C target-cpu=native` is
printing a lot of warnings from LLVM about `native` being an unknown CPU. It
turns out that `native` is indeed an unknown CPU and we have to perform a
mapping to an actual CPU name, but this mapping is only performed in one
location rather than all locations we inform LLVM about the target CPU.

This commit centralizes the mapping of `native` to LLVM's value of the native
CPU, ensuring that all locations we inform LLVM about the `target-cpu` it's
never `native`.

Closes #53322
2018-08-28 13:32:11 -07:00
Guillaume Gomez
da4febd51e Add partialeq implementation for TryFromIntError type 2018-08-28 20:40:14 +02:00
Ralf Jung
e6a5a9418a restructure unary_op to also dispatch on type first; fix promotion with unary '-' overflowing 2018-08-28 19:57:05 +02:00
Ralf Jung
f96208ca5b address nits 2018-08-28 19:57:05 +02:00
bors
ec4a752202 Auto merge of #53493 - matthewjasper:hair-spans, r=nikomatsakis
Use smaller span for adjustments on block expressions

When returning a mutable reference don't use the entire body of the function as the span for the adjustments at the end.

The error [in this case](https://github.com/rust-lang/rust/compare/master...matthewjasper:hair-spans?expand=1#diff-ecef8b1f15622fb48a803c9b61605c78) is worse, but neither error message is really what we want. I have some ideas on how to get a better error message that will have to wait for a future PR.
2018-08-28 13:12:16 +00:00
Oliver Schneider
0ed8e16195 Use partial but correct vtable layout 2018-08-28 13:15:22 +02:00
bors
83ddc33347 Auto merge of #53314 - nikomatsakis:nll-invert-liveness, r=pnkfelix
NLL: experiment with inverting liveness

I got inspired to see what would happen here.

Fixes #52460

r? @pnkfelix
2018-08-28 10:58:10 +00:00
bors
59e52b1b96 Auto merge of #53616 - varkor:hir-map-rename, r=nikomatsakis
Restructure hir::map::Node and hir::map::Entry

- Moves `hir::map::Node` to `hir::Node` and removes the `Node*` prefix from its variants.
- Changes `hir::map::Entry` to a struct `hir::map::Entry`.
- Removes the `Node*` prefix from each of `AnnNode`s variants.

r? @eddyb
2018-08-28 06:44:12 +00:00
bors
f33921ba58 Auto merge of #53272 - mark-i-m:anon_param_error_now, r=nikomatsakis
Warn on anon params in 2015 edition

cc #41686 https://github.com/rust-lang/rfcs/pull/2522
cc  @Centril @nikomatsakis

TODO:
- [x] Make sure the tests pass.
- [x] Make sure there is rustfix-able suggestion. Current plan is to just suggest `_ : Foo`
- [x] Add a rustfix ui test.

EDIT: It seems I already did the last two in #48309
2018-08-28 01:04:05 +00:00
bors
8c2b371ebc Auto merge of #53227 - nivkner:pin_move, r=RalfJung
move the Pin API into its own module for centralized documentation

This implements the change proposed by @withoutboats in #49150, as suggested by @RalfJung in the review of #53104,
along with the documentation that was originally in it, that was deemed more appropriate in module-level documentation.

r? @RalfJung
2018-08-27 22:56:15 +00:00
Niko Matsakis
f77ad5c6e5 remove let x = baz which was obscuring the real error 2018-08-27 17:48:52 -04:00
varkor
e2a1cce9c5 Rename hir::map::NodeKind to hir::Node 2018-08-27 21:46:23 +01:00
varkor
11665ca45a Remove path prefixes from NodeKind 2018-08-27 21:46:13 +01:00
varkor
befc4b1100 Rename hir::map::Node to hir::map::NodeKind 2018-08-27 21:45:46 +01:00
bors
f7202e40f4 Auto merge of #51456 - qmx:crate-in-path, r=nikomatsakis
resolve suggestions should use `crate::` when enabled

I couldn't find a way to add a specific assertion for the ui test, so the expected output is living under the `crates-in-path.stderr` ui test.

- is this the right place for the test?

fixes #51212
2018-08-27 19:51:01 +00:00
Mark Mansi
548f28e194 fix test stderrs 2018-08-27 13:06:26 -05:00
Niko Matsakis
7eec37b2f9 merge PointIndexMap and RegionValueElements 2018-08-27 13:57:55 -04:00
Niko Matsakis
12f50a6e75 implement liveness tracing, remove old liveness system 2018-08-27 13:57:55 -04:00
Alex Crichton
51fd3bf6a8 rustc: Suggest removing extern crate in 2018
This commit updates the `unused_extern_crates` lint to make automatic
suggestions about removing `extern crate` annotations in the 2018 edition. This
ended up being a little easier than originally though due to what's likely been
fixed issues in the resolver!

Closes #52829
2018-08-27 10:52:21 -07:00
bors
70a21e89f1 Auto merge of #53441 - toidiu:ak-fix53419, r=nikomatsakis
fix for late-bound regions

Fix for https://github.com/rust-lang/rust/issues/53419

r? @nikomatsakis
2018-08-27 17:42:45 +00:00
Mark Mansi
15b2640e70 fix another 2018-08-27 12:40:16 -05:00
Mark Mansi
3a9cf12021 fix some anon params 2018-08-27 12:40:16 -05:00
Ralf Jung
c898e1911d fix handling of unsized types in validation; validate str to be UTF-8 2018-08-27 18:12:49 +02:00
Ralf Jung
89cfd08b47 validate enum discriminant whenever it is read 2018-08-27 18:12:49 +02:00
bors
8785e348ba Auto merge of #53580 - nikomatsakis:nll-issue-53568, r=pnkfelix
fix NLL ICEs

Custom type-ops reuse some of the query machinery -- but while query results are canonicalized after they are constructed, custom type ops are not, and hence we have to resolve the type variables to avoid an ICE here.

Also, use the type-op machinery for implied outlives bounds.

Fixes #53568
Fixes #52992
Fixes #53680
2018-08-27 14:44:13 +00:00
Douglas Campos
d9791d6538 add test for the suggestion from prelude 2018-08-27 14:12:31 +00:00
Douglas Campos
ae853752d8 no need to special case std 2018-08-27 12:36:30 +00:00
Matthew Jasper
7f7fadaee6 Also use smaller spans for unsize adjustments 2018-08-27 12:36:49 +01:00
bors
291d958585 Auto merge of #53624 - Zoxc:ice-fix, r=oli-obk
Move with_globals setup from run_compiler to run

An alternative to https://github.com/rust-lang/rust/pull/53526

Note this breaks some miri stuff and clippy since they call `run_compiler` directly, and they now need to also call `with_globals ` cc @rust-lang/dev-tools

r? @oli-obk
2018-08-27 09:08:27 +00:00
Esteban Kuber
a2722f3261
readd final newline 2018-08-26 18:03:57 -07:00
John Kåre Alsaker
bd04796d6e Move with_globals setup from run_compiler to run 2018-08-27 02:19:07 +02:00
Esteban Küber
26f38c0f34 Do not suggest dereferencing in macro 2018-08-26 16:54:06 -07:00
Alex Crichton
0a2282e128 rustc: Continue to tweak "std internal symbols"
In investigating [an issue][1] with `panic_implementation` defined in an
executable that's optimized I once again got to rethinking a bit about the
`rustc_std_internal_symbol` attribute as well as weak lang items. We've sort of
been non-stop tweaking these items ever since their inception, and this
continues to the trend.

The crux of the bug was that in the reachability we have a [different branch][2]
for non-library builds which meant that weak lang items (and std internal
symbols) weren't considered reachable, causing them to get eliminiated by
ThinLTO passes. The fix was to basically tweak that branch to consider these
symbols to ensure that they're propagated all the way to the linker.

Along the way I've attempted to erode the distinction between std internal
symbols and weak lang items by having weak lang items automatically configure
fields of `CodegenFnAttrs`. That way most code no longer even considers weak
lang items and they're simply considered normal functions with attributes about
the ABI.

In the end this fixes the final comment of #51342

[1]: https://github.com/rust-lang/rust/issues/51342#issuecomment-414368019
[2]: 35bf1ae257/src/librustc/middle/reachable.rs (L225-L238)
2018-08-26 16:34:14 -07:00
Ariel Ben-Yehuda
025d01432f use an incremental-fulldeps test instead of a run-make test 2018-08-26 18:48:41 +03:00
Ariel Ben-Yehuda
5415bb6e8f create a valid DefIdTable for proc macro crates
At least the incremental compilation code, and a few other places in the
compiler, require the CrateMetadata for a loaded target crate to contain a
valid DefIdTable for the DefIds in the target.

Previously, the CrateMetadata for a proc macro contained the crate's
"host" DefIdTable, which is of course incompatible with the "target"
DefIdTable, causing ICEs. This creates a DefIdTable that properly refers
to the "proc macro" DefIds.

Fixes #49482.
2018-08-26 18:48:41 +03:00
Ariel Ben-Yehuda
993e7e2622 fix is_non_exhaustive confusion between structs and enums
Structs and enums can both be non-exhaustive, with a very different
meaning. This PR splits `is_non_exhaustive` to 2 separate functions - 1
for structs, and another for enums, and fixes the places that got the
usage confused.

Fixes #53549.
2018-08-26 18:24:51 +03:00
Guillaume Gomez
86141797db Remove static and const initialization from documentation 2018-08-26 12:08:30 +02:00
bors
691638582a Auto merge of #53619 - japaric:panic-handler, r=SimonSapin
add #[panic_handler]; deprecate #[panic_implementation]

r? @SimonSapin
cc #44489
2018-08-26 04:02:19 +00:00
bors
36f14b95a2 Auto merge of #53567 - alexcrichton:update-cargo, r=Mark-Simulacrum
Update Cargo submodule

Also update Cargo's dependencies while we're at it
2018-08-26 00:58:07 +00:00
Alex Crichton
2863b75425 Update Cargo submodule
Also update Cargo's dependencies while we're at it
2018-08-25 16:26:28 -07:00
bors
f272688bbb Auto merge of #53612 - mark-i-m:anon_param_disallowed_2018, r=petrochenkov
Remove anonymous trait params from 2018 and beyond

cc @Centril @nikomatsakis
cc #41686 rust-lang/rfcs#2522 #53272

This PR removes support for anonymous trait parameters syntactically in rust 2018 and onward.

TODO:
- [x] Add tests
2018-08-25 22:50:12 +00:00
Oliver Schneider
2d2b69d499 Satisfy tidy 2018-08-25 15:54:09 +02:00
Oliver Schneider
dba1c717ba Check cross crate stability of const fn 2018-08-25 15:31:24 +02:00
Guillaume Gomez
b0ee5ded7a Update tests 2018-08-25 15:30:47 +02:00
bors
545f22340f Auto merge of #53584 - mcr431:Fix-#53525, r=varkor
Fix #53525  - Unify E0243, E0244, E0087, E0088, E0089, and E0090 into E0107

Fix #53525

This pr merges all errors related to too many or too few generic arguments in types and functions. E0243, E0244, E0087, E0088, E0089, E0090 errors will no longer be emitted and E0107 will be used instead.
2018-08-25 13:00:20 +00:00
Matthew Jasper
9309e2ef07 Use smaller span for adjustments on block expressions 2018-08-25 12:13:28 +01:00
bors
f87d9135b4 Auto merge of #53577 - GuillaumeGomez:rustdoc-substring-search, r=QuietMisdreavus
Search a substring instead of start of string in rustdoc search

Fixes #49762.

r? @QuietMisdreavus
2018-08-25 02:40:14 +00:00
bors
d95f078f0a Auto merge of #53225 - nikomatsakis:nll-type-annot, r=pnkfelix
MIR: support user-given type annotations on fns, structs, and enums

This branch adds tooling to track user-given type annotations on functions, structs, and enum variant expressions. The user-given types are passed onto NLL which then enforces them.

cc #47184 — not a complete fix, as there are more cases to cover

r? @eddyb
cc @rust-lang/wg-compiler-nll
2018-08-24 22:42:00 +00:00
Mark Mansi
b32b6e803b fix tests 2018-08-24 15:48:00 -05:00
Mark Mansi
0cec1b92c3 oops 2018-08-24 15:48:00 -05:00