Commit Graph

123800 Commits

Author SHA1 Message Date
Manish Goregaokar
0bde1c3ae5
Rollup merge of #74374 - cuviper:lto-bitcode-1.45, r=Mark-Simulacrum
Add a 1.45 release note on lto vs. embed-bitcode

I added a bullet for Cargo's use of `embed-bitcode`, since that was even noteworthy enough for the Inside Rust blog. Then more importantly, I added a compatibility note for how this may interact poorly with manually enabling LTO.

r? @Mark-Simulacrum
2020-07-15 11:01:33 -07:00
Manish Goregaokar
c43a115398
Rollup merge of #74353 - pierwill:pierwill-edit-dep-node, r=jonas-schievink
Edit docs for rustc_middle::dep_graph::dep_node

Fixes some missing punctuation, and adds a blank line for a more concise summary.
2020-07-15 11:01:31 -07:00
Manish Goregaokar
dceafac96d
Rollup merge of #74347 - jyn514:ive-got-a-small-query-for-you, r=eddyb
Initialize default providers only once

This avoids copying a new `Providers` struct for each downstream crate
that wants to use it.

Follow-up to https://github.com/rust-lang/rust/pull/74283 without the perf hit.

r? @eddyb
2020-07-15 11:01:29 -07:00
Manish Goregaokar
bee28990d3
Rollup merge of #74344 - estebank:stringly-wobbly, r=eddyb
Remove string comparison and use diagnostic item instead

r? @eddyb
2020-07-15 11:01:28 -07:00
Manish Goregaokar
f4bbd0e607
Rollup merge of #74337 - estebank:ty-parse-recovery, r=varkor
Handle case of incomplete local ty more gracefully

When encountering a local binding with a type that isn't completed, the
parser will reach a `=` token. When this happen, consider the type
"complete" as far as the parser is concerned to avoid further errors
being emitted by parse recovery logic.
2020-07-15 11:01:26 -07:00
Manish Goregaokar
64a27880de
Rollup merge of #74294 - msirringhaus:master, r=pietroalbini
Update cross-compilation README

README seemed rather out of date. I hope the information in my PR is now correct (it was more or less assembled by asking in zulip and learning-by-doing).
2020-07-15 11:01:24 -07:00
Manish Goregaokar
b7cf2cbd78
Rollup merge of #74291 - regexident:from-docs, r=GuillaumeGomez
Added docs for `From<c_int>` for `ExitStatus`

Partially addresses https://github.com/rust-lang/rust/issues/51430
2020-07-15 11:01:22 -07:00
Manish Goregaokar
47f6a9d797
Rollup merge of #74276 - lcnr:discriminant-kind-what, r=nagisa
improve DiscriminantKind handling

Adds a lang item `discriminant_type` for the associated type `DiscriminantKind::Discriminant`.

Changes the discriminant of generators from `i32` to `u32`, which should not be observable to fix an
oversight where MIR was using `u32` and codegen and typeck used `i32`.
2020-07-15 11:01:20 -07:00
Manish Goregaokar
0d07db98ab
Rollup merge of #74218 - GuillaumeGomez:search-results-bottom-margin, r=Dylan-DPC
Add margin after doc search results

I found it not really on computer that the last result is right at the bottom of the page. I find it better with margin below (especially when you hover the last element!). A screenshot to show the result:

