Commit graph

24377 commits

Author SHA1 Message Date
Mazdak Farrokhzad
eabdce578b
Rollup merge of #59634 - DevQps:explain-E0704, r=estebank
Added an explanation for the E0704 error.

# Description
Adds an explanation on the E0704 error. I tried to stick as closely to the message that the compiler generates. It's the first time I am fixing error messages here, so if there is something I did wrong or should improve, please let me know.

closes #55398
2019-05-02 01:09:23 +02:00
bors
9b67bd42b7 Auto merge of #60435 - Centril:rollup-aa5lmuw, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #60287 (Use references for variances_of)
 - #60327 (Search for incompatible universes in borrow errors)
 - #60330 (Suggest using an inclusive range instead of an exclusive range when the endpoint overflows by 1)
 - #60366 (build-gcc: Create missing cc symlink)
 - #60369 (Support ZSTs in DispatchFromDyn)
 - #60404 (Implement `BorrowMut<str>` for `String`)
 - #60417 (Rename hir::ExprKind::Use to ::DropTemps and improve docs.)

Failed merges:

r? @ghost
2019-05-01 17:24:11 +00:00
bors
6cc24f2603 Auto merge of #60137 - eddyb:rustdoc-rm-def-ctor-hax, r=petrochenkov
rustdoc: remove def_ctor hack.

~~No longer necessary since we have `describe_def`.~~

Turns out `def_ctor` was used in conjunction with abusing `tcx.type_of(def_id)` working on both type definitions and `impl`s (specifically, of builtin types), but also reimplementing a lot of the logic that `Clean` already provides on `Ty` / `ty::TraitRef`.

