Commit Graph

108088 Commits

Author SHA1 Message Date
Guillaume Gomez
1c01646e6f Extend json detection in runtest 2020-03-02 13:19:10 +01:00
Guillaume Gomez
f1070b1525 Replace ToJson with serde 2020-03-02 13:19:10 +01:00
Guillaume Gomez
15babed8b7 add tests for rustdoc output-format json 2020-03-02 13:18:45 +01:00
Guillaume Gomez
10492c392a Add support for json output in show-coverage option 2020-03-02 13:18:45 +01:00
Guillaume Gomez
8858d71d28 Put back output-format option for show-coverage 2020-03-02 13:15:51 +01:00
Guillaume Gomez
ba49ed01f0 clean up E0378 explanation 2020-03-02 13:10:24 +01:00
Matthias Krüger
21affdd00d use values() or keys() respectively when iterating only over keys or values of maps. 2020-03-02 13:01:05 +01:00
Erin Power
4643b12f78
Update my mailmap entry 2020-03-02 12:04:09 +01:00
DutchGhost
a30b0a61b8 actually mark the function const 2020-03-02 11:00:20 +01:00
bors
c839a7b4c2 Auto merge of #69257 - RalfJung:layout-visitor, r=eddyb
Adjust Miri value visitor, and doc-comment layout components

I realized that I still didn't have quite the right intuition for how our `LayoutDetails` work, so I had to adjust the Miri value visitor to the things I understood better now. I also added some doc-comments to `LayoutDetails` as a hopefully canonical place to note such things.

The main visitor change is that we *first* look at all the fields (according to `FieldPlacement`), and *then* check the variants and handle `Multiple` appropriately. I did not quite realize how orthogonal "fields" and "variants" are.
I also moved the check for the scalar ABI to *after* checking all the fields; this leads to better (more type-driven) error messages.

And it looks like we can finally remove that magic hack for `ty::Generator`. :D

r? @oli-obk for the Miri/visitor changes and @eddyb for the layout docs
The Miri PR is at: https://github.com/rust-lang/miri/pull/1178
2020-03-02 09:37:35 +00:00
Ralf Jung
cbf52b1675 remove non-sysroot sources from rust-src component 2020-03-02 10:13:11 +01:00
bors
6af4fd385e Auto merge of #69469 - matthewjasper:type-flags, r=cramertj
Clean up TypeFlags

* Add a new method `has_infer_types_or_consts` that's used instead of `has_infer_types` most of the time, since there's generally no reason to only consider types.
*  Remove `has_closure_types`/`HAS_TY_CLOSURE`, because closures are no longer implicitly linked to the `InferCtxt`.
* Reorder flags to group similar ones together
* Make some flags more granular
* Compute `HAS_FREE_LOCAL_NAMES` from the other flags
* Add some more doc comments
2020-03-02 06:30:52 +00:00
Nicholas Nethercote
99a595e406 Fix a leak in DiagnosticBuilder::into_diagnostic.
Fixes #69600.
2020-03-02 14:42:46 +11:00
bors
e86c9e6ef8 Auto merge of #69442 - jakevossen5:master, r=Mark-Simulacrum
`--explain` disambiguates no long description and invalid error codes

Closes #44710

First code contribution here, so feedback is very much appreciated!

cc @zackmdavis
cc @Mark-Simulacrum
2020-03-02 03:16:22 +00:00
Steven Allen
85cbabba63 Implement nth, last, and count for iter::Copied 2020-03-01 16:37:52 -08:00
bors
9dc8dad14f Auto merge of #69432 - petrochenkov:alldeps, r=eddyb
rustc_metadata: Load metadata for indirect macro-only dependencies

Imagine this dependency chain between crates
```
Executable crate -> Library crate -> Macro crate
```
where "Library crate" uses the macros from "Macro crate" for some code generation, but doesn't reexport them any further.

Currently, when compiling "Executable crate" we don't even load metadata for it, because why would we want to load any metadata from "Macro crate" if it already did all its code generation job when compiling "Library crate".
Right?

