]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoRollup merge of #88973 - lu-zero:std_detect-env_override, r=Amanieu
Manish Goregaokar [Sun, 26 Sep 2021 01:22:18 +0000 (18:22 -0700)]
Rollup merge of #88973 - lu-zero:std_detect-env_override, r=Amanieu

Expose the std_detect env_override feature

2 years agoRollup merge of #88895 - camelid:cleanup-pt2, r=jyn514
Manish Goregaokar [Sun, 26 Sep 2021 01:22:17 +0000 (18:22 -0700)]
Rollup merge of #88895 - camelid:cleanup-pt2, r=jyn514

rustdoc: Cleanup `clean` part 2

Split out from #88379. This contains the following commits from that PR:

- Remove `Type::ResolvedPath.is_generic`
- Rename `is_generic()` to `is_assoc_ty()`

r? `@jyn514`

2 years agoTrivialize tracking of unreachable subpatterns
Nadrieril [Sat, 25 Sep 2021 20:48:50 +0000 (21:48 +0100)]
Trivialize tracking of unreachable subpatterns

Phew it had been very had to make it work without a good way to identify
patterns. Now it's dead easy.

2 years agoAvoid double-deref in `Fields`
Nadrieril [Sat, 25 Sep 2021 16:46:44 +0000 (17:46 +0100)]
Avoid double-deref in `Fields`

2 years agoReplace `Pat` with a new intermediate representation
Nadrieril [Sat, 25 Sep 2021 23:00:08 +0000 (00:00 +0100)]
Replace `Pat` with a new intermediate representation

2 years agoRemove dependency of `SubPatSet` on `Pat`
Nadrieril [Wed, 22 Sep 2021 21:35:23 +0000 (22:35 +0100)]
Remove dependency of `SubPatSet` on `Pat`

2 years agoMove special `&str` handling to `Constructor` and `Fields`
Nadrieril [Wed, 22 Sep 2021 18:29:33 +0000 (19:29 +0100)]
Move special `&str` handling to `Constructor` and `Fields`

2 years agoUse usize for slice arity
Nadrieril [Sat, 25 Sep 2021 23:00:05 +0000 (00:00 +0100)]
Use usize for slice arity

2 years agoRework `Fields` internals.
Nadrieril [Wed, 22 Sep 2021 17:16:07 +0000 (18:16 +0100)]
Rework `Fields` internals.

Now `Fields` is just a `Vec` of patterns, with some extra info on the
side to reconstruct patterns when needed. This emphasizes that this
extra info is not central to the algorithm.

2 years agoA for loop is a lot faster apparently
Nadrieril [Wed, 22 Sep 2021 23:36:49 +0000 (00:36 +0100)]
A for loop is a lot faster apparently

2 years agoCleanup the reporting of unreachable patterns
Nadrieril [Mon, 13 Sep 2021 14:49:57 +0000 (15:49 +0100)]
Cleanup the reporting of unreachable patterns

2 years agoAlways report reachability for user-supplied patterns
Nadrieril [Mon, 13 Sep 2021 14:47:24 +0000 (15:47 +0100)]
Always report reachability for user-supplied patterns

2 years agoRemove some unreachable code
Nadrieril [Mon, 13 Sep 2021 14:44:30 +0000 (15:44 +0100)]
Remove some unreachable code

2 years agoRemove premature shortcutting
Nadrieril [Thu, 26 Aug 2021 07:55:57 +0000 (09:55 +0200)]
Remove premature shortcutting

2 years agoclippy lints: update doctest ranges to inclusive ones
Matthias Krüger [Fri, 10 Sep 2021 21:47:51 +0000 (23:47 +0200)]
clippy lints: update doctest ranges to inclusive ones

2 years agobump clippy crates to edition 2021
Matthias Krüger [Fri, 10 Sep 2021 20:57:00 +0000 (22:57 +0200)]
bump clippy crates to edition 2021

2 years agoFix typo in release notes
Daniel Giger [Sat, 25 Sep 2021 20:34:39 +0000 (16:34 -0400)]
Fix typo in release notes

2 years agoAuto merge of #88343 - steffahn:fix_code_spacing, r=jyn514
bors [Sat, 25 Sep 2021 20:08:11 +0000 (20:08 +0000)]
Auto merge of #88343 - steffahn:fix_code_spacing, r=jyn514

Fix spacing of links in inline code.

Similar to #80733, but the focus is different. This PR eliminates all occurrences of pieced-together inline code blocks like [`Box`]`<`[`Option`]`<T>>` and replaces them with good-looking ones (using HTML-syntax), like <code>[Box]<[Option]\<T>></code>. As far as I can tell, I should’ve found all of these in the standard library (regex search with `` r"`\]`|`\[`" ``) \[except for in `core::convert` where I’ve noticed other things in the docs that I want to fix in a separate PR]. In particular, unlike #80733, I’ve added almost no new instance of inline code that’s broken up into multiple links (or some link and some link-free part). I also added tooltips (the stuff in quotes for the markdown link listings) in places that caught my eye, but that’s by no means systematic, just opportunistic.

