]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoRollup merge of #87464 - camelid:rm-union-structhead, r=jyn514
Guillaume Gomez [Mon, 26 Jul 2021 14:04:37 +0000 (16:04 +0200)]
Rollup merge of #87464 - camelid:rm-union-structhead, r=jyn514

Remove unnecessary `structhead` parameter from `render_union`

`structhead` is used for `render_struct` so that the logic for rendering
structs can be shared between struct variants and struct items. However,
`render_union` is not used anywhere except for rendering union items, so
its `structhead` parameter is unnecessary.

2 years agoRollup merge of #87458 - ibraheemdev:help-msg-block-borrow, r=oli-obk
Guillaume Gomez [Mon, 26 Jul 2021 14:04:36 +0000 (16:04 +0200)]
Rollup merge of #87458 - ibraheemdev:help-msg-block-borrow, r=oli-obk

Fix help message for modification to &T created by &{t}

Previous:
```rust
error[E0594]: cannot assign to `*x` which is behind a `&` reference
 --> src/main.rs:3:5
  |
2 |     let x: &usize = &mut{0};
  |                     ------- help: consider changing this to be a mutable reference: `&mut mut{0}`
3 |     *x = 1;
  |     ^^^^^^ `x` is a `&` reference, so the data it refers to cannot be written
```

2 years agoRollup merge of #87457 - devnexen:fbsd_remove_workaround, r=petrochenkov
Guillaume Gomez [Mon, 26 Jul 2021 14:04:35 +0000 (16:04 +0200)]
Rollup merge of #87457 - devnexen:fbsd_remove_workaround, r=petrochenkov

freebsd remove compiler workaround.

related issue #43575

2 years agoRollup merge of #87447 - RalfJung:not-null, r=oli-obk
Guillaume Gomez [Mon, 26 Jul 2021 14:04:34 +0000 (16:04 +0200)]
Rollup merge of #87447 - RalfJung:not-null, r=oli-obk

Miri: santiy check that null pointer can never have an AllocId

2 years agoRollup merge of #87444 - camelid:flatten-nested-format, r=jyn514
Guillaume Gomez [Mon, 26 Jul 2021 14:04:32 +0000 (16:04 +0200)]
Rollup merge of #87444 - camelid:flatten-nested-format, r=jyn514

Flatten nested `format!` calls

2 years agoRollup merge of #87436 - ebobrow:suggest-semicolon, r=oli-obk
Guillaume Gomez [Mon, 26 Jul 2021 14:04:26 +0000 (16:04 +0200)]
Rollup merge of #87436 - ebobrow:suggest-semicolon, r=oli-obk

Suggest `;` on parse error where applicable

fixes #87197

2 years agoAuto merge of #87442 - mystor:patch-2, r=m-ou-se
bors [Mon, 26 Jul 2021 08:42:15 +0000 (08:42 +0000)]
Auto merge of #87442 - mystor:patch-2, r=m-ou-se

Fix my email in .mailmap

2 years agoAuto merge of #87439 - ThibsG:FixDocTypo, r=jonas-schievink
bors [Mon, 26 Jul 2021 05:51:40 +0000 (05:51 +0000)]
Auto merge of #87439 - ThibsG:FixDocTypo, r=jonas-schievink

Fix doc typo

Just a typo in doc that has a bad rendering here: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_typeck/expr_use_visitor/struct.ExprUseVisitor.html#method.walk_captures

2 years agoAuto merge of #87424 - RalfJung:const-check, r=oli-obk
bors [Mon, 26 Jul 2021 03:10:42 +0000 (03:10 +0000)]
Auto merge of #87424 - RalfJung:const-check, r=oli-obk

rename const checking visitor module to check_consts::check

This avoids naming ambiguities with "const validation" which is in `interpret/validity.rs` and checks *values*.

r? `@oli-obk`

2 years agoAuto merge of #87430 - devnexen:netbsd_ucred_enabled, r=joshtriplett
bors [Mon, 26 Jul 2021 00:22:45 +0000 (00:22 +0000)]
Auto merge of #87430 - devnexen:netbsd_ucred_enabled, r=joshtriplett

netbsd enabled ucred

2 years agoRemove unnecessary `structhead` parameter from `render_union`
Noah Lev [Sun, 25 Jul 2021 23:28:52 +0000 (16:28 -0700)]
Remove unnecessary `structhead` parameter from `render_union`

`structhead` is used for `render_struct` so that the logic for rendering
structs can be shared between struct variants and struct items. However,
`render_union` is not used anywhere except for rendering union items, so
its `structhead` parameter is unnecessary.

2 years agoAuto merge of #87390 - notriddle:notriddle/rustdoc-headers-patch, r=GuillaumeGomez
bors [Sun, 25 Jul 2021 21:41:57 +0000 (21:41 +0000)]
Auto merge of #87390 - notriddle:notriddle/rustdoc-headers-patch, r=GuillaumeGomez

Rustdoc accessibility: use real headers for doc items

Part of #87059

Partially reverts #84703

Preview at: https://notriddle.com/notriddle-rustdoc-test/real-headers/std/index.html

2 years agoRustdoc accessibility: use real headers for doc items
bors [Sun, 25 Jul 2021 21:41:57 +0000 (21:41 +0000)]
Rustdoc accessibility: use real headers for doc items

Part of #87059

Partially reverts #84703

Preview at: https://notriddle.com/notriddle-rustdoc-test/real-headers/std/index.html

2 years agoAuto merge of #86595 - a1phyr:allocator_api_for_vecdeque, r=Amanieu
bors [Sun, 25 Jul 2021 19:01:10 +0000 (19:01 +0000)]
Auto merge of #86595 - a1phyr:allocator_api_for_vecdeque, r=Amanieu

Add support for custom allocator in `VecDeque`