The first commit now does the minimal refactor to keep it working, while the second commit contains the rest of the refactor I started (parts of which I'm not sure we need to keep).
2019-05-01 12:21:04 +00:00
Christian
2be37ad421 Added the E0704 error with a link to the Rust reference. 2019-05-01 12:01:52 +02:00
Mazdak Farrokhzad
604176cc10
Rollup merge of #60369 - TimDiekmann:dispatch-zst, r=eddyb
Support ZSTs in DispatchFromDyn

Allows to use ZSTs with 1 byte alignment in `DispatchFromDyn` implementation. This is required for `Box<T, A: Alloc>`

cc #58457
2019-05-01 08:29:14 +02:00
Mazdak Farrokhzad
6d78142bf0
Rollup merge of #60330 - varkor:range-endpoint-overflow-lint, r=estebank
Suggest using an inclusive range instead of an exclusive range when the endpoint overflows by 1

Fixes https://github.com/rust-lang/rust/issues/47213.
2019-05-01 08:29:11 +02:00
Mazdak Farrokhzad
1c2ea8f596
Rollup merge of #60327 - matthewjasper:handle-local-outlives-lbl, r=nikomatsakis
Search for incompatible universes in borrow errors

If we have a borrow that has to live for `'static` we need to check for
any regions in incompatible universes when trying to find the cause.

closes #60274
2019-05-01 08:29:10 +02:00
varkor
13962aff37 Include signed integer types in the lint 2019-04-30 22:43:51 +01:00
varkor
0556e4891e Preserve literal suffixes 2019-04-30 22:43:51 +01:00
varkor
218982bef0 Place types inside backticks 2019-04-30 22:43:51 +01:00
varkor
c5fdff26b5 Add a test for overflowing endpoints 2019-04-30 22:43:51 +01:00
bors
7c71bc3208 Auto merge of #60262 - michaelwoerister:pgo-preinlining-pass, r=alexcrichton
PGO: Add a run-make test that makes sure that PGO profiling data is used by the compiler during optimizations.

From the tests comment section:
```
# This test makes sure that PGO profiling data leads to cold functions being
# marked as `cold` and hot functions with `inlinehint`.
# The test program contains an `if` were actual execution only ever takes the
# `else` branch. Accordingly, we expect the function that is never called to
# be marked as cold.
```

r? @alexcrichton
2019-04-30 19:52:13 +00:00
Michael Woerister
7c4cc01f79 Work around missing tac command on macOS in PGO run-make test. 2019-04-30 17:38:01 +02:00
Tim Diekmann
1b679e74f0
Only allow ZSTs with 1 byte alignment 2019-04-30 14:38:17 +02:00
bors
862a8784ab Auto merge of #60159 - estebank:type-mismatch-cast, r=oli-obk
Suggest `try_into` when possible

CC #47168
2019-04-30 12:28:11 +00:00
Eduard-Mihai Burtescu
c835607907 rustdoc: remove def_ctor hack. 2019-04-30 12:55:38 +03:00
Esteban Küber
31eb5cc730 Account for const fns to avoid incorrect suggestions 2019-04-29 17:14:31 -07:00
bors
03122e1bac Auto merge of #60006 - nnethercote:json-for-pipelining, r=alexcrichton
In JSON output, emit a directive after metadata is generated.

To implement pipelining, Cargo needs to know when metadata generation is
finished. This is done via a new JSON "directive".

Unfortunately, metadata file writing currently occurs very late during
compilation, so pipelining won't produce a speed-up. Moving metadata
file writing earlier will be a follow-up.

r? @alexcrichton
2019-04-29 23:35:01 +00:00
Nicholas Nethercote
7bcb0cffb6 In JSON output, emit a directive after metadata is generated.
To implement pipelining, Cargo needs to know when metadata generation is
finished. This commit adds code to do that. Unfortunately, metadata file
writing currently occurs very late during compilation, so pipelining
won't produce a speed-up. Moving metadata file writing earlier will be a
follow-up.

The change involves splitting the existing `Emitter::emit` method in
two: `Emitter::emit_diagnostic` and `Emitter::emit_directive`.

The JSON directives look like this:
```
{"directive":"metadata file written: liba.rmeta"}
```
The functionality is behind the `-Z emit-directives` option, and also
requires `--error-format=json`.
2019-04-30 08:51:57 +10:00
Esteban Küber
4e84b619f4 Add test 2019-04-29 14:38:26 -07:00
Esteban Küber
4b1297baf7 Suggest try_into when possible 2019-04-29 14:38:26 -07:00
Mazdak Farrokhzad
04942105ef
Rollup merge of #60360 - rasendubi:const-labeled-break, r=Centril
Add test case for labeled break in const assignment

Fixes #51350.
2019-04-29 22:22:46 +02:00
Mazdak Farrokhzad
4369f03620
Rollup merge of #60359 - petrochenkov:imperruse, r=estebank
resolve: Consider erroneous imports used to avoid duplicate diagnostics

Supersedes https://github.com/rust-lang/rust/pull/60295
Fixes https://github.com/rust-lang/rust/issues/48244
r? @estebank
2019-04-29 22:22:45 +02:00
Mazdak Farrokhzad
3091961621
Rollup merge of #60353 - JohnTitor:add-test, r=Centril
Add test not to forget resolved ICE

closes #55499

I added the example as a test.

r? @pnkfelix
2019-04-29 22:22:41 +02:00
bors
96d565be01 Auto merge of #60039 - rasendubi:assert-trailing-junk, r=alexcrichton
Make assert! ensure the macro is parsed completely

Fixes https://github.com/rust-lang/rust/issues/60024
2019-04-29 14:50:17 +00:00
Michael Woerister
c95f5e31c7 bootstrap: Don't add LLVM's bin directory to the PATH for tool invocations. 2019-04-29 14:55:29 +02:00
Tim Diekmann
abf73a6aeb
Support ZSTs in DispatchFromDyn 2019-04-29 14:03:40 +02:00
bors
00acb7b243 Auto merge of #60364 - JohnTitor:stabilize-const-needs-drop, r=oli-obk
const-stabilize: std::mem::needs_drop

Closes #51929

r? @oli-obk
2019-04-29 09:48:11 +00:00
Yuki OKUSHI
1c17489bfe const-stabilize std::mem::needs_drop 2019-04-29 12:41:06 +09:00
Alexey Shmalko
7cafacdd82
Add test case for labeled break in const assignment
See https://github.com/rust-lang/rust/issues/51350 for more information.
2019-04-28 23:12:35 +03:00
Vadim Petrochenkov
fbbec76701 resolve: Consider erroneous imports used to avoid duplicate diagnostics 2019-04-28 22:36:57 +03:00
flip1995
8af35fe3f0
Update *.stderr files 2019-04-28 21:19:26 +02:00
flip1995
90ba09d299
Add tests 2019-04-28 21:19:25 +02:00
Yuki OKUSHI
52356cad4e Add test 2019-04-28 22:54:06 +09:00
Matthew Jasper
a962274903 Search for incompatible universes in borrow errors
If we have a borrow that has to live for `'static` we need to check for
any regions in incompatible universes when trying to find the cause.
2019-04-26 22:14:52 +01:00
Dmitry Murzin
d2b4f4d452 Make "Implementations on Foreign Types" items in sidebar link to specific impls 2019-04-26 22:39:00 +03:00
Michael Woerister
4dc3b99b27 PGO: Add a run-make test that makes sure that PGO profiling data is used by the compiler during optimizations. 2019-04-26 16:52:04 +02:00
Michael Woerister
68b6924363 compiletest: Make the LLVM FileCheck tool available to run-make tests. 2019-04-26 16:52:04 +02:00
bors
e8310a7714 Auto merge of #60167 - varkor:tidy-filelength, r=matthewjasper
Add a tidy check for files with over 3,000 lines

Files with a large number of lines can cause issues in GitHub (e.g. https://github.com/rust-lang/rust/issues/60015) and also tend to be indicative of opportunities to refactor into less monolithic structures.

This adds a new check to tidy to warn against files that have more than 3,000 lines, as suggested in https://github.com/rust-lang/rust/issues/60015#issuecomment-483868594. (This number was chosen fairly arbitrarily as a reasonable indicator of size.) This check can be ignored with `// ignore-tidy-filelength`.

Existing files with greater than 3,000 lines currently ignore the check, but this helps us spot when files are getting too large. (We might try to split up all files larger than this in the future, as in https://github.com/rust-lang/rust/issues/60015).
2019-04-26 04:42:10 +00:00
Mazdak Farrokhzad
a133caab36
Rollup merge of #60289 - tmandry:allow-features-include-std, r=cramertj
Make `-Z allow-features` work for stdlib features

r? @cramertj
2019-04-26 03:50:26 +02:00
Mazdak Farrokhzad
3a907cee97
Rollup merge of #60284 - varkor:const-param-of-type-param, r=cramertj
Do not allow const generics to depend on type parameters

Fixes https://github.com/rust-lang/rust/issues/60264. In https://github.com/rust-lang/rust/pull/58191/files/b534cf992d0189032207f395c27ed092c89b40c7#diff-aeb0880081a991f34aef2ab889e1fb7a, it was suggested that there might be a better place for this error, but as this bug already affects stable, it's probably worth merging this now, and refactoring afterwards (I can open an issue for this).
2019-04-26 03:50:24 +02:00
Mazdak Farrokhzad
4387f99fc5
Rollup merge of #60267 - gnzlbg:f16c_target_feature, r=alexcrichton
Add feature-gate for f16c target feature

r? @alexcrichton
2019-04-26 03:50:22 +02:00
Mazdak Farrokhzad
77c5f557cc
Rollup merge of #60183 - tmandry:chalk-builtin-copy-clone, r=scalexm
Chalkify: Add builtin Copy/Clone

r? @nikomatsakis
2019-04-26 03:50:17 +02:00
Mazdak Farrokhzad
878a7d6ea5
Rollup merge of #60134 - GuillaumeGomez:fix-index-page, r=Manishearth
Fix index-page generation

Fixes #60096.

The minifier was minifying crates name in `searchIndex` key position, which was a bit problematic for multiple reasons.

r? @rust-lang/rustdoc
2019-04-26 03:50:14 +02:00
Mazdak Farrokhzad
09a7051d28
Rollup merge of #59940 - GuillaumeGomez:rustdoc-test, r=ollie27
Set cfg(test) when rustdoc is running with --test option

Following a [discussion on twitter](https://twitter.com/burntsushi5/status/1117091914199785473), I proposed this change. What do you think about it?

r? @QuietMisdreavus

cc @BurntSushi
2019-04-26 03:50:13 +02:00
varkor
6d7c7940b5 Add comment explaining restriction 2019-04-25 23:29:58 +01:00
Tyler Mandry
0a26789af9 Make -Z allow-features work for stdlib features 2019-04-25 14:03:45 -07:00
varkor
aa388f1d11 ignore-tidy-filelength on all files with greater than 3000 lines 2019-04-25 21:39:09 +01:00
bors
3991285f55 Auto merge of #59111 - gilescope:generator-better-errors, r=nikomatsakis
Improved error message when type must be bound due to generator.

Fixes #58930.

Keen to get some feedback - is this as minimal as we can get it or is there an existing visitor I could repurpose?
2019-04-25 20:27:16 +00:00
varkor
908a6399bc Add a test for const parameters with type parameters as types 2019-04-25 21:12:17 +01:00