[Box]: https://doc.rust-lang.org/std/boxed/struct.Box.html "Box"
[`Box`]: https://doc.rust-lang.org/std/boxed/struct.Box.html "Box"
[Option]: https://doc.rust-lang.org/std/option/enum.Option.html "Option"
[`Option`]: https://doc.rust-lang.org/std/option/enum.Option.html "Option"

Context: I got annoyed by repeatedly running into new misformatted inline code while reading the standard library docs. I know that once issue #83997 (and/or related ones) are resolved, these changes become somewhat obsolete, but I fail to notice much progress on that end right now.

r? `@jyn514`

2 years agoFix incorrect disambiguation suggestion for associated items
Fabian Wolff [Sat, 25 Sep 2021 19:47:33 +0000 (21:47 +0200)]
Fix incorrect disambiguation suggestion for associated items

2 years agoExpose the std_detect env_override feature
Luca Barbato [Wed, 15 Sep 2021 15:12:46 +0000 (17:12 +0200)]
Expose the std_detect env_override feature

2 years agoApply 16 commits (squashed)
Frank Steffahn [Wed, 25 Aug 2021 09:45:08 +0000 (11:45 +0200)]
Apply 16 commits (squashed)

----------

Fix spacing for links inside code blocks, and improve link tooltips in alloc::fmt

----------

Fix spacing for links inside code blocks, and improve link tooltips in alloc::{rc, sync}

----------

Fix spacing for links inside code blocks, and improve link tooltips in alloc::string

----------

Fix spacing for links inside code blocks in alloc::vec

----------

Fix spacing for links inside code blocks in core::option

----------

Fix spacing for links inside code blocks, and improve a few link tooltips in core::result

----------

Fix spacing for links inside code blocks in core::{iter::{self, iterator}, stream::stream, poll}

----------

Fix spacing for links inside code blocks, and improve a few link tooltips in std::{fs, path}

----------

Fix spacing for links inside code blocks in std::{collections, time}

----------

Fix spacing for links inside code blocks in and make formatting of `&str`-like types consistent in std::ffi::{c_str, os_str}

----------

Fix spacing for links inside code blocks, and improve link tooltips in std::ffi

----------

Fix spacing for links inside code blocks, and improve a few link tooltips
in std::{io::{self, buffered::{bufreader, bufwriter}, cursor, util}, net::{self, addr}}

----------

Fix typo in link to `into` for `OsString` docs

----------

Remove tooltips that will probably become redundant in the future

----------

Apply suggestions from code review

Replacing `…std/primitive.reference.html` paths with just `reference`

Co-authored-by: Joshua Nelson <github@jyn.dev>
----------

Also replace `…std/primitive.reference.html` paths with just `reference` in `core::pin`

2 years agoAuto merge of #87584 - adamgemmell:dev/asm-tests, r=Amanieu
bors [Sat, 25 Sep 2021 17:14:38 +0000 (17:14 +0000)]
Auto merge of #87584 - adamgemmell:dev/asm-tests, r=Amanieu

Add inline asm! tests for aarch64

Port many of the x86-only UI tests for inline asm! over to aarch64.

2 years agorustdoc: Document `is_assoc_ty()`
Noah Lev [Sat, 25 Sep 2021 16:50:12 +0000 (09:50 -0700)]
rustdoc: Document `is_assoc_ty()`

It's adapted from the old documentation for the `is_generic` field.

2 years agoElaborate comment
Hirochika Matsumoto [Sat, 25 Sep 2021 16:07:10 +0000 (01:07 +0900)]
Elaborate comment

Co-authored-by: Joshua Nelson <github@jyn.dev>
2 years agoCheck for macros in built-in attributes that don't support them.
Eric Huss [Fri, 17 Sep 2021 20:08:56 +0000 (13:08 -0700)]
Check for macros in built-in attributes that don't support them.

2 years agoMove malformed attribute code to a function and fix inner attribute suggestion.
Eric Huss [Fri, 17 Sep 2021 00:48:06 +0000 (17:48 -0700)]
Move malformed attribute code to a function and fix inner attribute suggestion.

Moving to a dedicated function in preparation for other validation.

The suggestion given didn't consider if it was an inner attribute.

2 years agoAuto merge of #88243 - nikic:newpm-2, r=nagisa
bors [Sat, 25 Sep 2021 13:43:52 +0000 (13:43 +0000)]
Auto merge of #88243 - nikic:newpm-2, r=nagisa

Enable new pass manager with LLVM 13