Wrong!
Hygiene data and spans (https://github.com/rust-lang/rust/issues/68686, https://github.com/rust-lang/rust/pull/68941) from "Macro crate" still may need to be decoded from "Executable crate".
So we'll have to load them properly.

Questions:
- How this will affect compile times for larger crate trees in practice? How to measure it?
Hygiene/span encoding/decoding will necessarily slow down compilation because right now we just don't do some work that we should do, but this introduces a whole new way to slow down things. E.g. loading metadata for `syn` (and its dependencies) when compiling your executable if one of its library dependencies uses it.
- We are currently detecting whether a crate reexports macros from "Macro crate" or not, could we similarly detect whether a crate "reexports spans" and keep it unloaded if it doesn't?
Or at least "reexports important spans" affecting hygiene, we can probably lose spans that only affect diagnostics.
2020-03-02 00:07:06 +00:00
Eric Huss
22d840e501 Toolstate: Don't block beta week on already broken tools. 2020-03-01 15:46:38 -08:00
Mazdak Farrokhzad
df20036848 stash API: remove panic to fix ICE. 2020-03-02 00:07:23 +01:00
LeSeulArtichaut
6bfa48a0ae
Rename syntax in librustc_ast/README.md 2020-03-01 23:56:03 +01:00
Mazdak Farrokhzad
176fe3f8ac encode ; stmt w/o expr as StmtKind::Empty 2020-03-01 23:02:17 +01:00
Matthew Jasper
1617ec4ad2 Clean up TypeFlags
* Reorder flags to group similar ones together
* Make some flags more granular
* Compute `HAS_FREE_LOCAL_NAMES` from the other flags
* Remove `HAS_TY_CLOSURE`
* Add some more doc comments
2020-03-01 21:42:34 +00:00
Matthew Jasper
ebc86b441d Fix use of has_infer_types
* Add a new method `has_infer_types_or_consts` that's used instead most
  of the time, since there's generally no reason to only consider types.
*  Remove use of `has_closure_types`, because closures are no longer
  implicitly linked to the `InferCtxt`.
2020-03-01 21:42:34 +00:00
Matthew Kuo
275dac7bfb doc(librustc_error_codes): add long error explanation for E0719
Progresses #61137
2020-03-01 15:17:08 -06:00
bors
1cf090e8d1 Auto merge of #69408 - RalfJung:canonical-alloc-id, r=oli-obk
Miri: let machine canonicalize AllocIDs

This implements the rustc side of the plan I laid out [here](https://github.com/rust-lang/miri/pull/1147#issuecomment-581868901).

Miri PR: https://github.com/rust-lang/miri/pull/1190
2020-03-01 20:53:04 +00:00
Matthias Krüger
22339c3406 use for (idx, item) in iter.enumerate() instead of manually counting loop iterations by variables 2020-03-01 21:17:48 +01:00
Matthias Krüger
03aecda83a use subdsec_micros() instead of subsec_nanos() / 1000 2020-03-01 21:15:13 +01:00
Matthias Krüger
eda8d82b95 use starts_with() instead of chars().next() == Some(x) 2020-03-01 21:14:53 +01:00
DutchGhost
ae70ab071a constify mem::forget 2020-03-01 20:42:35 +01:00
Esteban Küber
7b6f5ed956 delay_span_bug when codegen cannot select obligation
Fix #69602, introduced in #60126 by letting the compiler continue past
type checking after encountering errors.
2020-03-01 10:46:07 -08:00
bors
beac68a887 Auto merge of #69612 - Dylan-DPC:rollup-f180gcc, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #69504 (Use assert_ne in hash tests)
 - #69554 (Cleanup e0374)
 - #69568 (Clarify explanation of Vec<T> 'fn resize')
 - #69569 (simplify boolean expressions)
 - #69577 (Clean up E0375 explanation)
 - #69598 (rustdoc: HTML escape crate version)
 - #69607 (Clean up E0376 explanation)

Failed merges:

r? @ghost
2020-03-01 17:39:05 +00:00
Dylan DPC
d3a5a5d20b
Rollup merge of #69607 - GuillaumeGomez:cleanup-e0376, r=Dylan-DPC
Clean up E0376 explanation

r? @Dylan-DPC
2020-03-01 17:23:36 +01:00
Dylan DPC
22a03913f4
Rollup merge of #69598 - ollie27:rustdoc_crate-version_escape, r=GuillaumeGomez
rustdoc: HTML escape crate version

As `--crate-version` accepts arbitrary strings they need to be escaped.

r? @GuillaumeGomez
2020-03-01 17:23:34 +01:00
Dylan DPC
8ffbf9033b
Rollup merge of #69577 - GuillaumeGomez:cleanup-e0375, r=Dylan-DPC
Clean up E0375 explanation

r? @Dylan-DPC
2020-03-01 17:23:32 +01:00
Dylan DPC
87284d7e79
Rollup merge of #69569 - matthiaskrgr:nonminimal_bool, r=mark-Simulacrum
simplify boolean expressions
2020-03-01 17:23:30 +01:00
Dylan DPC
55d0a8b201
Rollup merge of #69568 - JOE1994:patch-2, r=Dylan-DPC
Clarify explanation of Vec<T> 'fn resize'

1. Clarified on what should implement `Clone` trait.
2. Minor grammar fix:
to be able clone => to be able **to** clone
2020-03-01 17:23:29 +01:00
Dylan DPC
6fc73bc10a
Rollup merge of #69554 - GuillaumeGomez:cleanup-e0374, r=Dylan-DPC
Cleanup e0374

r? @Dylan-DPC
2020-03-01 17:23:27 +01:00
Dylan DPC
e9e1ab1058
Rollup merge of #69504 - MichaelMcDonnell:hash_assert_ne, r=LukasKalbertodt
Use assert_ne in hash tests

The hash tests were written before the assert_ne macro was added to the standard library. The assert_ne macro provides better output in case of a failure.
2020-03-01 17:23:26 +01:00
Michael Mc Donnell
87327eb72a Remove assert that had been replaced by assert_ne 2020-03-01 08:04:18 -08:00
bors
360e42de82 Auto merge of #69380 - Zoxc:parent-module, r=michaelwoerister
Use a query to get parent modules

Split out from https://github.com/rust-lang/rust/pull/69015 / https://github.com/rust-lang/rust/pull/68944.

r? @michaelwoerister
2020-03-01 14:21:03 +00:00
O01eg
7694a6d6d9
Print new --print option in help. 2020-03-01 16:14:26 +03:00
O01eg
4023e5df7e
Expose target libdir information via print command.
With custom libdir it is required to have an access to library
placement.
2020-03-01 14:33:52 +03:00
Guillaume Gomez
dd142b1dc4 Clean up E0376 explanation 2020-03-01 12:03:38 +01:00
bors
6b2983af1a Auto merge of #69606 - JohnTitor:rollup-i3nrrcf, r=JohnTitor
Rollup of 7 pull requests

Successful merges:

 - #69397 (bootstrap: Remove commit hash from LLVM version suffix to avoid rebuilds)
 - #69549 (Improve MinGW detection when cross compiling )
 - #69562 (Don't `bug` when taking discriminant of generator during dataflow)
 - #69579 (parser: Remove `Parser::prev_span`)
 - #69580 (use .copied() instead of .map(|x| *x) on iterators)
 - #69583 (Do not ICE on invalid type node after parse recovery)
 - #69605 (Use `opt_def_id()` over `def_id()`)

Failed merges:

r? @ghost
2020-03-01 11:03:16 +00:00
Vadim Petrochenkov
9c885d40fb ast: Implement TryFrom<ItemKind> for associated and foreign items 2020-03-01 13:47:48 +03:00
Vadim Petrochenkov
857e34c7a3 ast: Unmerge structures for associated items and foreign items 2020-03-01 13:47:48 +03:00
Yuki Okushi
47d87d7ca5
Rollup merge of #69605 - JohnTitor:opt-def-id, r=petrochenkov
Use `opt_def_id()` over `def_id()`

Fixes #69588
2020-03-01 19:28:15 +09:00
Yuki Okushi
9801696214
Rollup merge of #69583 - LeSeulArtichaut:ice-69378, r=Centril
Do not ICE on invalid type node after parse recovery

Closes #69378.
r? @estebank
2020-03-01 19:28:13 +09:00
Yuki Okushi
680a0e1dd5
Rollup merge of #69580 - matthiaskrgr:map_clone, r=Centril
use .copied() instead of .map(|x| *x) on iterators
2020-03-01 19:28:12 +09:00
Yuki Okushi
4439bb09aa
Rollup merge of #69579 - petrochenkov:noprevspan, r=Centril
parser: Remove `Parser::prev_span`

Follow-up to https://github.com/rust-lang/rust/pull/69384.
r? @Centril
2020-03-01 19:28:10 +09:00
Yuki Okushi
48ec25224b
Rollup merge of #69562 - ecstatic-morse:dataflow-generator-discriminant, r=oli-obk
Don't `bug` when taking discriminant of generator during dataflow

The proper fix for rust-lang/rust-clippy#5239. `Rvalue::Discriminant` is used on generators as well as `enum`s. This didn't cause a test failure in `rustc` since we don't need to do any dataflow passes until after the generator transform that adds the `Rvalue::Discriminant`.

This required a small refactoring. `diff -w` is beneficial.

r? @oli-obk
cc @JohnTitor
2020-03-01 19:28:09 +09:00