![Screenshot from 2020-07-10 16-32-23](https://user-images.githubusercontent.com/3050060/87166097-6103a580-c2cb-11ea-81a8-12772cf20f64.png)

r? @kinnison
cc @rust-lang/rustdoc @Manishearth @jyn514
2020-07-15 11:01:18 -07:00
Manish Goregaokar
efad203144
Rollup merge of #74196 - GuillaumeGomez:auto-collapse-implementors, r=Manishearth
Add option to collapse automatically implementors

Fixes #73403

It adds an option (enabled by default) which collapses all implementors impl blocks.

r? @kinnison
cc @rust-lang/rustdoc
2020-07-15 11:01:16 -07:00
Manish Goregaokar
0bb16c8efd
Rollup merge of #74119 - nnethercote:rm-Compiler-compile, r=Mark-Simulacrum
Remove `Compiler::compile()`.

It's unused.

r? @Mark-Simulacrum
2020-07-15 11:01:13 -07:00
Manish Goregaokar
1527126e07
Rollup merge of #73959 - GuillaumeGomez:cleanup-e0716, r=Dylan-DPC
Clean up E0716 explanation

r? @Dylan-DPC
2020-07-15 11:01:11 -07:00
Manish Goregaokar
7307af1f1c
Rollup merge of #73918 - GuillaumeGomez:cleanup-e0715, r=Dylan-DPC
Clean up E0715 explanation

r? @Dylan-DPC
2020-07-15 11:01:08 -07:00
Manish Goregaokar
af3d4cb936
Rollup merge of #72973 - msizanoen1:riscv-host, r=pietroalbini
RISC-V GNU/Linux as host platform

This PR add a new builder named `dist-riscv64-linux` that builds the compiler toolchain for RISC-V 64-bit GNU/Linux.

r? @alexcrichton
2020-07-15 11:01:02 -07:00
Josh Stone
2ba58f9823 Add a 1.45 release note on lto vs. embed-bitcode 2020-07-15 10:27:51 -07:00
Oliver Scherer
5c0e172f91 s/try_to_usize/try_to_machine_usize/ 2020-07-15 19:21:15 +02:00
Oliver Scherer
a871fedf98 Reduce the amount of interning and layout_of calls in const eval. 2020-07-15 19:21:15 +02:00
Josh Stone
75748a4116 ci: Update dist-{i686,x86_64}-linux to Debian 6
This increases the minimum `{i686,x86_64}-unknown-linux-gnu` platform
from RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer
Debian 6 `squeeze` (glibc 2.11 and kernel 2.6.32). While that release is
already EOL, it happens to match the minimum common versions of two
enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12
and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0).
2020-07-15 10:00:06 -07:00
Eric Huss
3d44d3ccfd Simplify os_str_bytes cfg expression. 2020-07-15 09:57:10 -07:00
Eric Huss
0eb293ddb7 Use an allow-list of platforms that support std.
Use a fall-through for no_std targets.
2020-07-15 09:57:10 -07:00
Eric Huss
cee9f05c2d Tweak formatting. 2020-07-15 09:57:10 -07:00
Eric Huss
6e9a1de0d1 Introduce restricted-std feature. 2020-07-15 09:57:05 -07:00
Ludwig Stecher
ef6c0263b0
Improve ayu rustdoc theme
* It makes some lines darker
* It gives the crate selector and search bar a border
  * The search bar's border turns blue when focused
* Gives the logo a bright shadow. This makes dark logos stand out more
2020-07-15 18:18:59 +02:00
Oliver Scherer
703f6803db Don't panic if the lhs of a div by zero is not statically known 2020-07-15 17:55:19 +02:00
Guillaume Gomez
39d99ea6e6 Improve settings wording 2020-07-15 17:40:20 +02:00
Eric Huss
9e58908e27 Use cfg_if in libpanic_abort.
This allows setting a default abort using the core intrinsic.
2020-07-15 08:38:11 -07:00
Eric Huss
432b4c14aa Use cfg_if in libtest.
Simplifies some of the expressions, and provides a default.
2020-07-15 08:38:11 -07:00
Eric Huss
8c6c1dd3d3 Automatically calculate std::env::consts::ARCH.
This simplifies the definition for ARCH.