This follows the [roadmap](https://github.com/rust-lang/wg-allocators/issues/7) of the allocator WG to add custom allocators to collections.

`@rustbot` modify labels: +A-allocators +T-libs

2 years agoFix failing test
Benoît du Garreau [Sun, 25 Jul 2021 18:34:08 +0000 (20:34 +0200)]
Fix failing test

2 years agofmt
ibraheemdev [Sun, 25 Jul 2021 17:35:06 +0000 (13:35 -0400)]
fmt

2 years agofix help message for modification to &T created by &{t}
ibraheemdev [Sun, 25 Jul 2021 17:16:40 +0000 (13:16 -0400)]
fix help message for modification to &T created by &{t}

2 years agofreebsd remove compiler workaround.
David Carlier [Sun, 25 Jul 2021 16:38:44 +0000 (17:38 +0100)]
freebsd remove compiler workaround.

related issue #43575

2 years agoAuto merge of #86438 - FabianWolff:issue-83693, r=jackh726
bors [Sun, 25 Jul 2021 16:17:58 +0000 (16:17 +0000)]
Auto merge of #86438 - FabianWolff:issue-83693, r=jackh726

Fix the ICE described in #83693

This pull request fixes #83693 and fixes #84768.

2 years agoAuto merge of #85646 - Moxinilian:separate-const-switch, r=cjgillot
bors [Sun, 25 Jul 2021 13:51:48 +0000 (13:51 +0000)]
Auto merge of #85646 - Moxinilian:separate-const-switch, r=cjgillot

MIR opt: separate constant predecessors of a switch

For each block S ending with a switch, this pass copies S for each of S's predecessors that seem to assign the value being switched over as a const. This is done using a somewhat simple heuristic to determine what seems to be a const transitively.

More precisely, this is what the pass does:
- find a block that ends in a switch
- track if there is an unique place set before the current basic block that determines the result of the switch (this is the part that resolves switching over discriminants)
- if there is, iterate over the parents that have a reasonable terminator and find if the found determining place is likely to be (transitively) set from a const within that parent block
- if so, add the corresponding edge to a vector of edges to duplicate
- once this is done, iterate over the found edges: copy the target block and replace the reference to the target block in the origin block with the new block

This pass is not optimal and could probably duplicate in more cases, but the intention was mostly to address cases like in #85133 or #85365, to avoid creating new enums that get destroyed immediately afterwards (notably making the new try v2 `?` desugar zero-cost).

A benefit of this pass working the way it does is that it is easy to ensure its correctness: the worst that can happen is for it to needlessly copy a basic block, which is likely to be destroyed by cleanup passes afterwards. The complex parts where aliasing matters are only heuristics and the hard work is left to further passes like ConstProp.

# LLVM blocker

Unfortunately, I believe it would be unwise to enable this optimization by default for now. Indeed, currently switch lowering passes like SimplifyCFG in LLVM lose the information on the set of possible variant values, which means it tends to actually generate worse code with this optimization enabled. A fix would have to be done in LLVM itself. This is something I also want to look into. I have opened [a bug report at the LLVM bug tracker](https://bugs.llvm.org/show_bug.cgi?id=50455).

When this is done, I hope we can enable this pass by default. It should be fairly fast and I think it is beneficial in many cases. Notably, it should be a sound alternative to simplify-arm-identity. By the way, ConstProp only seems to pick up the optimization in functions that are not generic. This is however most likely an issue in ConstProp that I will look into afterwards.

This is my first contribution to rustc, and I would like to thank everyone on the Zulip mir-opt chat for the help and support, and especially `@scottmcm` for the guidance.

2 years agoAuto merge of #83723 - cjgillot:ownernode, r=petrochenkov
bors [Sun, 25 Jul 2021 11:11:02 +0000 (11:11 +0000)]
Auto merge of #83723 - cjgillot:ownernode, r=petrochenkov

Store all HIR owners in the same container

This replaces the previous storage in a BTreeMap for each of Item/ImplItem/TraitItem/ForeignItem.
This should allow for a more compact storage.

Based on https://github.com/rust-lang/rust/pull/83114

2 years agoOnly check macro attributes when checking the crate root.
Camille GILLOT [Sat, 24 Jul 2021 17:30:46 +0000 (19:30 +0200)]
Only check macro attributes when checking the crate root.

2 years agoBless tests.
Camille GILLOT [Mon, 29 Mar 2021 18:10:26 +0000 (20:10 +0200)]
Bless tests.

2 years agoUse more of OwnerNode.
Camille GILLOT [Sat, 27 Mar 2021 12:56:22 +0000 (13:56 +0100)]
Use more of OwnerNode.

2 years agoUse OwnerNode in indexing.
Camille GILLOT [Sat, 27 Mar 2021 12:21:26 +0000 (13:21 +0100)]
Use OwnerNode in indexing.

2 years agoIntroduce OwnerNode::Crate.
Camille GILLOT [Sun, 25 Jul 2021 10:03:24 +0000 (12:03 +0200)]
Introduce OwnerNode::Crate.

2 years agoMerge the BTreeMap in hir::Crate.
Camille GILLOT [Fri, 5 Feb 2021 14:47:44 +0000 (15:47 +0100)]
Merge the BTreeMap in hir::Crate.

2 years agoMiri: santiy check that null pointer can never have an AllocId
Ralf Jung [Sun, 25 Jul 2021 09:31:57 +0000 (11:31 +0200)]
Miri: santiy check that null pointer can never have an AllocId

2 years agoAuto merge of #87381 - Aaron1011:note-semi-trailing-macro, r=petrochenkov
bors [Sun, 25 Jul 2021 04:34:58 +0000 (04:34 +0000)]
Auto merge of #87381 - Aaron1011:note-semi-trailing-macro, r=petrochenkov

Display an extra note for trailing semicolon lint with trailing macro

Currently, we parse macros at the end of a block
(e.g. `fn foo() { my_macro!() }`) as expressions, rather than
statements. This means that a macro invoked in this position
cannot expand to items or semicolon-terminated expressions.

In the future, we might want to start parsing these kinds of macros
as statements. This would make expansion more 'token-based'
(i.e. macro expansion behaves (almost) as if you just textually
replaced the macro invocation with its output). However,
this is a breaking change (see PR #78991), so it will require
further discussion.

Since the current behavior will not be changing any time soon,
we need to address the interaction with the
`SEMICOLON_IN_EXPRESSIONS_FROM_MACROS` lint. Since we are parsing
the result of macro expansion as an expression, we will emit a lint
if there's a trailing semicolon in the macro output. However, this
results in a somewhat confusing message for users, since it visually
looks like there should be no problem with having a semicolon
at the end of a block
(e.g. `fn foo() { my_macro!() }` => `fn foo() { produced_expr; }`)

To help reduce confusion, this commit adds a note explaining
that the macro is being interpreted as an expression. Additionally,
we suggest adding a semicolon after the macro *invocation* - this
will cause us to parse the macro call as a statement. We do *not*
use a structured suggestion for this, since the user may actually
want to remove the semicolon from the macro definition (allowing
the block to evaluate to the expression produced by the macro).

2 years agoAuto merge of #87331 - camelid:summary-escaping, r=GuillaumeGomez
bors [Sun, 25 Jul 2021 01:47:43 +0000 (01:47 +0000)]
Auto merge of #87331 - camelid:summary-escaping, r=GuillaumeGomez

Escape item search summaries

I noticed that `Pin::new()`'s search summary looked off, and I realized
that the reason is that it has inline code containing `Pin<P>`, which is
not escaped and thus renders as a paragraph tag!

2 years agoFlatten nested `format!` calls
Noah Lev [Sun, 25 Jul 2021 00:24:13 +0000 (17:24 -0700)]
Flatten nested `format!` calls

2 years agoEscape item search summaries
Noah Lev [Mon, 5 Jul 2021 02:22:24 +0000 (19:22 -0700)]
Escape item search summaries

I noticed that `Pin::new()`'s search summary looked off, and I realized
that the reason is that it has inline code containing `Pin<P>`, which is
not escaped and thus renders as a paragraph tag!

2 years agoAuto merge of #84111 - bstrie:hashfrom, r=joshtriplett
bors [Sat, 24 Jul 2021 22:31:14 +0000 (22:31 +0000)]
Auto merge of #84111 - bstrie:hashfrom, r=joshtriplett

Stabilize `impl From<[(K, V); N]> for HashMap` (and friends)

In addition to allowing HashMap to participate in Into/From conversion, this adds the long-requested ability to use constructor-like syntax for initializing a HashMap:
```rust
let map = HashMap::from([
    (1, 2),
    (3, 4),
    (5, 6)
]);
```
This addition is highly motivated by existing precedence, e.g. it is already possible to similarly construct a Vec from a fixed-size array:
```rust
let vec = Vec::from([1, 2, 3]);
```
...and it is already possible to collect a Vec of tuples into a HashMap (and vice-versa):
```rust
let vec = Vec::from([(1, 2)]);
let map: HashMap<_, _> = vec.into_iter().collect();
let vec: Vec<(_, _)> = map.into_iter().collect();
```
...and of course it is likewise possible to collect a fixed-size array of tuples into a HashMap ([but not vice-versa just yet](https://github.com/rust-lang/rust/issues/81615)):
```rust
let arr = [(1, 2)];
let map: HashMap<_, _> = std::array::IntoIter::new(arr).collect();
```
Therefore this addition seems like a no-brainer.

As for any impl, this would be insta-stable.

2 years agoFix my email in .mailmap
Nika Layzell [Sat, 24 Jul 2021 22:06:05 +0000 (18:06 -0400)]
Fix my email in .mailmap

2 years agoAuto merge of #86580 - BoxyUwU:cgd-subst-ice, r=nikomatsakis
bors [Sat, 24 Jul 2021 20:01:51 +0000 (20:01 +0000)]
Auto merge of #86580 - BoxyUwU:cgd-subst-ice, r=nikomatsakis

dont provide fwd declared params to cg defaults

Fixes #83938

```rust
#![feature(const_evaluatable_checked, const_generics, const_generics_defaults)]
#![allow(incomplete_features)]

pub struct Bar<const N: usize, const M: usize = { N + 1 }>;
pub fn foo<const N1: usize>() -> Bar<N1> { loop {} }

fn main() {}
```
This PR makes this code no longer ICE, it was ICE'ing previously because when building substs for `Bar<N1>` we would subst the anon ct: `ConstKind::Unevaluated({N + 1}, substs: [N, M])` with substs of `[N1]`. the anon const has forward declared params supplied though so we end up trying to substitute the provided `M` param which causes the ICE.

This PR doesn't handle the predicates of the const so
```rust
trait Foo<const N: usize> { const Assoc: usize; }
pub struct Bar<const N: usize = { <()>::Assoc }> where (): Foo<N>;
```
Resolves to `<() as Foo<N>>::Assoc` which can allow for using fwd declared params indirectly.

```rust
trait Foo<const N: usize> {}
struct Bar<const N: usize = { 2 + 3 }> where (): Foo<N>;
```
This code also ICEs under this PR because instantiating the default's predicates causes an ICE as predicates_of contains predicates with fwd declared params

PR was briefly discussed [in this zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580)

2 years agoFix doc typo
ThibsG [Sat, 24 Jul 2021 18:49:20 +0000 (20:49 +0200)]
Fix doc typo

2 years agoUpdate std_collections_from_array stability version
bstrie [Sat, 24 Jul 2021 18:04:51 +0000 (14:04 -0400)]
Update std_collections_from_array stability version

2 years agofix code to suggest `;` on parse error
Elliot Bobrow [Sat, 24 Jul 2021 17:58:55 +0000 (10:58 -0700)]
fix code to suggest `;` on parse error

2 years agoAuto merge of #87434 - Manishearth:rollup-b09njin, r=Manishearth
bors [Sat, 24 Jul 2021 17:17:39 +0000 (17:17 +0000)]
Auto merge of #87434 - Manishearth:rollup-b09njin, r=Manishearth

Rollup of 9 pull requests

Successful merges:

 - #87348 (Fix span when suggesting to add an associated type bound)
 - #87359 (Remove detection of rustup and cargo in 'missing extern crate' diagnostics)
 - #87370 (Add support for powerpc-unknown-freebsd)
 - #87389 (Rename `known_attrs` to `expanded_inert_attrs` and move to rustc_expand)
 - #87395 (Clear up std::env::set_var panic section.)
 - #87403 (Implement `AssignToDroppingUnionField` in THIR unsafeck)
 - #87410 (Mark `format_args_nl` as `#[doc(hidden)]`)
 - #87419 (IEEE 754 is not an RFC)
 - #87422 (DOC: remove unnecessary feature crate attribute from example code)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoRollup merge of #87422 - mgeier:doc-strip-feature-attribute, r=LeSeulArtichaut
Manish Goregaokar [Sat, 24 Jul 2021 16:52:04 +0000 (09:52 -0700)]
Rollup merge of #87422 - mgeier:doc-strip-feature-attribute, r=LeSeulArtichaut

DOC: remove unnecessary feature crate attribute from example code

I'm not sure whether I fully understand the stabilization process (I most likely don't), but I think this attribute isn't necessary here, right?

This was recently stabilized in #86344.

2 years agoRollup merge of #87419 - programmerjake:patch-1, r=nagisa
Manish Goregaokar [Sat, 24 Jul 2021 16:52:03 +0000 (09:52 -0700)]
Rollup merge of #87419 - programmerjake:patch-1, r=nagisa

IEEE 754 is not an RFC

If there were something between `IEEE` and `754`, it would be `STD`: [`IEEE STD 754-2019`](https://doi.org/10.1109%2FIEEESTD.2019.8766229)

2 years agoRollup merge of #87410 - jonas-schievink:doc-hidden-format_args_nl, r=nagisa
Manish Goregaokar [Sat, 24 Jul 2021 16:52:02 +0000 (09:52 -0700)]
Rollup merge of #87410 - jonas-schievink:doc-hidden-format_args_nl, r=nagisa

Mark `format_args_nl` as `#[doc(hidden)]`

It's described as being internal-only and has no tracking issue, so hide it from public docs.

2 years agoRollup merge of #87403 - LeSeulArtichaut:assign-dropping-union, r=oli-obk
Manish Goregaokar [Sat, 24 Jul 2021 16:52:01 +0000 (09:52 -0700)]
Rollup merge of #87403 - LeSeulArtichaut:assign-dropping-union, r=oli-obk

Implement `AssignToDroppingUnionField` in THIR unsafeck

r? ``@oli-obk`` cc rust-lang/project-thir-unsafeck#7

2 years agoRollup merge of #87395 - ericonr:patch-1, r=joshtriplett
Manish Goregaokar [Sat, 24 Jul 2021 16:52:00 +0000 (09:52 -0700)]
Rollup merge of #87395 - ericonr:patch-1, r=joshtriplett

Clear up std::env::set_var panic section.

The "K" parameter was being referred to as "key", which wasn't
introduced anywhere.

2 years agoRollup merge of #87389 - Aaron1011:expand-known-attrs, r=wesleywiser
Manish Goregaokar [Sat, 24 Jul 2021 16:51:59 +0000 (09:51 -0700)]
Rollup merge of #87389 - Aaron1011:expand-known-attrs, r=wesleywiser

Rename `known_attrs` to `expanded_inert_attrs` and move to rustc_expand

There's no need for this to be (untracked) global state.

2 years agoRollup merge of #87370 - pkubaj:master, r=oli-obk
Manish Goregaokar [Sat, 24 Jul 2021 16:51:58 +0000 (09:51 -0700)]
Rollup merge of #87370 - pkubaj:master, r=oli-obk

Add support for powerpc-unknown-freebsd

- A tier 3 target must have a designated developer or developers (the "target maintainers") on record to be CCed when issues arise regarding the target. (The mechanism to track and CC such developers may evolve over time.)
For all Rust targets on FreeBSD, it's rust@FreeBSD.org.

- Targets must use naming consistent with any existing targets; for instance, a target for the same CPU or OS as an existing Rust target should use the same name for that CPU or OS. Targets should normally use the same names and naming conventions as used elsewhere in the broader ecosystem beyond Rust (such as in other toolchains), unless they have a very good reason to diverge. Changing the name of a target can be highly disruptive, especially once the target reaches a higher tier, so getting the name right is important even for a tier 3 target.
Done.

- Target names should not introduce undue confusion or ambiguity unless absolutely necessary to maintain ecosystem compatibility. For example, if the name of the target makes people extremely likely to form incorrect beliefs about what it targets, the name should be changed or augmented to disambiguate it.
Done

- Tier 3 targets may have unusual requirements to build or use, but must not create legal issues or impose onerous legal terms for the Rust project or for Rust developers or users.
Done.

- The target must not introduce license incompatibilities.
Done.

- Anything added to the Rust repository must be under the standard Rust license (MIT OR Apache-2.0).
Fine with me.

- The target must not cause the Rust tools or libraries built for any other host (even when supporting cross-compilation to the target) to depend on any new dependency less permissive than the Rust licensing policy. This applies whether the dependency is a Rust crate that would require adding new license exceptions (as specified by the tidy tool in the rust-lang/rust repository), or whether the dependency is a native library or binary. In other words, the introduction of the target must not cause a user installing or running a version of Rust or the Rust tools to be subject to any new license requirements.
Done.

- If the target supports building host tools (such as rustc or cargo), those host tools must not depend on proprietary (non-FOSS) libraries, other than ordinary runtime libraries supplied by the platform and commonly used by other binaries built for the target. For instance, rustc built for the target may depend on a common proprietary C runtime library or console output library, but must not depend on a proprietary code generation library or code optimization library. Rust's license permits such combinations, but the Rust project has no interest in maintaining such combinations within the scope of Rust itself, even at tier 3.
Done.

- Targets should not require proprietary (non-FOSS) components to link a functional binary or library.
Done.

- "onerous" here is an intentionally subjective term. At a minimum, "onerous" legal/licensing terms include but are not limited to: non-disclosure requirements, non-compete requirements, contributor license agreements (CLAs) or equivalent, "non-commercial"/"research-only"/etc terms, requirements conditional on the employer or employment of any particular Rust developers, revocable terms, any requirements that create liability for the Rust project or its developers or users, or any requirements that adversely affect the livelihood or prospects of the Rust project or its developers or users.
Fine with me.

- Neither this policy nor any decisions made regarding targets shall create any binding agreement or estoppel by any party. If any member of an approving Rust team serves as one of the maintainers of a target, or has any legal or employment requirement (explicit or implicit) that might affect their decisions regarding a target, they must recuse themselves from any approval decisions regarding the target's tier status, though they may otherwise participate in discussions.
Ok.

- This requirement does not prevent part or all of this policy from being cited in an explicit contract or work agreement (e.g. to implement or maintain support for a target). This requirement exists to ensure that a developer or team responsible for reviewing and approving a target does not face any legal threats or obligations that would prevent them from freely exercising their judgment in such approval, even if such judgment involves subjective matters or goes beyond the letter of these requirements.
Ok.

- Tier 3 targets should attempt to implement as much of the standard libraries as possible and appropriate (core for most targets, alloc for targets that can support dynamic memory allocation, std for targets with an operating system or equivalent layer of system-provided functionality), but may leave some code unimplemented (either unavailable or stubbed out as appropriate), whether because the target makes it impossible to implement or challenging to implement. The authors of pull requests are not obligated to avoid calling any portions of the standard library on the basis of a tier 3 target not implementing those portions.
std is implemented.

- The target must provide documentation for the Rust community explaining how to build for the target, using cross-compilation if possible. If the target supports running tests (even if they do not pass), the documentation must explain how to run tests for the target, using emulation if possible or dedicated hardware if necessary.
Hm, building is possible the same way as other Rust on FreeBSD targets.

- Tier 3 targets must not impose burden on the authors of pull requests, or other developers in the community, to maintain the target. In particular, do not post comments (automated or manual) on a PR that derail or suggest a block on the PR based on a tier 3 target. Do not send automated messages or notifications (via any medium, including via `@)` to a PR author or others involved with a PR regarding a tier 3 target, unless they have opted into such messages.
Ok.

- Backlinks such as those generated by the issue/PR tracker when linking to an issue or PR are not considered a violation of this policy, within reason. However, such messages (even on a separate repository) must not generate notifications to anyone involved with a PR who has not requested such notifications.
Ok.

- Patches adding or updating tier 3 targets must not break any existing tier 2 or tier 1 target, and must not knowingly break another tier 3 target without approval of either the compiler team or the maintainers of the other tier 3 target.
Ok.

- In particular, this may come up when working on closely related targets, such as variations of the same architecture with different features. Avoid introducing unconditional uses of features that another variation of the target may not have; use conditional compilation or runtime detection, as appropriate, to let each target run code supported by that target.
Ok.

2 years agoRollup merge of #87359 - jyn514:bless-rustup, r=estebank
Manish Goregaokar [Sat, 24 Jul 2021 16:51:57 +0000 (09:51 -0700)]
Rollup merge of #87359 - jyn514:bless-rustup, r=estebank

Remove detection of rustup and cargo in 'missing extern crate' diagnostics

Previously, this would change the test output when RUSTUP_HOME was set:

```
---- [ui] ui/issues/issue-49851/compiler-builtins-error.rs stdout ----
diff of stderr:

1       error[E0463]: can't find crate for `core`
2          |
3          = note: the `thumbv7em-none-eabihf` target may not be installed
+          = help: consider downloading the target with `rustup target add thumbv7em-none-eabihf`
4
5       error: aborting due to previous error
6
```

Originally, I fixed it by explicitly unsetting RUSTUP_HOME in
compiletest. Then I realized that almost no one has RUSTUP_HOME set,
since rustup doesn't set it itself. It does set RUST_RECURSION_COUNT
whenever it launches a proxy, though - use that instead.

r? ```@estebank``` cc ```@petrochenkov``` ```@kinnison```

2 years agoRollup merge of #87348 - SkiFire13:fix-87261, r=oli-obk
Manish Goregaokar [Sat, 24 Jul 2021 16:51:56 +0000 (09:51 -0700)]
Rollup merge of #87348 - SkiFire13:fix-87261, r=oli-obk

Fix span when suggesting to add an associated type bound

Fixes #87261

Note that this fix is not perfect, it ~~will still give incorrect~~ won't give suggestions in some situations:
- If the associated type is defined on a supertrait of those contained in the opaque type, it will fallback to the previous behaviour, e.g. if `AssocTy` is defined on the trait `Foo`, `Bar` has `Foo` as supertrait and the opaque type is a `impl Bar + Baz`.
- If the the associated type is defined on a generic trait and the opaque type includes two versions of that generic trait, e.g. the opaque type is `impl Foo<A> + Foo<B>`

2 years agoDisplay an extra note for trailing semicolon lint with trailing macro
Aaron Hill [Thu, 22 Jul 2021 16:24:42 +0000 (11:24 -0500)]
Display an extra note for trailing semicolon lint with trailing macro

Currently, we parse macros at the end of a block
(e.g. `fn foo() { my_macro!() }`) as expressions, rather than
statements. This means that a macro invoked in this position
cannot expand to items or semicolon-terminated expressions.

In the future, we might want to start parsing these kinds of macros
as statements. This would make expansion more 'token-based'
(i.e. macro expansion behaves (almost) as if you just textually
replaced the macro invocation with its output). However,
this is a breaking change (see PR #78991), so it will require
further discussion.

Since the current behavior will not be changing any time soon,
we need to address the interaction with the
`SEMICOLON_IN_EXPRESSIONS_FROM_MACROS` lint. Since we are parsing
the result of macro expansion as an expression, we will emit a lint
if there's a trailing semicolon in the macro output. However, this
results in a somewhat confusing message for users, since it visually
looks like there should be no problem with having a semicolon
at the end of a block
(e.g. `fn foo() { my_macro!() }` => `fn foo() { produced_expr; }`)

To help reduce confusion, this commit adds a note explaining
that the macro is being interpreted as an expression. Additionally,
we suggest adding a semicolon after the macro *invocation* - this
will cause us to parse the macro call as a statement. We do *not*
use a structured suggestion for this, since the user may actually
want to remove the semicolon from the macro definition (allowing
the block to evaluate to the expression produced by the macro).

2 years agochange doc comment
Ellen [Sat, 24 Jul 2021 16:32:02 +0000 (17:32 +0100)]
change doc comment

2 years agonetbsd enabled ucred
David Carlier [Sat, 24 Jul 2021 15:02:35 +0000 (16:02 +0100)]
netbsd enabled ucred

2 years agoAuto merge of #87296 - Aaron1011:inert-warn, r=petrochenkov
bors [Sat, 24 Jul 2021 13:19:17 +0000 (13:19 +0000)]
Auto merge of #87296 - Aaron1011:inert-warn, r=petrochenkov

Warn on inert attributes used on bang macro invocation

These attributes are currently discarded.
This may change in the future (see #63221), but for now,
placing inert attributes on a macro invocation does nothing,
so we should warn users about it.

Technically, it's possible for there to be attribute macro
on the same macro invocation (or at a higher scope), which
inspects the inert attribute. For example:

```rust
#[look_for_inline_attr]
#[inline]
my_macro!()

#[look_for_nested_inline]
mod foo { #[inline] my_macro!() }
```

However, this would be a very strange thing to do.
Anyone running into this can manually suppress the warning.

2 years agorename Validator → Checker
Ralf Jung [Sat, 24 Jul 2021 11:27:17 +0000 (13:27 +0200)]
rename Validator → Checker

2 years agorename const checking visitor module to check_consts::check
Ralf Jung [Sat, 24 Jul 2021 11:16:59 +0000 (13:16 +0200)]
rename const checking visitor module to check_consts::check

2 years agoAuto merge of #86461 - crlf0710:rich_vtable, r=nikomatsakis
bors [Sat, 24 Jul 2021 10:21:23 +0000 (10:21 +0000)]
Auto merge of #86461 - crlf0710:rich_vtable, r=nikomatsakis

Refactor vtable format for upcoming trait_upcasting feature.

This modifies vtable format:
1. reordering occurrence order of methods coming from different traits
2. include `VPtr`s for supertraits where this vtable cannot be directly reused during trait upcasting.
Also, during codegen, the vtables corresponding to these newly included `VPtr` will be requested and generated.

For the cases where this vtable can directly used, now the super trait vtable has exactly the same content to some prefix of this one.

r? `@bjorn3`
cc `@RalfJung`
cc `@rust-lang/wg-traits`

2 years agoDOC: remove unnecessary feature crate attribute from example code
Matthias Geier [Sat, 24 Jul 2021 09:27:42 +0000 (11:27 +0200)]
DOC: remove unnecessary feature crate attribute from example code

2 years agoAuto merge of #84589 - In-line:zircon-thread-name, r=JohnTitor
bors [Sat, 24 Jul 2021 07:40:34 +0000 (07:40 +0000)]
Auto merge of #84589 - In-line:zircon-thread-name, r=JohnTitor

Implement setting thread name for Fuchsia

2 years agoAuto merge of #87415 - Mark-Simulacrum:bump-version, r=Mark-Simulacrum
bors [Sat, 24 Jul 2021 04:59:29 +0000 (04:59 +0000)]
Auto merge of #87415 - Mark-Simulacrum:bump-version, r=Mark-Simulacrum

Bump to 1.56

r? `@pietroalbini`

2 years agoAuto merge of #87338 - SparrowLii:MaybeTrait, r=wesleywiser
bors [Sat, 24 Jul 2021 02:30:35 +0000 (02:30 +0000)]
Auto merge of #87338 - SparrowLii:MaybeTrait, r=wesleywiser

Simplify the collecting of `? Trait` bounds in where clause

This PR fixes the FIXME about using less rightward drift and only one error reporting when collecting of `?Trait` bounds in where clause.
Checking whether the path length of `bound_ty` is 1 can be replaced by whether `unresolved_segments` in the partial_res is 0.
Checking whether the `param.kind` is `Type{...}` can also be omitted. One Fx hash calculation will be done for Const or Lifetime param, but the impact on efficiency should be small IMO

2 years agoRemove detection of rustup and cargo in 'missing extern crate' diagnostics
Joshua Nelson [Thu, 22 Jul 2021 02:04:05 +0000 (02:04 +0000)]
Remove detection of rustup and cargo in 'missing extern crate' diagnostics

Previously, this would change the test output when RUSTUP_HOME was set:

```
---- [ui] ui/issues/issue-49851/compiler-builtins-error.rs stdout ----
diff of stderr:

1       error[E0463]: can't find crate for `core`
2          |
3          = note: the `thumbv7em-none-eabihf` target may not be installed
+          = help: consider downloading the target with `rustup target add thumbv7em-none-eabihf`
4
5       error: aborting due to previous error
6
```

Originally, I fixed it by explicitly unsetting RUSTUP_HOME in
compiletest. Then I realized that almost no one has RUSTUP_HOME set,
since rustup doesn't set it itself; although it does set RUST_RECURSION_COUNT
whenever it launches a proxy. Then it was pointed out that this runtime
check doesn't really make sense and it's fine to make it unconditional.

2 years agoIEEE 754 is not an RFC
Jacob Lifshay [Sat, 24 Jul 2021 00:35:18 +0000 (17:35 -0700)]
IEEE 754 is not an RFC

2 years agoAuto merge of #86429 - JohnTitor:get-by-key-enum-part-2, r=oli-obk
bors [Fri, 23 Jul 2021 23:17:38 +0000 (23:17 +0000)]
Auto merge of #86429 - JohnTitor:get-by-key-enum-part-2, r=oli-obk

Improve `get_by_key_enumerated` more

Follow-up of #86392, this applies the suggestions by `@m-ou-se.`

r? `@m-ou-se`

2 years agoRename `known_attrs` to `expanded_inert_attrs` and move to rustc_expand
Aaron Hill [Thu, 22 Jul 2021 22:40:01 +0000 (17:40 -0500)]
Rename `known_attrs` to `expanded_inert_attrs` and move to rustc_expand

There's no need for this to be (untracked) global state.

2 years agoBump to 1.56
Mark Rousskov [Fri, 23 Jul 2021 21:04:59 +0000 (17:04 -0400)]
Bump to 1.56

2 years agoAuto merge of #87413 - JohnTitor:rollup-dht22jk, r=JohnTitor
bors [Fri, 23 Jul 2021 20:26:33 +0000 (20:26 +0000)]
Auto merge of #87413 - JohnTitor:rollup-dht22jk, r=JohnTitor

Rollup of 14 pull requests

Successful merges:

 - #86410 (VecMap::get_value_matching should return just one element)
 - #86790 (Document iteration order of `retain` functions)
 - #87171 (Remove Option from BufWriter)
 - #87175 (Stabilize `into_parts()` and `into_error()`)
 - #87185 (Fix panics on Windows when the build was cancelled)
 - #87191 (Package LLVM libs for the target rather than the build host)
 - #87255 (better support for running libcore tests with Miri)
 - #87266 (Add testcase for 87076)
 - #87283 (Add `--codegen-backends=foo,bar` configure flag)
 - #87322 (fix: clarify suggestion that `&T` must refer to `T: Sync` for `&T: Send`)
 - #87358 (Fix `--dry-run` when download-ci-llvm is set)
 - #87380 (Don't default to `submodules = true` unless the rust repo has a .git directory)
 - #87398 (Add test for fonts used for module items)
 - #87412 (Add missing article)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoFix parameter names in std::env documentation.
Érico Nogueira Rolim [Fri, 23 Jul 2021 05:32:55 +0000 (02:32 -0300)]
Fix parameter names in std::env documentation.

The function parameters were renamed, but the documentation wasn't.

2 years agoRollup merge of #87412 - r00ster91:patch-13, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:15 +0000 (04:31 +0900)]
Rollup merge of #87412 - r00ster91:patch-13, r=Mark-Simulacrum

Add missing article

Redo of #87305. I messed up in that PR and wasn't sure how to fix it.

2 years agoRollup merge of #87398 - GuillaumeGomez:test-font-module-items, r=notriddle
Yuki Okushi [Fri, 23 Jul 2021 19:31:14 +0000 (04:31 +0900)]
Rollup merge of #87398 - GuillaumeGomez:test-font-module-items, r=notriddle

Add test for fonts used for module items

Fixes #85632.

r? `@notriddle`

2 years agoRollup merge of #87380 - jyn514:smarter-submodule-defaults, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:13 +0000 (04:31 +0900)]
Rollup merge of #87380 - jyn514:smarter-submodule-defaults, r=Mark-Simulacrum

Don't default to `submodules = true` unless the rust repo has a .git directory

Should hopefully fix https://github.com/rust-lang/rust/pull/82653#issuecomment-885093033 - `@semarie` can you confirm?

r? `@Mark-Simulacrum`

2 years agoRollup merge of #87358 - jyn514:dry-run, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:12 +0000 (04:31 +0900)]
Rollup merge of #87358 - jyn514:dry-run, r=Mark-Simulacrum

Fix `--dry-run` when download-ci-llvm is set

Previously it would error out:

```
$ x check --dry-run
thread 'main' panicked at 'std::fs::read_to_string(ci_llvm.join("link-type.txt")) failed with No such file or directory (os error 2) ("CI llvm missing: /home/joshua/rustc3/build/tmp-dry-run/x86_64-unknown-linux-gnu/ci-llvm")', src/bootstrap/config.rs:795:33
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Build completed unsuccessfully in 0:00:10
```

2 years agoRollup merge of #87322 - chazkiker2:fix/suggestion-ref-sync-send, r=estebank
Yuki Okushi [Fri, 23 Jul 2021 19:31:11 +0000 (04:31 +0900)]
Rollup merge of #87322 - chazkiker2:fix/suggestion-ref-sync-send, r=estebank

fix: clarify suggestion that `&T` must refer to `T: Sync` for `&T: Send`

### Description

- [x] fix #86507
- [x] add UI test for relevant code from issue
- [x] change `rustc_trait_selection/src/traits/error_reporting/suggestions.rs` to include a more clear suggestion when `&T` fails to satisfy `Send` bounds due to the fact that `T` fails to implement `Sync`
- [x] update UI test in Clippy: `src/tools/tests/ui/future_not_send.stderr`

2 years agoRollup merge of #87283 - pietroalbini:configure-codegen-backends, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:10 +0000 (04:31 +0900)]
Rollup merge of #87283 - pietroalbini:configure-codegen-backends, r=Mark-Simulacrum

Add `--codegen-backends=foo,bar` configure flag

Unfortunately this requires a proper `./configure` flag, as the codegen backends config entry is a list, not a string (breaking `--set`).

2 years agoRollup merge of #87266 - hellow554:issue87076, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:09 +0000 (04:31 +0900)]
Rollup merge of #87266 - hellow554:issue87076, r=Mark-Simulacrum

Add testcase for 87076

Closes #87076

I also moved the issue tests into the issues subfolder, nothing changed there.

2 years agoRollup merge of #87255 - RalfJung:miri-test-libcore, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:07 +0000 (04:31 +0900)]
Rollup merge of #87255 - RalfJung:miri-test-libcore, r=Mark-Simulacrum

better support for running libcore tests with Miri

See https://github.com/rust-lang/miri-test-libstd/issues/4 for a description of the problem that this fixes.
Thanks to `@hyd-dev` for suggesting this patch!

2 years agoRollup merge of #87191 - adamgemmell:dev/llvm-lib-package, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:06 +0000 (04:31 +0900)]
Rollup merge of #87191 - adamgemmell:dev/llvm-lib-package, r=Mark-Simulacrum

Package LLVM libs for the target rather than the build host

Fixes https://github.com/rust-lang/rust/issues/85250

`dist.rs` uses, in the `rust-dev` stage, `llvm-config --libfiles` to get a list of the LLVM library files built but of course only for the build host. If the target differs we want to package lib files from the target's build tree instead. This is done by splitting/rejoining the paths on their build directories.

At the moment `tree` on the LLVM build directories seems to give almost identical output, but of course this might not be the case in the future. If a file is missing in the target's build tree then this stage will error in the `builder.install()` call. If the target build tree has an extra file then it silently won't be copied and we'll get a linker error when building using this artifact (via `download-ci-llvm = "if-available"`), though we would have received a linker error anyway without this change.

There was also a typo in the example config around this option.

2 years agoRollup merge of #87185 - waterlens:issue-86499-fix, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:05 +0000 (04:31 +0900)]
Rollup merge of #87185 - waterlens:issue-86499-fix, r=Mark-Simulacrum

Fix panics on Windows when the build was cancelled

Fixes #86499

cc `@jyn514`

2 years agoRollup merge of #87175 - inquisitivecrystal:inner-error, r=kennytm
Yuki Okushi [Fri, 23 Jul 2021 19:31:04 +0000 (04:31 +0900)]
Rollup merge of #87175 - inquisitivecrystal:inner-error, r=kennytm

Stabilize `into_parts()` and `into_error()`

This stabilizes `IntoInnerError`'s `into_parts()` and `into_error()` methods, currently gated behind the `io_into_inner_error_parts` feature. The FCP has [already completed.](https://github.com/rust-lang/rust/issues/79704#issuecomment-880652967)

Closes #79704.

2 years agoRollup merge of #87171 - Alexendoo:bufwriter-option, r=Mark-Simulacrum
Yuki Okushi [Fri, 23 Jul 2021 19:31:03 +0000 (04:31 +0900)]
Rollup merge of #87171 - Alexendoo:bufwriter-option, r=Mark-Simulacrum

Remove Option from BufWriter

Fixes #72925

2 years agoRollup merge of #86790 - janikrabe:retain-iter-order-doc, r=m-ou-se
Yuki Okushi [Fri, 23 Jul 2021 19:30:56 +0000 (04:30 +0900)]
Rollup merge of #86790 - janikrabe:retain-iter-order-doc, r=m-ou-se

Document iteration order of `retain` functions

For `HashSet` and `HashMap`, this simply copies the comment from
`BinaryHeap::retain`.

For `BTreeSet` and `BTreeMap`, this adds an additional guarantee that
wasn't previously documented. I think that because these data structures
are inherently ordered and other functions guarantee ordered iteration,
it makes sense to provide this guarantee for `retain` as well.

2 years agoRollup merge of #86410 - spastorino:get_value_matching, r=oli-obk
Yuki Okushi [Fri, 23 Jul 2021 19:30:56 +0000 (04:30 +0900)]
Rollup merge of #86410 - spastorino:get_value_matching, r=oli-obk

VecMap::get_value_matching should return just one element

r? `@nikomatsakis`

Related to #86465 and #87287

2 years agoAdd `#[unstable]` on new functions
Benoît du Garreau [Thu, 8 Jul 2021 14:14:13 +0000 (16:14 +0200)]
Add `#[unstable]` on new functions

2 years agoAdd unstable attribute for `A` in `Drain` and `IntoIter`
Benoît du Garreau [Sun, 27 Jun 2021 22:22:52 +0000 (00:22 +0200)]
Add unstable attribute for `A` in `Drain` and `IntoIter`

2 years agoAdd support for custom allocator in `VecDeque`
Benoît du Garreau [Thu, 24 Jun 2021 12:44:09 +0000 (14:44 +0200)]
Add support for custom allocator in `VecDeque`

2 years agoupdate clippy ui test 'future_not_send.stderr' to match
chaz-kiker [Fri, 23 Jul 2021 17:30:52 +0000 (12:30 -0500)]
update clippy ui test 'future_not_send.stderr' to match
the new diagnostic messages

2 years agoAuto merge of #87345 - Xanewok:update-rls, r=Mark-Simulacrum
bors [Fri, 23 Jul 2021 17:40:13 +0000 (17:40 +0000)]
Auto merge of #87345 - Xanewok:update-rls, r=Mark-Simulacrum

Unbreak and update RLS

Closes #86905
Closes #86606
Closes #86607

This also prunes old mio 0.6 thanks to Tokio 1.0 bump, so this should now build on aarch64 Windows.

r? `@Mark-Simulacrum`

2 years agoMark `format_args_nl` as `#[doc(hidden)]`
Jonas Schievink [Fri, 23 Jul 2021 17:04:07 +0000 (19:04 +0200)]
Mark `format_args_nl` as `#[doc(hidden)]`

2 years agoAdd missing article
r00ster [Fri, 23 Jul 2021 17:02:52 +0000 (19:02 +0200)]
Add missing article

2 years agoImplement `AssignToDroppingUnionField` in THIR unsafeck
LeSeulArtichaut [Fri, 23 Jul 2021 13:26:12 +0000 (15:26 +0200)]
Implement `AssignToDroppingUnionField` in THIR unsafeck

2 years agoAuto merge of #87400 - JohnTitor:rollup-zbwyuxi, r=JohnTitor
bors [Fri, 23 Jul 2021 12:33:58 +0000 (12:33 +0000)]
Auto merge of #87400 - JohnTitor:rollup-zbwyuxi, r=JohnTitor

Rollup of 8 pull requests

Successful merges:

 - #87034 (DOC: fix hypothetical Rust code in `step_by()` docstring)
 - #87298 (memorialize Anna Harren in the bastion of the turbofish)
 - #87332 (Don't hide fields of enum struct variants)
 - #87362 (Make `x.py d` an alias for `x.py doc`)
 - #87372 (Move calls to test_main into one function)
 - #87373 (Extend HIR WF checking to fields)
 - #87376 (Change rustdoc logo to use the full container size)
 - #87383 (Add regression tests for the impl_trait_in_bindings ICEs)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoAdd missing winapi feature to workspace hack
Mark Rousskov [Fri, 23 Jul 2021 12:15:40 +0000 (08:15 -0400)]
Add missing winapi feature to workspace hack

2 years agoAdd ConstraintLocator docs
Santiago Pastorino [Thu, 22 Jul 2021 21:24:20 +0000 (18:24 -0300)]
Add ConstraintLocator docs

2 years agoAdd VecMap::get_value_matching and assert if > 1 element
Santiago Pastorino [Thu, 17 Jun 2021 19:59:00 +0000 (16:59 -0300)]
Add VecMap::get_value_matching and assert if > 1 element

Otherwise is a bug that we want to uncover.

2 years agoRollup merge of #87383 - Alexendoo:impl_trait_in_bindings-tests, r=oli-obk
Yuki Okushi [Fri, 23 Jul 2021 10:27:51 +0000 (19:27 +0900)]
Rollup merge of #87383 - Alexendoo:impl_trait_in_bindings-tests, r=oli-obk

Add regression tests for the impl_trait_in_bindings ICEs

Closes #54600, closes #54840, closes #58504, closes #58956, closes #70971, closes #79099, closes #84919, closes #86201, closes #86642, closes #87295

r? ``@oli-obk``

2 years agoRollup merge of #87376 - Thomasdezeeuw:rustdoc-large-logo, r=GuillaumeGomez
Yuki Okushi [Fri, 23 Jul 2021 10:27:49 +0000 (19:27 +0900)]
Rollup merge of #87376 - Thomasdezeeuw:rustdoc-large-logo, r=GuillaumeGomez

Change rustdoc logo to use the full container size

We have a logo in svg that scales nicely to large sizes, but by default
is only 5px large, i.e. very small. With the change the logo expands to
the full size. By only setting the height to 100% we ensure that the
width-height ratio isn't changed.

2 years agoRollup merge of #87373 - Aaron1011:hir-wf-field, r=estebank
Yuki Okushi [Fri, 23 Jul 2021 10:27:48 +0000 (19:27 +0900)]
Rollup merge of #87373 - Aaron1011:hir-wf-field, r=estebank

Extend HIR WF checking to fields

r? ``@estebank``

2 years agoRollup merge of #87372 - GuillaumeGomez:move-test_main-calls, r=jyn514
Yuki Okushi [Fri, 23 Jul 2021 10:27:47 +0000 (19:27 +0900)]
Rollup merge of #87372 - GuillaumeGomez:move-test_main-calls, r=jyn514

Move calls to test_main into one function

Fixes #86254.

cc ``@jyn514``
r? ``@camelid``

2 years agoRollup merge of #87362 - inquisitivecrystal:bootstrap-doc, r=jyn514
Yuki Okushi [Fri, 23 Jul 2021 10:27:46 +0000 (19:27 +0900)]
Rollup merge of #87362 - inquisitivecrystal:bootstrap-doc, r=jyn514

Make `x.py d` an alias for `x.py doc`

In rust-lang/cargo#9680, `d` was added to Cargo as an alias for `doc`. This PR adds the same alias to `x.py`. The same considerations of convenience that applied to Cargo also apply to `x.py`, and in any case, the two should be kept symmetrical.

2 years agoRollup merge of #87332 - camelid:dont-hide-fields, r=GuillaumeGomez
Yuki Okushi [Fri, 23 Jul 2021 10:27:45 +0000 (19:27 +0900)]
Rollup merge of #87332 - camelid:dont-hide-fields, r=GuillaumeGomez

Don't hide fields of enum struct variants

* The toggle adds visual clutter
* It's easy to miss that there are fields
* Tuple variant fields are always shown, so it is inconsistent to hide
  struct variant fields
* It's annoying to have to click the toggle every time

2 years agoRollup merge of #87298 - boringcactus:patch-2, r=steveklabnik
Yuki Okushi [Fri, 23 Jul 2021 10:27:44 +0000 (19:27 +0900)]
Rollup merge of #87298 - boringcactus:patch-2, r=steveklabnik

memorialize Anna Harren in the bastion of the turbofish

this seems fitting, at least to me.

2 years agoRollup merge of #87034 - mgeier:doc-step_by, r=JohnTitor
Yuki Okushi [Fri, 23 Jul 2021 10:27:43 +0000 (19:27 +0900)]
Rollup merge of #87034 - mgeier:doc-step_by, r=JohnTitor

DOC: fix hypothetical Rust code in `step_by()` docstring

I don't know how important that is, but if I'm not mistaken, the hypothetical code in the docstring of `step_by()` (see https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.step_by) isn't correct.

I guess writing `next()` instead of `self.next()` isn't a biggie, but this would also imply that `advance_n_and_return_first()` is a method, which AFAICT it isn't.

I've also done some re-formatting in a separate commit and a parameter renaming in yet another commit.

Feel free to take or leave any combination of those commits.