The new pass manager is enabled by default in clang since Clang/LLVM 13. Per the recent discussion on llvm-dev (https://lists.llvm.org/pipermail/llvm-dev/2021-August/152305.html) the legacy pass manager will be unmaintained in LLVM 14 and removed entirely in LLVM 15.

This switches us to use the new pass manager if LLVM >= 13 is used. It's possible to still use the old pass manager using `-Z new-llvm-pass-manager=no`.

2 years agoAuto merge of #89030 - nbdd0121:box2, r=jonas-schievink
bors [Sat, 25 Sep 2021 11:01:13 +0000 (11:01 +0000)]
Auto merge of #89030 - nbdd0121:box2, r=jonas-schievink

Introduce `Rvalue::ShallowInitBox`

Polished version of #88700.

Implements MCP rust-lang/compiler-team#460, and should allow #43596 to go forward.

In short, creating an empty box is split from a nullary-op `NullOp::Box` into two steps, first a call to `exchange_malloc`, then a `Rvalue::ShallowInitBox` which transmutes `*mut u8` to a shallow-initialized `Box<T>`. This allows the `exchange_malloc` call to unwind. Details can be found in the MCP.

`NullOp::Box` is not yet removed, purely to make reverting easier in case anything goes wrong as the result of this PR. If revert is needed a reversion of "Use Rvalue::ShallowInitBox for box expression" commit followed by a test bless should be sufficient.

Experiments in #88700 showed a very slight compile-time perf regression due to (supposedly) slightly more time spent in LLVM. We could omit unwind edge generation (in non-`oom=panic` case) in box expression MIR construction to restore perf; but I don't think it's necessary since runtime perf isn't affected and perf difference is rather small.

2 years agoAuto merge of #89030 - nbdd0121:box2, r=jonas-schievink
bors [Sat, 25 Sep 2021 11:01:13 +0000 (11:01 +0000)]
Auto merge of #89030 - nbdd0121:box2, r=jonas-schievink

Introduce `Rvalue::ShallowInitBox`

Polished version of #88700.

Implements MCP rust-lang/compiler-team#460, and should allow #43596 to go forward.

In short, creating an empty box is split from a nullary-op `NullOp::Box` into two steps, first a call to `exchange_malloc`, then a `Rvalue::ShallowInitBox` which transmutes `*mut u8` to a shallow-initialized `Box<T>`. This allows the `exchange_malloc` call to unwind. Details can be found in the MCP.

`NullOp::Box` is not yet removed, purely to make reverting easier in case anything goes wrong as the result of this PR. If revert is needed a reversion of "Use Rvalue::ShallowInitBox for box expression" commit followed by a test bless should be sufficient.

Experiments in #88700 showed a very slight compile-time perf regression due to (supposedly) slightly more time spent in LLVM. We could omit unwind edge generation (in non-`oom=panic` case) in box expression MIR construction to restore perf; but I don't think it's necessary since runtime perf isn't affected and perf difference is rather small.

2 years agoPin panic-in-drop=abort test to old pass manager
Nikita Popov [Sat, 25 Sep 2021 10:39:20 +0000 (12:39 +0200)]
Pin panic-in-drop=abort test to old pass manager

2 years agoMake expectation in panic-in-drop-abort.rs test more precise
Nikita Popov [Tue, 14 Sep 2021 18:16:22 +0000 (20:16 +0200)]
Make expectation in panic-in-drop-abort.rs test more precise

Check whether a call/invoke of the function exists, but don't
match a leftover function declaration.

Also remove the CHECK-LABELs: In panic-in-drop=unwind mode the
call will not actually be in either of those functions, so
remove the restriction and look for any calls.

2 years agoUse correct pipeline for LTO at O0
Nikita Popov [Mon, 13 Sep 2021 16:18:59 +0000 (18:18 +0200)]
Use correct pipeline for LTO at O0

Unlike the pre-link piplines, the LTO pipelines do support O0,
and using them is required to avoid leaving behind undefined
references for the linker.

2 years agoEnable new pass manager on LLVM 13
Nikita Popov [Sat, 21 Aug 2021 20:20:32 +0000 (22:20 +0200)]
Enable new pass manager on LLVM 13

The new pass manager is enabled by default in clang since
Clang/LLVM 13. While the discussion about this is still ongoing
(https://lists.llvm.org/pipermail/llvm-dev/2021-August/152305.html)
it's expected that support for the legacy pass manager will be
dropped either in LLVM 14 or 15.

This switches us to use the new pass manager if LLVM >= 13 is used.

2 years agoAuto merge of #89237 - BoxyUwU:trackersMcCaller, r=eddyb
bors [Sat, 25 Sep 2021 07:33:25 +0000 (07:33 +0000)]
Auto merge of #89237 - BoxyUwU:trackersMcCaller, r=eddyb

make `#[track_caller]` actually do stuff in `Steal::borrow`

makes this ICE message useful:
``thread 'rustc' panicked at 'attempted to read from stolen value', /rustc/ac2d9fc509e36d1b32513744adf58c34bcc4f43c\compiler\rustc_data_structures\src\steal.rs:37:21``

2 years agorustdoc: Don't show hidden trait methods
Hirochika Matsumoto [Thu, 23 Sep 2021 10:38:01 +0000 (19:38 +0900)]
rustdoc: Don't show hidden trait methods

By skipping trait items whose attributes include `hidden`, we void
showing
such trait methods.

2 years agoAuto merge of #87220 - petrochenkov:derivecfglimit2, r=Aaron1011
bors [Sat, 25 Sep 2021 04:35:59 +0000 (04:35 +0000)]
Auto merge of #87220 - petrochenkov:derivecfglimit2, r=Aaron1011

Make `#[derive(A, B, ...)]` cfg-eval its input only for `A, B, ...` and stabilize `feature(macro_attributes_in_derive_output)`

Stabilization report: https://github.com/rust-lang/rust/pull/87220#issuecomment-881923657

Closes #81119
r? `@Aaron1011`

2 years agouse `drain_filter` instead of `filter` and `retain`
Takayuki Maeda [Sat, 25 Sep 2021 02:33:53 +0000 (11:33 +0900)]
use `drain_filter` instead of `filter` and `retain`

2 years agoAuto merge of #89230 - workingjubilee:rollup-1swktdq, r=workingjubilee
bors [Sat, 25 Sep 2021 00:20:28 +0000 (00:20 +0000)]
Auto merge of #89230 - workingjubilee:rollup-1swktdq, r=workingjubilee

Rollup of 8 pull requests

Successful merges:

 - #88893 (Add 1.56.0 release notes)
 - #89001 (Be explicit about using Binder::dummy)
 - #89072 (Avoid a couple of Symbol::as_str calls in cg_llvm )
 - #89104 (Simplify scoped_thread)
 - #89208 ([rfc 2229] Drop fully captured upvars in the same order as the regular drop code)
 - #89210 (Add missing time complexities to linked_list.rs)
 - #89217 (Enable "generate-link-to-definition" option on rust tools docs as well)
 - #89221 (Give better error for `macro_rules! name!`)

Failed merges:

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

2 years agoIntroduce `Rvalue::ShallowInitBox`
Gary Guo [Mon, 6 Sep 2021 17:33:23 +0000 (18:33 +0100)]
Introduce `Rvalue::ShallowInitBox`

2 years agoBless tests
Gary Guo [Thu, 16 Sep 2021 22:04:02 +0000 (23:04 +0100)]
Bless tests

2 years agoReport heap allocation instead of non-const fn for exchange_malloc call
Gary Guo [Thu, 16 Sep 2021 21:49:34 +0000 (22:49 +0100)]
Report heap allocation instead of non-const fn for exchange_malloc call

2 years agoUse Rvalue::ShallowInitBox for box expression
Gary Guo [Sat, 11 Sep 2021 22:24:55 +0000 (23:24 +0100)]
Use Rvalue::ShallowInitBox for box expression

2 years agoIntroduce `Rvalue::ShallowInitBox`
Gary Guo [Mon, 6 Sep 2021 17:33:23 +0000 (18:33 +0100)]
Introduce `Rvalue::ShallowInitBox`

2 years agoarrr caught ya caller
Ellen [Fri, 24 Sep 2021 23:34:02 +0000 (00:34 +0100)]
arrr caught ya caller

awd

2 years agomake junit output more consistent with default format
Jane Lusby [Fri, 24 Sep 2021 21:45:09 +0000 (14:45 -0700)]
make junit output more consistent with default format

2 years agoAuto merge of #86246 - FabianWolff:issue-83471, r=estebank
bors [Fri, 24 Sep 2021 21:30:35 +0000 (21:30 +0000)]
Auto merge of #86246 - FabianWolff:issue-83471, r=estebank

Add basic checks for well-formedness of `fn`/`fn_mut` lang items

This pull request fixes #83471. Lang items are never actually checked for well-formedness (#9307). This means that one can get an ICE quite easily, e.g. as follows:
```rust
#![feature(lang_items)]
#[lang = "fn"]
trait MyFn {
    const call: i32 = 42;
}

fn main() {
    (|| 42)();
}
```
or this:
```rust
#![feature(lang_items)]
#[lang = "fn"]
trait MyFn {
    fn call(i: i32, j: i32);
}

fn main() {
    (|| 42)();
}
```
Ideally, there should probably be a more comprehensive strategy for checking lang items for well-formedness, but for the time being, I have added some rudimentary well-formedness checks that prevent #83471 and similar issues.

2 years agoHide `<...> defined here` note if the source is not available
Fabian Wolff [Fri, 24 Sep 2021 20:42:05 +0000 (22:42 +0200)]
Hide `<...> defined here` note if the source is not available

2 years agoStabilize `feature(macro_attributes_in_derive_output)`
Vadim Petrochenkov [Sat, 17 Jul 2021 14:50:33 +0000 (17:50 +0300)]
Stabilize `feature(macro_attributes_in_derive_output)`

2 years agoderive: Do not configure or clone items unless necessary
Vadim Petrochenkov [Sat, 17 Jul 2021 14:28:43 +0000 (17:28 +0300)]
derive: Do not configure or clone items unless necessary

2 years agobuiltin_macros: Make #[derive(A, B, ...)] cfg-eval its input only for `A, B, ...`
Vadim Petrochenkov [Sat, 17 Jul 2021 14:10:03 +0000 (17:10 +0300)]
builtin_macros: Make #[derive(A, B, ...)] cfg-eval its input only for `A, B, ...`

2 years agoRollup merge of #89221 - aDotInTheVoid:macro-error-1, r=estebank
Jubilee [Fri, 24 Sep 2021 18:40:17 +0000 (11:40 -0700)]
Rollup merge of #89221 - aDotInTheVoid:macro-error-1, r=estebank

Give better error for `macro_rules! name!`

r? ``@estebank``

``@rustbot`` modify labels: +A-diagnostics +A-parser

2 years agoRollup merge of #89217 - GuillaumeGomez:generate-link-to-def-rust-tools, r=jyn514
Jubilee [Fri, 24 Sep 2021 18:40:16 +0000 (11:40 -0700)]
Rollup merge of #89217 - GuillaumeGomez:generate-link-to-def-rust-tools, r=jyn514

Enable "generate-link-to-definition" option on rust tools docs as well

Just realized that we enable the option for the compiler crates, but we don't have it for rustdoc and the other tools documentation...

Part of https://github.com/rust-lang/rust/issues/89095.

cc ``@rust-lang/rustdoc``
r? ``@Mark-Simulacrum``

2 years agoRollup merge of #89210 - Takashiidobe:master, r=kennytm
Jubilee [Fri, 24 Sep 2021 18:40:15 +0000 (11:40 -0700)]
Rollup merge of #89210 - Takashiidobe:master, r=kennytm

Add missing time complexities to linked_list.rs

Most functions in LinkedList have time complexities in their description:
Like push front:

```
Adds an element first in the list.

This operation should compute in O(1) time.
```

Time complexities were missing for the following, so I've added them in this PR:

contains: O(n)
front: O(1)
front_mut: O(1)
back: O(1)
back_mut: O(1)

2 years agoRollup merge of #89208 - wesleywiser:rfc_2229_droporder, r=nikomatsakis
Jubilee [Fri, 24 Sep 2021 18:40:14 +0000 (11:40 -0700)]
Rollup merge of #89208 - wesleywiser:rfc_2229_droporder, r=nikomatsakis

[rfc 2229] Drop fully captured upvars in the same order as the regular drop code

Currently, with the new 2021 edition, if a closure captures all of the
fields of an upvar, we'll drop those fields in the order they are used
within the closure instead of the normal drop order (the definition
order of the fields in the type).

This changes that so we sort the captured fields by the definition order
which causes them to drop in that same order as well.

Fixes rust-lang/project-rfc-2229#42

r? `@nikomatsakis`

2 years agoRollup merge of #89104 - Mark-Simulacrum:spawn-unchecked, r=nagisa,bjorn3
Jubilee [Fri, 24 Sep 2021 18:40:13 +0000 (11:40 -0700)]
Rollup merge of #89104 - Mark-Simulacrum:spawn-unchecked, r=nagisa,bjorn3

Simplify scoped_thread

Avoids a bunch of manual pointer manipulation in favor of using the appropriate std API.

2 years agoRollup merge of #89072 - bjorn3:less_symbol_as_str, r=michaelwoerister
Jubilee [Fri, 24 Sep 2021 18:40:12 +0000 (11:40 -0700)]
Rollup merge of #89072 - bjorn3:less_symbol_as_str, r=michaelwoerister

Avoid a couple of Symbol::as_str calls in cg_llvm

This should improve performance a tiny bit. Also remove `Symbol::len` and make `SymbolIndex` private.

2 years agoRollup merge of #89001 - jackh726:binder-cleanup, r=nikomatsakis
Jubilee [Fri, 24 Sep 2021 18:40:11 +0000 (11:40 -0700)]
Rollup merge of #89001 - jackh726:binder-cleanup, r=nikomatsakis

Be explicit about using Binder::dummy

This is somewhat of a late followup to the binder refactor PR. It removes `ToPredicate` and `ToPolyTraitImpls` that hide the use of `Binder::dummy`. While this does make code a bit more verbose, it allows us be more careful about where we create binders.

Another alternative here might be to add a new trait `ToBinder` or something with a `dummy()` fn. Which could still allow grepping but allows doing something like `trait_ref.dummy()` (but I also wonder if longer-term, it would be better to be even more explicit with a `bind_with_vars(ty::List::empty())` *but* that's not clear yet.

r? ``@nikomatsakis``

2 years agoRollup merge of #89001 - jackh726:binder-cleanup, r=nikomatsakis
Jubilee [Fri, 24 Sep 2021 18:40:11 +0000 (11:40 -0700)]
Rollup merge of #89001 - jackh726:binder-cleanup, r=nikomatsakis

Be explicit about using Binder::dummy

This is somewhat of a late followup to the binder refactor PR. It removes `ToPredicate` and `ToPolyTraitImpls` that hide the use of `Binder::dummy`. While this does make code a bit more verbose, it allows us be more careful about where we create binders.

Another alternative here might be to add a new trait `ToBinder` or something with a `dummy()` fn. Which could still allow grepping but allows doing something like `trait_ref.dummy()` (but I also wonder if longer-term, it would be better to be even more explicit with a `bind_with_vars(ty::List::empty())` *but* that's not clear yet.

r? ``@nikomatsakis``

2 years agoRollup merge of #88893 - Mark-Simulacrum:relnotes, r=pietroalbini
Jubilee [Fri, 24 Sep 2021 18:40:11 +0000 (11:40 -0700)]
Rollup merge of #88893 - Mark-Simulacrum:relnotes, r=pietroalbini

Add 1.56.0 release notes

Notable things:

* Rustdoc section currently absent, for lack of things to call out that I could find. It seems like https://github.com/rust-lang/rust/pull/87451 is the only potential candidate, but that seems like more of a bugfix and doesn't seem to warrant inclusion to me. But we can add it if desired.

As with the 1.55.0 release notes, my intent is to leave this open for approximately 1-2 weeks at the early part of the cycle, and then merge it in (after fixing any feedback). Further iteration can happen in subsequent issues (and PRs).

[Rendered](https://github.com/Mark-Simulacrum/rust/blob/relnotes/RELEASES.md)

2 years agoMake error message for malformed `fn`/`fn_mut` lang item more specific
Fabian Wolff [Fri, 24 Sep 2021 16:55:14 +0000 (18:55 +0200)]
Make error message for malformed `fn`/`fn_mut` lang item more specific

2 years agoAuto merge of #88872 - petrochenkov:getmod2, r=cjgillot
bors [Fri, 24 Sep 2021 18:12:33 +0000 (18:12 +0000)]
Auto merge of #88872 - petrochenkov:getmod2, r=cjgillot

resolve: Some module-related refactorings

See the individual commits.

2 years agoDisable a spuriously failing test
Vadim Petrochenkov [Fri, 24 Sep 2021 17:28:47 +0000 (20:28 +0300)]
Disable a spuriously failing test

2 years agoDisable some tests for platforms without registers.
Adam Gemmell [Mon, 6 Sep 2021 15:44:19 +0000 (16:44 +0100)]
Disable some tests for platforms without registers.

Update new tests to run on aarch64 platforms.

2 years agoUpdate and add more tests
Wesley Wiser [Fri, 24 Sep 2021 16:26:24 +0000 (12:26 -0400)]
Update and add more tests

2 years agoAdd basic checks for well-formedness of `fn`/`fn_mut` lang items
Fabian Wolff [Sat, 12 Jun 2021 10:48:04 +0000 (12:48 +0200)]
Add basic checks for well-formedness of `fn`/`fn_mut` lang items

2 years agoAdd inline asm! tests for aarch64
Adam Gemmell [Thu, 24 Jun 2021 14:01:49 +0000 (14:01 +0000)]
Add inline asm! tests for aarch64

Enable tests which are largely architecture-independent on all supported
platforms

2 years agoresolve: Refactor obtaining `Module` from its `DefId`
Vadim Petrochenkov [Sat, 11 Sep 2021 23:06:27 +0000 (02:06 +0300)]
resolve: Refactor obtaining `Module` from its `DefId`

The `Option<Module>` version is supported for the case where we don't know whether the `DefId` refers to a module or not.
Non-local traits and enums are also correctly found now.

2 years agoresolve: Use a single common map for local and foreign modules
Vadim Petrochenkov [Sat, 11 Sep 2021 22:59:05 +0000 (01:59 +0300)]
resolve: Use a single common map for local and foreign modules

2 years agoresolve: Rename some expansion def scope methods
Vadim Petrochenkov [Sat, 11 Sep 2021 22:47:46 +0000 (01:47 +0300)]
resolve: Rename some expansion def scope methods

2 years agoresolve: Cleanup module allocation
Vadim Petrochenkov [Sat, 11 Sep 2021 13:37:34 +0000 (16:37 +0300)]
resolve: Cleanup module allocation

Construction of all modules is now centralized and performed by `fn new_module`.

2 years agoresolve: Do not cache nearest parent mod in `ModuleData`
Vadim Petrochenkov [Mon, 13 Sep 2021 21:13:14 +0000 (00:13 +0300)]
resolve: Do not cache nearest parent mod in `ModuleData`

2 years agoAdd 1.56.0 release notes
Mark Rousskov [Sun, 12 Sep 2021 19:13:54 +0000 (15:13 -0400)]
Add 1.56.0 release notes

Co-authored-by: Josh Triplett <josh@joshtriplett.org>
2 years agochange the order of path suggestions
Takayuki Maeda [Fri, 24 Sep 2021 15:22:59 +0000 (00:22 +0900)]
change the order of path suggestions

2 years agoAuto merge of #88999 - Migi:master, r=oli-obk
bors [Fri, 24 Sep 2021 15:22:26 +0000 (15:22 +0000)]
Auto merge of #88999 - Migi:master, r=oli-obk

Make `Duration` respect `width` when formatting using `Debug`

When printing or writing a `std::time::Duration` using `Debug` formatting, it previously completely ignored any specified `width`. This is unlike types like integers and floats, which do pad to `width`, for both `Display` and `Debug`, though not all types consider `width` in their `Debug` output (see e.g. #30164). Curiously, `Duration`'s `Debug` formatting *did* consider `precision`.

This PR makes `Duration` pad to `width` just like integers and floats, so that
```rust
format!("|{:8?}|", Duration::from_millis(1234))
```
returns
```
|1.234s  |
```

Before you ask "who formats `Debug` output?", note that `Duration` doesn't actually implement `Display`, so `Debug` is currently the only way to format `Duration`s. I think that's wrong, and `Duration` should get a `Display` implementation, but in the meantime there's no harm in making the `Debug` formatting respect `width` rather than ignore it.

I chose the default alignment to be left-aligned. The general rule Rust uses is: numeric types are right-aligned by default, non-numeric types left-aligned. It wasn't clear to me whether `Duration` is a numeric type or not. The fact that a formatted `Duration` can end with suffixes of variable length (`"s"`, `"ms"`, `"µs"`, etc.) made me lean towards left-alignment, but it would be trivial to change it.

Fixes issue #88059.

2 years agoGive better error for `macro_rules! name!`
Nixon Enraght-Moony [Fri, 24 Sep 2021 12:31:01 +0000 (13:31 +0100)]
Give better error for `macro_rules! name!`

2 years agoAuto merge of #7669 - Labelray:if_then_panic, r=giraffate
bors [Fri, 24 Sep 2021 14:43:51 +0000 (14:43 +0000)]
Auto merge of #7669 - Labelray:if_then_panic, r=giraffate

New lint `if_then_panic`

changelog: add the new lint [`if_then_panic`]
fix #7645

2 years agoAuto merge of #7715 - F3real:vec2, r=camsteffen
bors [Fri, 24 Sep 2021 14:24:41 +0000 (14:24 +0000)]
Auto merge of #7715 - F3real:vec2, r=camsteffen

Avoid needless heap allocation in box_collection

Fix issue left from previous PR

changelog: none.

r? `@Manishearth`

2 years agoAdd new lint `if_then_panic`
Labelray [Tue, 14 Sep 2021 08:28:09 +0000 (16:28 +0800)]
Add new lint `if_then_panic`

2 years agounitalicize O(1) complexities
Takashi Idobe [Fri, 24 Sep 2021 13:33:49 +0000 (08:33 -0500)]
unitalicize O(1) complexities

2 years agoMerge branch 'rust-lang:master' into master
Takashi Idobe [Fri, 24 Sep 2021 13:31:03 +0000 (08:31 -0500)]
Merge branch 'rust-lang:master' into master

2 years agoAuto merge of #88835 - FabianWolff:issue-88770, r=petrochenkov
bors [Fri, 24 Sep 2021 11:54:29 +0000 (11:54 +0000)]
Auto merge of #88835 - FabianWolff:issue-88770, r=petrochenkov

Fix error recovery in format macro parsing

Fixes #88770. Basically, the assumption in the following comment is incorrect:
https://github.com/rust-lang/rust/blob/b69fe57261086e70aea9d5b58819a1794bf7c121/compiler/rustc_builtin_macros/src/format.rs#L167-L172

This is only true in the first iteration of the loop, when [`p.clear_expected_tokens()`](https://github.com/rust-lang/rust/blob/b69fe57261086e70aea9d5b58819a1794bf7c121/compiler/rustc_builtin_macros/src/format.rs#L164) is called. In subsequent iterations, `p.expected_tokens` won't be empty, so `p.expect()` won't actually call `unexpected_try_recover()`:
https://github.com/rust-lang/rust/blob/b69fe57261086e70aea9d5b58819a1794bf7c121/compiler/rustc_parse/src/parser/mod.rs#L487-L498

Instead, it will call `expect_one_of()`, which _can_ recover and return `Ok()`. This PR handles this case to fix the ICE in #88770.

2 years agoconsistent big O notation
r00ster91 [Fri, 24 Sep 2021 10:44:28 +0000 (12:44 +0200)]
consistent big O notation

2 years agoconsistent big O notation
r00ster91 [Fri, 24 Sep 2021 10:44:28 +0000 (12:44 +0200)]
consistent big O notation

2 years agoEnable "generate-link-to-definition" option on rust tools docs as well
Guillaume Gomez [Fri, 24 Sep 2021 10:05:35 +0000 (12:05 +0200)]
Enable "generate-link-to-definition" option on rust tools docs as well

2 years agoSimplify explicit request check
Guillaume Gomez [Wed, 22 Sep 2021 20:25:42 +0000 (22:25 +0200)]
Simplify explicit request check

2 years agoAvoid needless heap allocation in box_collection
F3real [Fri, 24 Sep 2021 09:02:16 +0000 (11:02 +0200)]
Avoid needless heap allocation in box_collection

2 years agoAuto merge of #89130 - nikic:update-llvm-2, r=cuviper
bors [Fri, 24 Sep 2021 08:12:15 +0000 (08:12 +0000)]
Auto merge of #89130 - nikic:update-llvm-2, r=cuviper

Update LLVM submodule

This merges the upstream `release/13.x` branch to pull in the second fix for #88769.

2 years agoAuto merge of #89120 - In-line:remove_unneded_visible_parents_map, r=estebank
bors [Fri, 24 Sep 2021 05:29:49 +0000 (05:29 +0000)]
Auto merge of #89120 - In-line:remove_unneded_visible_parents_map, r=estebank

Disable visible path calculation for PrettyPrinter in Ok path of compiler

2 years agoFix tidy and respond to some feedback
Wesley Wiser [Fri, 24 Sep 2021 02:15:12 +0000 (22:15 -0400)]
Fix tidy and respond to some feedback

2 years agoAdd known-tool-in-submodule test
Samuel E. Moelius III [Fri, 24 Sep 2021 02:05:26 +0000 (22:05 -0400)]
Add known-tool-in-submodule test

The test currently fails. The next commit fixes it.

2 years agoAuto merge of #89211 - workingjubilee:rollup-fj4eduk, r=workingjubilee
bors [Fri, 24 Sep 2021 01:48:02 +0000 (01:48 +0000)]
Auto merge of #89211 - workingjubilee:rollup-fj4eduk, r=workingjubilee

Rollup of 7 pull requests

Successful merges:

 - #88612 (Add a better error message for #39364)
 - #89023 (Resolve issue : Somewhat confusing error with extended_key_value_attributes)
 - #89148 (Suggest `_` in turbofish if param will be inferred from fn argument)
 - #89171 (Run `no_core` rustdoc tests only on Linux)
 - #89176 (Change singular to plural)
 - #89184 (Temporarily rename int_roundings functions to avoid conflicts)
 - #89200 (Fix typo)

Failed merges:

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

2 years agoRollup merge of #89200 - hkmatsumoto:patch, r=workingjubilee
Jubilee [Fri, 24 Sep 2021 00:31:47 +0000 (17:31 -0700)]
Rollup merge of #89200 - hkmatsumoto:patch, r=workingjubilee

Fix typo

2 years agoRollup merge of #89184 - joshtriplett:master, r=estebank
Jubilee [Fri, 24 Sep 2021 00:31:46 +0000 (17:31 -0700)]
Rollup merge of #89184 - joshtriplett:master, r=estebank

Temporarily rename int_roundings functions to avoid conflicts

These functions are unstable, but because they're inherent they still
introduce conflicts with stable trait functions in crates. Temporarily
rename them to fix these conflicts, until we can resolve those conflicts
in a better way.

2 years agoRollup merge of #89176 - TaKO8Ki:change-singular-to-plural, r=lcnr
Jubilee [Fri, 24 Sep 2021 00:31:45 +0000 (17:31 -0700)]
Rollup merge of #89176 - TaKO8Ki:change-singular-to-plural, r=lcnr

Change singular to plural

2 years agoRollup merge of #89171 - rusticstuff:aarch64_macos_rustdoc_ci_fixes, r=jyn514
Jubilee [Fri, 24 Sep 2021 00:31:44 +0000 (17:31 -0700)]
Rollup merge of #89171 - rusticstuff:aarch64_macos_rustdoc_ci_fixes, r=jyn514

Run `no_core` rustdoc tests only on Linux

I don't think this is really worth investigating further so I just disabled them.

They currently fail like this:
```
error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-Wl,-exported_symbols_list,/var/folders/pg/gjhzdz7n361f0pv665d0723w0000gn/T/rustcPUsMpx/list" "-arch" "arm64" "/Users/hans/dev/rust/build/aarch64-apple-darwin/test/rustdoc/intra-doc/prim-methods-external-core/auxiliary/my-core.my_core.9f3c60de-cgu.0.rcgu.o" "/Users/hans/dev/rust/build/aarch64-apple-darwin/test/rustdoc/intra-doc/prim-methods-external-core/auxiliary/my-core.50fu2g9urkmisdsg.rcgu.o" "-L" "/Users/hans/dev/rust/build/aarch64-apple-darwin/native/rust-test-helpers" "-L" "/Users/hans/dev/rust/build/aarch64-apple-darwin/test/rustdoc/intra-doc/prim-methods-external-core/auxiliary" "-L" "/Users/hans/dev/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib" "-L" "/Users/hans/dev/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib" "-o" "/Users/hans/dev/rust/build/aarch64-apple-darwin/test/rustdoc/intra-doc/prim-methods-external-core/auxiliary/libmy_core.dylib" "-Wl,-dead_strip" "-dynamiclib" "-Wl,-dylib" "-Wl,-install_name" "-Wl,``@rpath/libmy_core.dylib"`` "-nodefaultlibs"
  = note: ld: dynamic main executables must link with libSystem.dylib for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

r? ``@jyn514``

2 years agoRollup merge of #89148 - estebank:used-type-param, r=oli-obk
Jubilee [Fri, 24 Sep 2021 00:31:43 +0000 (17:31 -0700)]
Rollup merge of #89148 - estebank:used-type-param, r=oli-obk

Suggest `_` in turbofish if param will be inferred from fn argument

2 years agoRollup merge of #89023 - Wardenfar:issue-85066, r=nagisa
Jubilee [Fri, 24 Sep 2021 00:31:42 +0000 (17:31 -0700)]
Rollup merge of #89023 - Wardenfar:issue-85066, r=nagisa

Resolve issue : Somewhat confusing error with extended_key_value_attributes

Fixes #85066

2 years agoRollup merge of #88612 - lovasoa:patch-1, r=m-ou-se
Jubilee [Fri, 24 Sep 2021 00:31:41 +0000 (17:31 -0700)]
Rollup merge of #88612 - lovasoa:patch-1, r=m-ou-se

Add a better error message for #39364

There is a known bug in the implementation of mpsc channels in rust.
This adds a clearer error message when the bug occurs, so that developers don't lose too much time looking for the origin of the bug.
See https://github.com/rust-lang/rust/issues/39364

2 years agoremove trailing whitespace
Takashi Idobe [Thu, 23 Sep 2021 23:20:46 +0000 (18:20 -0500)]
remove trailing whitespace

2 years agoAdd time complexities to linked_list.rs
Takashi Idobe [Thu, 23 Sep 2021 22:58:02 +0000 (17:58 -0500)]
Add time complexities to linked_list.rs