Note that this changes asmjs-unknown-emscripten ARCH to `wasm32`,
which reflects the actual target arch.
2020-07-15 08:38:10 -07:00
Joshua Nelson
281ca13916 Use the default providers in rustc_interface instead of adding our own
This avoids duplicating the same struct twice.
2020-07-15 11:10:46 -04:00
Joshua Nelson
e117b47f75 Catch errors for any new item, not just trait implementations
This matches the previous behavior of everybody_loops and is also more
consistent than special-casing impls.
2020-07-15 10:54:06 -04:00
Joshua Nelson
6eec9fb5d1 Address review comments
- Move static variables into the innermost scope in which they are used
- Clean up comments
- Remove external_providers; rename local_providers -> providers
2020-07-15 10:54:06 -04:00
Joshua Nelson
ac9157b482 EMPTY_MAP -> EMPTY_SET 2020-07-15 10:54:06 -04:00
Joshua Nelson
b2ff0e703e Fix comment 2020-07-15 10:54:06 -04:00
Joshua Nelson
4c88070c87 Use mem::replace instead of rewriting it 2020-07-15 10:54:06 -04:00
Joshua Nelson
02a24c8e2f Don't ICE on infinitely recursive types
`evaluate_obligation` can only be run on types that are already valid.
So rustdoc still has to run typeck even though it doesn't care about the
result.
2020-07-15 10:54:05 -04:00
Joshua Nelson
2d0e8e2162 --bless 2020-07-15 10:54:05 -04:00
Joshua Nelson
0759a55fef Remove unnecessary lifetime parameter
TyCtxt is a reference type and so can be passed by value.
2020-07-15 10:54:05 -04:00
Joshua Nelson
763d373dab Use tcx as the only context for visitor
Previously two different parts of the context had to be passed
separately; there were two sources of truth.
2020-07-15 10:54:05 -04:00
Joshua Nelson
2f29e696ab Mention cargo check in help message 2020-07-15 10:54:05 -04:00
Joshua Nelson
bbe4971095 Don't crash on Vec<DoesNotExist> 2020-07-15 10:54:05 -04:00
Joshua Nelson
3576f5d7e1 Address review comments about code style 2020-07-15 10:54:05 -04:00
Joshua Nelson
0cbc1cddcc Avoid unnecessary enum
Just use a boolean instead.
2020-07-15 10:54:05 -04:00
Joshua Nelson
cf844d2eab Don't make typeck_tables_of public 2020-07-15 10:54:05 -04:00
Joshua Nelson
d01044305a Add test case for #65863 2020-07-15 10:54:05 -04:00
Joshua Nelson
a93bcc9a7b Recurse into function bodies, but don't typeck closures
Previously, rustdoc would issue a delay_span_bug ICE on the following code:

```rust
pub fn a() -> impl Fn() -> u32 {
    || content::doesnt::matter()
}
```

This wasn't picked up earlier because having `type Alias = impl Trait;`
in the same module caused _all closures_ to be typechecked, even if they
wouldn't normally. Additionally, if _any_ error was emitted, no
delay_span_bug would be emitted. So as part of this commit all of the
tests were separated out into different files.
2020-07-15 10:54:05 -04:00
Joshua Nelson
768d6a4950 Don't ICE on errors in function returning impl trait
Instead, report the error.

This emits the errors on-demand, without special-casing `impl Trait`, so
it should catch all ICEs of this kind, including ones that haven't been
found yet.

Since the error is emitted during type-checking there is less info about
the error; see comments in the code for details.

- Add test case for -> impl Trait
- Add test for impl trait with alias
- Move EmitIgnoredResolutionErrors to rustdoc

This makes `fn typeck_item_bodies` public, which is not desired behavior.
That change should be removed once
https://github.com/rust-lang/rust/pull/74070 is merged.

- Don't visit nested closures twice
2020-07-15 10:54:05 -04:00
Dylan MacKenzie
14a8707cde Add rustdoc tests from #72088 2020-07-15 10:54:05 -04:00
Joshua Nelson
1b8accb749 Add an option not to report resolution errors for rustdoc
- Remove unnecessary `should_loop` variable
- Report errors for trait implementations

These should give resolution errors because they are visible outside the
current scope. Without these errors, rustdoc will give ICEs:

```
thread 'rustc' panicked at 'attempted .def_id() on invalid res: Err', /home/joshua/src/rust/src/libstd/macros.rs:16:9
  15: rustc_hir::def::Res<Id>::def_id
             at /home/joshua/src/rust/src/librustc_hir/def.rs:382
  16: rustdoc::clean::utils::register_res
             at src/librustdoc/clean/utils.rs:627
  17: rustdoc::clean::utils::resolve_type
             at src/librustdoc/clean/utils.rs:587
```

- Add much more extensive tests
  + fn -> impl -> fn
  + fn -> impl -> fn -> macro
  + errors in function parameters
  + errors in trait bounds
  + errors in the type implementing the trait
  + unknown bounds for the type
  + unknown types in function bodies
  + errors generated by macros

- Use explicit state instead of trying to reconstruct it from random info
- Use an enum instead of a boolean
- Add example of ignored error
2020-07-15 10:54:05 -04:00
Joshua Nelson
b3187aabd2 Don't run analysis pass in rustdoc
- Explicitly check for missing docs
- Don't run any lints except those we explicitly specified
2020-07-15 10:54:05 -04:00
Joshua Nelson
a5275ff415 Don't run everybody_loops for rustdoc
Instead, ignore resolution errors that occur in item bodies.

The reason this can't ignore item bodies altogether is because
`const fn` could be used in generic types, for example `[T; f()]`
2020-07-15 10:54:05 -04:00