]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoAdd needs-asm-support directive to tests where necessary
bjorn3 [Sat, 19 Mar 2022 15:50:24 +0000 (16:50 +0100)]
Add needs-asm-support directive to tests where necessary

2 years agoAdd needs-unwind directive to tests where necessary
bjorn3 [Sat, 19 Mar 2022 15:13:18 +0000 (16:13 +0100)]
Add needs-unwind directive to tests where necessary

2 years agoAuto merge of #95101 - Dylan-DPC:rollup-r1f1v9t, r=Dylan-DPC
bors [Sat, 19 Mar 2022 02:16:00 +0000 (02:16 +0000)]
Auto merge of #95101 - Dylan-DPC:rollup-r1f1v9t, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #92519 (Use verbatim paths for `process::Command` if necessary)
 - #92612 (Update stdlib for the l4re target)
 - #92663 (Implement `Write for Cursor<[u8; N]>`, plus `A: Allocator` cursor support)
 - #93263 (Consistently present absent stdio handles on Windows as NULL handles.)
 - #93692 (keyword_docs: document use of `in` with `pub` keyword)
 - #94984 (add `CStr` method that accepts any slice containing a nul-terminated string)

Failed merges:

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

2 years agoRollup merge of #94984 - ericseppanen:cstr_from_bytes, r=Mark-Simulacrum
Dylan DPC [Sat, 19 Mar 2022 01:02:02 +0000 (02:02 +0100)]
Rollup merge of #94984 - ericseppanen:cstr_from_bytes, r=Mark-Simulacrum

add `CStr` method that accepts any slice containing a nul-terminated string

I haven't created an issue (tracking or otherwise) for this yet; apologies if my approach isn't correct. This is my first code contribution.

This change adds a member fn that converts a slice into a `CStr`; it is intended to be safer than `from_ptr` (which is unsafe and may read out of bounds), and more useful than `from_bytes_with_nul` (which requires that the caller already know where the nul byte is).

The reason I find this useful is for situations like this:
```rust
let mut buffer = [0u8; 32];
unsafe {
    some_c_function(buffer.as_mut_ptr(), buffer.len());
}
let result = CStr::from_bytes_with_nul(&buffer).unwrap();
```

This code above returns an error with `kind = InteriorNul`, because `from_bytes_with_nul` expects that the caller has passed in a slice with the NUL byte at the end of the slice. But if I just got back a nul-terminated string from some FFI function, I probably don't know where the NUL byte is.

I would wish for a `CStr` constructor with the following properties:
- Accept `&[u8]` as input
- Scan for the first NUL byte and return the `CStr` that spans the correct sub-slice (see [future note below](https://github.com/rust-lang/rust/pull/94984#issuecomment-1070754281)).
- Return an error if no NUL byte is found within the input slice

I asked on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/CStr.20from.20.26.5Bu8.5D.20without.20knowing.20the.20NUL.20location.3F) whether this sounded like a good idea, and got a couple of positive-sounding responses from ``@joshtriplett`` and ``@AzureMarker.``

This is my first draft, so feedback is welcome.

A few issues that definitely need feedback:

1. Naming. ``@joshtriplett`` called this `from_bytes_with_internal_nul` on Zulip, but after staring at all of the available methods, I believe that this function is probably what end users want (rather than the existing fn `from_bytes_with_nul`). Giving it a simpler name (**`from_bytes`**) implies that this should be their first choice.
2. Should I add a similar method on `CString` that accepts `Vec<u8>`? I'd assume the answer is probably yes, but I figured I'd try to get early feedback before making this change bigger.
3. What should the error type look like? I made a unit struct since `CStr::from_bytes` can only fail in one obvious way, but if I need to do this for `CString` as well then that one may want to return `FromVecWithNulError`. And maybe that should dictate the shape of the `CStr` error type also?

Also, cc ``@poliorcetics`` who wrote #73139 containing similar fns.

2 years agoRollup merge of #93692 - mfrw:mfrw/document-keyword-in, r=dtolnay
Dylan DPC [Sat, 19 Mar 2022 01:02:02 +0000 (02:02 +0100)]
Rollup merge of #93692 - mfrw:mfrw/document-keyword-in, r=dtolnay

keyword_docs: document use of `in` with `pub` keyword

Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com>
Fixes: #93609
2 years agoRollup merge of #93263 - sunfishcode:sunfishcode/detatched-console-handle, r=dtolnay
Dylan DPC [Sat, 19 Mar 2022 01:02:01 +0000 (02:02 +0100)]
Rollup merge of #93263 - sunfishcode:sunfishcode/detatched-console-handle, r=dtolnay

Consistently present absent stdio handles on Windows as NULL handles.

This addresses #90964 by making the std API consistent about presenting
absent stdio handles on Windows as NULL handles. Stdio handles may be
absent due to `#![windows_subsystem = "windows"]`, due to the console
being detached, or due to a child process having been launched from a
parent where stdio handles are absent.

Specifically, this fixes the case of child processes of parents with absent
stdio, which previously ended up with `stdin().as_raw_handle()` returning
`INVALID_HANDLE_VALUE`, which was surprising, and which overlapped with an
unrelated valid handle value. With this patch, `stdin().as_raw_handle()`
now returns null in these situation, which is consistent with what it
does in the parent process.

And, document this in the "Windows Portability Considerations" sections of
the relevant documentation.

2 years agoRollup merge of #92663 - cuviper:generic-write-cursor, r=dtolnay
Dylan DPC [Sat, 19 Mar 2022 01:02:00 +0000 (02:02 +0100)]
Rollup merge of #92663 - cuviper:generic-write-cursor, r=dtolnay

Implement `Write for Cursor<[u8; N]>`, plus `A: Allocator` cursor support

This implements `Write for Cursor<[u8; N]>`, and also adds support for generic `A: Allocator` in `Box` and `Vec` cursors.

This was inspired by a user questioning why they couldn't write a `Cursor<[u8; N]>`:
https://users.rust-lang.org/t/why-vec-and-not-u8-makes-cursor-have-write/68210

Related history:
- #27197 switched `AsRef<[u8]>` for reading and seeking
- #67415 tried to use `AsMut<[u8]>` for writing, but did not specialize `Vec`.

2 years agoRollup merge of #92612 - atopia:update-lib-l4re, r=dtolnay
Dylan DPC [Sat, 19 Mar 2022 01:01:59 +0000 (02:01 +0100)]
Rollup merge of #92612 - atopia:update-lib-l4re, r=dtolnay

Update stdlib for the l4re target

This PR contains the work by ``@humenda`` and myself to update standard library support for the x86_64-unknown-l4re-uclibc tier 3 target, split out from  humenda/rust as requested in #85967. The changes have been rebased on current master and updated in follow up commits by myself. The publishing of the changes is authorized and preferred by the original author. To preserve attribution, when standard library changes were introduced as part of other changes to the compiler, I have kept the changes concerning the standard library and altered the commit messages as indicated. Any incompatibilities have been remedied in follow up commits, so that the PR as a whole should result in a clean update of the target.

2 years agoRollup merge of #92519 - ChrisDenton:command-maybe-verbatim, r=dtolnay
Dylan DPC [Sat, 19 Mar 2022 01:01:59 +0000 (02:01 +0100)]
Rollup merge of #92519 - ChrisDenton:command-maybe-verbatim, r=dtolnay

Use verbatim paths for `process::Command` if necessary

In #89174, the standard library started using verbatim paths so longer paths are usable by default. However, `Command` was originally left out because of the way `CreateProcessW` was being called. This was changed as a side effect of #87704 so now `Command` paths can be converted to verbatim too (if necessary).

2 years agoadd CStr::from_bytes_until_nul
Eric Seppanen [Tue, 15 Mar 2022 23:47:26 +0000 (16:47 -0700)]
add CStr::from_bytes_until_nul

This adds a member fn that converts a slice into a CStr; it is intended
to be safer than from_ptr (which is unsafe and may read out of bounds),
and more useful than from_bytes_with_nul (which requires that the caller
already know where the nul byte is).

feature gate: cstr_from_bytes_until_nul

Also add an error type FromBytesUntilNulError for this fn.

2 years agoAuto merge of #95090 - matthiaskrgr:rollup-pho6x6s, r=matthiaskrgr
bors [Fri, 18 Mar 2022 22:10:55 +0000 (22:10 +0000)]
Auto merge of #95090 - matthiaskrgr:rollup-pho6x6s, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #94115 (Let `try_collect` take advantage of `try_fold` overrides)
 - #94295 (Always evaluate all cfg predicate in all() and any())
 - #94848 (Compare installed browser-ui-test version to the one used in CI)
 - #94993 (Add test for >65535 hashes in lexing raw string)
 - #95017 (Derive Eq for std::cmp::Ordering, instead of using manual impl.)
 - #95058 (Add use of bool::then in sys/unix/process)
 - #95083 (Document that `Option<extern "abi" fn>` discriminant elision applies for any ABI)

Failed merges:

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

2 years agoBump impl Write for Cursor<[u8; N]> to 1.61
David Tolnay [Fri, 18 Mar 2022 22:04:37 +0000 (15:04 -0700)]
Bump impl Write for Cursor<[u8; N]> to 1.61

2 years agoRollup merge of #95083 - danielhenrymantilla:patch-2, r=RalfJung
Matthias Krüger [Fri, 18 Mar 2022 20:50:50 +0000 (21:50 +0100)]
Rollup merge of #95083 - danielhenrymantilla:patch-2, r=RalfJung

Document that `Option<extern "abi" fn>` discriminant elision applies for any ABI

The current phrasing was not very clear on that aspect.

r? `@RalfJung`

`@rustbot` modify labels: A-docs A-ffi

2 years agoRollup merge of #95058 - wcampbell0x2a:use-then-in-unix-process, r=dtolnay
Matthias Krüger [Fri, 18 Mar 2022 20:50:49 +0000 (21:50 +0100)]
Rollup merge of #95058 - wcampbell0x2a:use-then-in-unix-process, r=dtolnay

Add use of bool::then in sys/unix/process

Remove `else { None }` in favor of using `bool::then()`

2 years agoRollup merge of #95017 - zachs18:cmp_ordering_derive_eq, r=Dylan-DPC
Matthias Krüger [Fri, 18 Mar 2022 20:50:48 +0000 (21:50 +0100)]
Rollup merge of #95017 - zachs18:cmp_ordering_derive_eq, r=Dylan-DPC

Derive Eq for std::cmp::Ordering, instead of using manual impl.

This allows consts of type Ordering to be used in patterns, and with feature(adt_const_params) allows using `Ordering` as a const generic parameter.

Currently, `std::cmp::Ordering` implements `Eq` using a manually written `impl Eq for Ordering {}`, instead of `derive(Eq)`. This means that it does not implement `StructuralEq`.

This commit removes the manually written impl, and adds `derive(Eq)` to `Ordering`, so that it will implement `StructuralEq`.

2 years agoRollup merge of #94993 - GrishaVar:too-many-hashes-test, r=Dylan-DPC
Matthias Krüger [Fri, 18 Mar 2022 20:50:48 +0000 (21:50 +0100)]
Rollup merge of #94993 - GrishaVar:too-many-hashes-test, r=Dylan-DPC

Add test for >65535 hashes in lexing raw string

2 years agoRollup merge of #94848 - GuillaumeGomez:browser-ui-test-version, r=Mark-Simulacrum
Matthias Krüger [Fri, 18 Mar 2022 20:50:47 +0000 (21:50 +0100)]
Rollup merge of #94848 - GuillaumeGomez:browser-ui-test-version, r=Mark-Simulacrum

Compare installed browser-ui-test version to the one used in CI

I happened a few times to run into (local) rustdoc GUI tests errors because I forgot to update my browser-ui-test version. I know at least two others who encountered the same problem so I think emitting a warning to let us know about this version mismatch would make it easier to figure out.

So now, I'm not too sure that this PR is the right approach because it requires to parse a Dockerfile, which feels pretty bad. I had the idea to instead store the browser-ui-test version into a docker ARG like:

```docker
ARG BROWSER_UI_TEST_VERSION=0.8.0
```

And then use it as such in the command to make the parsing more reliable.

Or we could store this version into a file and import this file into the Dockerfile and read it from the builder.

Any preference or maybe another solution?

r? ``@Mark-Simulacrum``

2 years agoRollup merge of #94295 - Urgau:cfg-always-eval-all-predicate, r=petrochenkov
Matthias Krüger [Fri, 18 Mar 2022 20:50:46 +0000 (21:50 +0100)]
Rollup merge of #94295 - Urgau:cfg-always-eval-all-predicate, r=petrochenkov

Always evaluate all cfg predicate in all() and any()

This pull-request adjust the handling of the `all()` and `any()` to always evaluate every cfg predicate because not doing so result in accepting incorrect `cfg`:

```rust
#[cfg(any(unix, foo::bar))] // Should error on foo::bar, but does not on unix platform (but does on non unix platform)
fn foo1() {}

#[cfg(all(foo, foo::bar))] // Should error on foo::bar, but does not
fn foo2() {}

#[cfg(all(foo::bar, foo))] // Correctly error on foo::bar
fn foo3() {}

#[cfg(any(foo::bar, foo))] // Correctly error on foo::bar
fn foo4() {}
```
This pull-request take the side to directly turn it into a hard error instead of having a future incompatibility lint because the combination to get this incorrect behavior is unusual and highly probable that some code have this without noticing.

A [search](https://cs.github.com/?scopeName=All+repos&scope=&q=lang%3Arust+%2Fany%5C%28%5Ba-zA-Z%5D%2C+%5Ba-zA-Z%5D%2B%3A%3A%5Ba-zA-Z%5D%2B%2F) on Github reveal no such instance nevertheless a Crater run should probably be done before merging this.

This was discover in https://github.com/rust-lang/rust/pull/94175 when trying to lint on the second predicate. Also note that this seems to have being introduce with Rust 1.27.0: https://rust.godbolt.org/z/KnfqKv15f.

r? `@petrochenkov`

2 years agoRollup merge of #94115 - scottmcm:iter-process-by-ref, r=yaahc
Matthias Krüger [Fri, 18 Mar 2022 20:50:44 +0000 (21:50 +0100)]
Rollup merge of #94115 - scottmcm:iter-process-by-ref, r=yaahc

Let `try_collect` take advantage of `try_fold` overrides

No public API changes.

With this change, `try_collect` (#94047) is no longer going through the `impl Iterator for &mut impl Iterator`, and thus will be able to use `try_fold` overrides instead of being forced through `next` for every element.

Here's the test added, to see that it fails before this PR (once a new enough nightly is out): https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=462f2896f2fed2c238ee63ca1a7e7c56

This might as well go to the same person as my last `try_process` PR  (#93572), so
r? ``@yaahc``

2 years agoDocument that `Option<extern "abi" fn>` discriminant elision applies for any ABI
Daniel Henry-Mantilla [Fri, 18 Mar 2022 17:14:34 +0000 (18:14 +0100)]
Document that `Option<extern "abi" fn>` discriminant elision applies for any ABI

The current phrasing was not very clear on that aspect.

2 years agoAuto merge of #95068 - TaKO8Ki:use-create-snapshot-for-diagnostic, r=davidtwco
bors [Fri, 18 Mar 2022 14:50:29 +0000 (14:50 +0000)]
Auto merge of #95068 - TaKO8Ki:use-create-snapshot-for-diagnostic, r=davidtwco

Use `Parser.create_snapshot_for_diagnostic` instead of `Parser.clone()`

Use [`create_snapshot_for_diagnostic`](https://github.com/rust-lang/rust/blob/cd119057160cedea245aa2679add56723f3dc784/compiler/rustc_parse/src/parser/diagnostics.rs#L214-L223) I implemented in https://github.com/rust-lang/rust/pull/94731 instead of `self.clone()` to avoid duplicate unclosed delims errors being emitted when the `Parser` is dropped.

2 years agoAuto merge of #95067 - nnethercote:parse_tt-more-refactoring, r=petrochenkov
bors [Fri, 18 Mar 2022 12:34:05 +0000 (12:34 +0000)]
Auto merge of #95067 - nnethercote:parse_tt-more-refactoring, r=petrochenkov

Still more refactoring of `parse_tt`

r? `@petrochenkov`

2 years agoRun rustdoc GUI tests when browser-ui-test version is updated
Guillaume Gomez [Fri, 18 Mar 2022 09:50:53 +0000 (10:50 +0100)]
Run rustdoc GUI tests when browser-ui-test version is updated

2 years agoCompare installed browser-ui-test version to the one used in CI
Guillaume Gomez [Fri, 11 Mar 2022 14:29:11 +0000 (15:29 +0100)]
Compare installed browser-ui-test version to the one used in CI

2 years agouse `self.create_snapshot_for_diagnostic` instead of `self.clone()`
Takayuki Maeda [Fri, 18 Mar 2022 07:56:43 +0000 (16:56 +0900)]
use `self.create_snapshot_for_diagnostic` instead of `self.clone()`

2 years agoRename `TtSeq` as `TtSlice`.
Nicholas Nethercote [Fri, 18 Mar 2022 06:39:13 +0000 (17:39 +1100)]
Rename `TtSeq` as `TtSlice`.

It's a better name because (a) it holds a slice, and (b) "sequence" has
other meanings in this file.

2 years agoTweak a bunch of comments.
Nicholas Nethercote [Fri, 18 Mar 2022 06:13:41 +0000 (17:13 +1100)]
Tweak a bunch of comments.

I've been staring at these enough lately that they're annoying me, let's
make them better.

2 years agoAuto merge of #95065 - matthiaskrgr:rollup-75i6oz5, r=matthiaskrgr
bors [Fri, 18 Mar 2022 05:26:14 +0000 (05:26 +0000)]
Auto merge of #95065 - matthiaskrgr:rollup-75i6oz5, r=matthiaskrgr

Rollup of 4 pull requests

Successful merges:

 - #95013 (Update browser-ui-test version to 0.8.2)
 - #95039 (Make negative coherence work when there's impl negative on super predicates)
 - #95047 (Refactor: remove an unnecessary pattern for ignoring all parts)
 - #95048 (update Miri)

Failed merges:

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

2 years agoRollup merge of #95048 - RalfJung:miri, r=RalfJung
Matthias Krüger [Fri, 18 Mar 2022 04:21:57 +0000 (05:21 +0100)]
Rollup merge of #95048 - RalfJung:miri, r=RalfJung

update Miri

Let's get those SIMD intrinsics out there. :)
r? `@ghost`

2 years agoRollup merge of #95047 - TaKO8Ki:remove-unnecessary-pattern-for-ignoring-all-parts...
Matthias Krüger [Fri, 18 Mar 2022 04:21:56 +0000 (05:21 +0100)]
Rollup merge of #95047 - TaKO8Ki:remove-unnecessary-pattern-for-ignoring-all-parts, r=wesleywiser

Refactor: remove an unnecessary pattern for ignoring all parts

2 years agoRollup merge of #95039 - spastorino:overlap-super-predicates, r=nikomatsakis
Matthias Krüger [Fri, 18 Mar 2022 04:21:55 +0000 (05:21 +0100)]
Rollup merge of #95039 - spastorino:overlap-super-predicates, r=nikomatsakis

Make negative coherence work when there's impl negative on super predicates

r? `@nikomatsakis`

2 years agoRollup merge of #95013 - GuillaumeGomez:browser-ui-test-v, r=notriddle
Matthias Krüger [Fri, 18 Mar 2022 04:21:54 +0000 (05:21 +0100)]
Rollup merge of #95013 - GuillaumeGomez:browser-ui-test-v, r=notriddle

Update browser-ui-test version to 0.8.2

It brings mostly debugging improvements: it doesn't stop at the first failing command but rather at the first "fatal error".

r? `@notriddle`

2 years agoReorder cases in `parse_tt_inner`.
Nicholas Nethercote [Fri, 18 Mar 2022 03:16:45 +0000 (14:16 +1100)]
Reorder cases in `parse_tt_inner`.

I find the new order easier to read: within a matcher; past the end of a
repetition; at end of input. It also reduces the indentation level by
one for

2 years agoOnly modify `eof_items` if `token == Eof`.
Nicholas Nethercote [Fri, 18 Mar 2022 03:11:01 +0000 (14:11 +1100)]
Only modify `eof_items` if `token == Eof`.

Because that's the condition under which `eof_items` is used.

2 years agoFactor out some code into `MatcherPos::repetition`.
Nicholas Nethercote [Fri, 18 Mar 2022 03:09:02 +0000 (14:09 +1100)]
Factor out some code into `MatcherPos::repetition`.

Also move `create_matches` within `impl MatcherPos`, because it's only
used within that impl block.

2 years agoAuto merge of #88098 - Amanieu:oom_panic, r=nagisa
bors [Fri, 18 Mar 2022 03:01:46 +0000 (03:01 +0000)]
Auto merge of #88098 - Amanieu:oom_panic, r=nagisa

Implement -Z oom=panic

This PR removes the `#[rustc_allocator_nounwind]` attribute on `alloc_error_handler` which allows it to unwind with a panic instead of always aborting. This is then used to implement `-Z oom=panic` as per RFC 2116 (tracking issue #43596).

Perf and binary size tests show negligible impact.

2 years agoAdd two useful assertions.
Nicholas Nethercote [Fri, 18 Mar 2022 01:51:01 +0000 (12:51 +1100)]
Add two useful assertions.

2 years agoAuto merge of #95056 - Dylan-DPC:rollup-swtuw2n, r=Dylan-DPC
bors [Fri, 18 Mar 2022 00:35:19 +0000 (00:35 +0000)]
Auto merge of #95056 - Dylan-DPC:rollup-swtuw2n, r=Dylan-DPC

Rollup of 10 pull requests

Successful merges:

 - #91133 (Improve `unsafe` diagnostic)
 - #93222 (Make ErrorReported impossible to construct outside `rustc_errors`)
 - #93745 (Stabilize ADX target feature)
 - #94309 ([generator_interior] Be more precise with scopes of borrowed places)
 - #94698 (Remove redundant code from copy-suggestions)
 - #94731 (Suggest adding `{ .. }` around a const function call with arguments)
 - #94960 (Fix many spelling mistakes)
 - #94982 (Add deprecated_safe feature gate and attribute, cc #94978)
 - #94997 (debuginfo: Fix ICE when generating name for type that produces a layout error.)
 - #95000 (Fixed wrong type name in comment)

Failed merges:

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

2 years agofeat: Add use of bool::then in sys/unix/process
wcampbell [Thu, 17 Mar 2022 23:12:09 +0000 (19:12 -0400)]
feat: Add use of bool::then in sys/unix/process

Remove else { None } in favor of using bool::then()

2 years agoRollup merge of #95000 - fee1-dead:fee1-dead-patch-1, r=Mark-Simulacrum
Dylan DPC [Thu, 17 Mar 2022 21:55:08 +0000 (22:55 +0100)]
Rollup merge of #95000 - fee1-dead:fee1-dead-patch-1, r=Mark-Simulacrum

Fixed wrong type name in comment

95kth issue/pr!

2 years agoRollup merge of #94997 - michaelwoerister:fix-enum-type-name-layout-error, r=wesleywiser
Dylan DPC [Thu, 17 Mar 2022 21:55:07 +0000 (22:55 +0100)]
Rollup merge of #94997 - michaelwoerister:fix-enum-type-name-layout-error, r=wesleywiser

debuginfo: Fix ICE when generating name for type that produces a layout error.

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

2 years agoRollup merge of #94982 - skippy10110:deprecated_safe, r=Dylan-DPC
Dylan DPC [Thu, 17 Mar 2022 21:55:06 +0000 (22:55 +0100)]
Rollup merge of #94982 - skippy10110:deprecated_safe, r=Dylan-DPC

Add deprecated_safe feature gate and attribute, cc #94978

2 years agoRollup merge of #94960 - codehorseman:master, r=oli-obk
Dylan DPC [Thu, 17 Mar 2022 21:55:05 +0000 (22:55 +0100)]
Rollup merge of #94960 - codehorseman:master, r=oli-obk

Fix many spelling mistakes

Signed-off-by: codehorseman <cricis@yeah.net>
2 years agoRollup merge of #94731 - TaKO8Ki:const-generic-expr-recovery, r=davidtwco,oli-obk
Dylan DPC [Thu, 17 Mar 2022 21:55:04 +0000 (22:55 +0100)]
Rollup merge of #94731 - TaKO8Ki:const-generic-expr-recovery, r=davidtwco,oli-obk

Suggest adding `{ .. }` around a const function call with arguments

closes #91020

2 years agoRollup merge of #94698 - WaffleLapkin:simplify-copy-suggestions, r=estebank
Dylan DPC [Thu, 17 Mar 2022 21:55:03 +0000 (22:55 +0100)]
Rollup merge of #94698 - WaffleLapkin:simplify-copy-suggestions, r=estebank

Remove redundant code from copy-suggestions

Follow up to #94375, just remove some code that is not necessary anymore. This may make the perf of such suggestions a little bit worse, but I don't think this is significant.

r? `@estebank`

2 years agoRollup merge of #94309 - eholk:issue-57017, r=tmandry
Dylan DPC [Thu, 17 Mar 2022 21:55:02 +0000 (22:55 +0100)]
Rollup merge of #94309 - eholk:issue-57017, r=tmandry

[generator_interior] Be more precise with scopes of borrowed places

Previously the generator interior type checking analysis would use the nearest temporary scope as the scope of a borrowed value. This ends up being overly broad for cases such as:

```rust
fn status(_client_status: &Client) -> i16 {
    200
}

fn main() {
    let client = Client;
    let g = move || match status(&client) {
        _status => yield,
    };
    assert_send(g);
}
```

In this case, the borrow `&client` could be considered in scope for the entirety of the `match` expression, meaning it would be viewed as live across the `yield`, therefore making the generator not `Send`.

In most cases, we want to use the enclosing expression as the scope for a borrowed value which will be less than or equal to the nearest temporary scope. This PR changes the analysis to use the enclosing expression as the scope for most borrows, with the exception of borrowed RValues which are true temporary values that should have the temporary scope. There's one further exception where borrows of a copy such as happens in autoref cases also should be ignored despite being RValues.

Joint work with `@nikomatsakis`

Fixes #57017

r? `@tmandry`

2 years agoRollup merge of #93745 - tarcieri:stabilize-adx, r=cjgillot
Dylan DPC [Thu, 17 Mar 2022 21:55:01 +0000 (22:55 +0100)]
Rollup merge of #93745 - tarcieri:stabilize-adx, r=cjgillot

Stabilize ADX target feature

This is a continuation of #60109, which noted that while the ADX intrinsics were stabilized, the corresponding target feature never was.

This PR follows the same general structure and stabilizes the ADX target feature.

See also https://github.com/rust-lang/rust/issues/44839 - tracking issue for target feature

2 years agoRollup merge of #93222 - mark-i-m:errorreported, r=oli-obk
Dylan DPC [Thu, 17 Mar 2022 21:55:00 +0000 (22:55 +0100)]
Rollup merge of #93222 - mark-i-m:errorreported, r=oli-obk

Make ErrorReported impossible to construct outside `rustc_errors`

There are a few places were we have to construct it, though, and a few
places that are more invasive to change. To do this, we create a
constructor with a long obvious name.

cc #69426 `@varkor` `@eddyb` `@estebank`

I actually didn't see that I was assigned to this issue until now...

2 years agoRollup merge of #91133 - terrarier2111:unsafe-diagnostic, r=jackh726
Dylan DPC [Thu, 17 Mar 2022 21:54:59 +0000 (22:54 +0100)]
Rollup merge of #91133 - terrarier2111:unsafe-diagnostic, r=jackh726

Improve `unsafe` diagnostic

This fixes: https://github.com/rust-lang/rust/issues/90880
I didn't use the exact proposed messages though.

2 years agoAuto merge of #95020 - compiler-errors:late-debuginfo, r=jackh726
bors [Thu, 17 Mar 2022 21:54:25 +0000 (21:54 +0000)]
Auto merge of #95020 - compiler-errors:late-debuginfo, r=jackh726

erase late-bound regions in dyn projection types for debuginfo

simply skipping the binder leaves late-bound regions that will cause debug assertions to fail when checking the layout of the projection ty, so let's erase the regions instead.

sorry for taking so long to put this up, had trouble getting rustc set up on a new computer.

fixes #94998

2 years agoUpdate compiler/rustc_trait_selection/src/traits/coherence.rs
Niko Matsakis [Thu, 17 Mar 2022 20:51:30 +0000 (16:51 -0400)]
Update compiler/rustc_trait_selection/src/traits/coherence.rs

2 years agoAuto merge of #95050 - ehuss:fix-cmake-build, r=Mark-Simulacrum
bors [Thu, 17 Mar 2022 18:52:14 +0000 (18:52 +0000)]
Auto merge of #95050 - ehuss:fix-cmake-build, r=Mark-Simulacrum

Fix cmake build.

This is an attempt to fix the cmake build. For some reason, it has recently started failing with a permission denied trying to overwrite `/tmp/build.log`.  This file exists from the `build-toolchains.sh` step, which is owned by the rustbuild user. I think there is some behavior where a sticky `/tmp` directory doesn't allow overwriting files owned by other users even when running as root.  I do not know why this has suddenly started, and I can't reproduce locally with my own docker setup. However, this fix seems to work on CI.

2 years agoFix cmake build.
Eric Huss [Thu, 17 Mar 2022 18:43:38 +0000 (11:43 -0700)]
Fix cmake build.

2 years agoupdate Miri
Ralf Jung [Thu, 17 Mar 2022 18:27:42 +0000 (14:27 -0400)]
update Miri

2 years agoUse let else here
Santiago Pastorino [Thu, 17 Mar 2022 17:55:16 +0000 (14:55 -0300)]
Use let else here

2 years agorefactor: remove an unnecessary pattern for ignoring all parts
Takayuki Maeda [Thu, 17 Mar 2022 17:54:06 +0000 (02:54 +0900)]
refactor: remove an unnecessary pattern for ignoring all parts

2 years agoAdd more commments
Santiago Pastorino [Thu, 17 Mar 2022 15:37:18 +0000 (12:37 -0300)]
Add more commments

2 years agoThis test now works
Santiago Pastorino [Thu, 17 Mar 2022 15:36:12 +0000 (12:36 -0300)]
This test now works

2 years agoExtract obligation resolution to function
Santiago Pastorino [Thu, 17 Mar 2022 15:09:00 +0000 (12:09 -0300)]
Extract obligation resolution to function

2 years agoMake negative coherence work when there's impl negative on super predicates
Santiago Pastorino [Thu, 17 Mar 2022 14:26:45 +0000 (11:26 -0300)]
Make negative coherence work when there's impl negative on super predicates

2 years agoAdd comments on Polarity
Santiago Pastorino [Thu, 17 Mar 2022 14:10:19 +0000 (11:10 -0300)]
Add comments on Polarity

2 years agoRun GUI test when browser-ui-test version is updated
Guillaume Gomez [Wed, 16 Mar 2022 21:22:16 +0000 (22:22 +0100)]
Run GUI test when browser-ui-test version is updated

2 years agoUpdate browser-ui-test version to 0.8.3
Guillaume Gomez [Wed, 16 Mar 2022 15:18:47 +0000 (16:18 +0100)]
Update browser-ui-test version to 0.8.3

2 years agoAdd test for StructuralEq for std::cmp::Ordering.
Zachary S [Wed, 16 Mar 2022 19:01:48 +0000 (14:01 -0500)]
Add test for StructuralEq for std::cmp::Ordering.

Added test in library/core/tests/cmp.rs that ensures that `const`s of type `Ordering`s can be used in patterns.

2 years agoerase late-bound regions in dyn projection types for debuginfo
Michael Goulet [Wed, 16 Mar 2022 18:53:31 +0000 (11:53 -0700)]
erase late-bound regions in dyn projection types for debuginfo

2 years agoAdd double negative trait test case
Santiago Pastorino [Wed, 16 Mar 2022 17:59:03 +0000 (14:59 -0300)]
Add double negative trait test case

2 years agoDerive Eq for std::cmp::Ordering, instead of using manual impl.
Zachary S [Wed, 16 Mar 2022 16:36:31 +0000 (11:36 -0500)]
Derive Eq for std::cmp::Ordering, instead of using manual impl.

This allows consts of type Ordering to be used in patterns, and (with feature(adt_const_params)) allows using Orderings as const generic parameters.

2 years agorustc_error: make ErrorReported impossible to construct
mark [Sun, 23 Jan 2022 00:49:12 +0000 (18:49 -0600)]
rustc_error: make ErrorReported impossible to construct

There are a few places were we have to construct it, though, and a few
places that are more invasive to change. To do this, we create a
constructor with a long obvious name.

2 years agodebuginfo: Fix ICE when generating name for type that produces a layout error.
Michael Woerister [Wed, 16 Mar 2022 10:03:07 +0000 (11:03 +0100)]
debuginfo: Fix ICE when generating name for type that produces a layout error.

2 years agoresolve the conflict in compiler/rustc_session/src/parse.rs
codehorseman [Wed, 16 Mar 2022 12:12:30 +0000 (20:12 +0800)]
resolve the conflict in compiler/rustc_session/src/parse.rs

Signed-off-by: codehorseman <cricis@yeah.net>
2 years agoUpdate issue-92111.rs
fee1-dead [Wed, 16 Mar 2022 10:50:18 +0000 (21:50 +1100)]
Update issue-92111.rs

2 years agoAuto merge of #94995 - luojia65:riscv-more-features, r=Amanieu
bors [Wed, 16 Mar 2022 10:16:33 +0000 (10:16 +0000)]
Auto merge of #94995 - luojia65:riscv-more-features, r=Amanieu

Support more RISC-V backend features on rustc compiler

This pull request adds the following RISC-V compiler features:

- V for vector extension
- Zfinx, Zdinx, Zhinx and Zhinxmin float in integer register extensions
- Zfh, Zfhmin 16-bit float pointer extensions
- Zbkb, Zkbc, Zbkc, Zk* cryptography extensions

It matches name in LLVM feature and is_riscv_feature_detected!. In this case we can use `#[target_feature]` on new RISC-V features. Ref: https://github.com/rust-lang/stdarch/pull/1263#pullrequestreview-825891905

Use `rustc --print target-features` under any RISC-V target (or with `--target`) to check the features the rustc compiler support.

<details>

```
luojia@luojia-virtual-machine:~/IntrinRiscv/stdarch-riscv-crypto$ cargo rustc -- --print target-features
   Compiling stdarch-riscv-crypto v0.1.0 (/home/luojia/IntrinRiscv/stdarch-riscv-crypto)
Features supported by rustc for this target:
    m                - 'M' (Integer Multiplication and Division).
    a                - 'A' (Atomic Instructions).
    c                - 'C' (Compressed Instructions).
    f                - 'F' (Single-Precision Floating-Point).
    d                - 'D' (Double-Precision Floating-Point).
    e                - Implements RV32E (provides 16 rather than 32 GPRs).
    v                - 'V' (Vector Extension for Application Processors).
    zfinx            - 'Zfinx' (Float in Integer).
    zdinx            - 'Zdinx' (Double in Integer).
    zhinx            - 'Zhinx' (Half Float in Integer).
    zhinxmin         - 'Zhinxmin' (Half Float in Integer Minimal).
    zfh              - 'Zfh' (Half-Precision Floating-Point).
    zfhmin           - 'Zfhmin' (Half-Precision Floating-Point Minimal).
    zbkb             - 'Zbkb' (Bitmanip instructions for Cryptography).
    zbkc             - 'Zbkc' (Carry-less multiply instructions for Cryptography).
    zbkx             - 'Zbkx' (Crossbar permutation instructions).
    zknd             - 'Zknd' (NIST Suite: AES Decryption).
    zkne             - 'Zkne' (NIST Suite: AES Encryption).
    zknh             - 'Zknh' (NIST Suite: Hash Function Instructions).
    zksed            - 'Zksed' (ShangMi Suite: SM4 Block Cipher Instructions).
    zksh             - 'Zksh' (ShangMi Suite: SM3 Hash Function Instructions).
    zkr              - 'Zkr' (Entropy Source Extension).
    zkn              - 'Zkn' (NIST Algorithm Suite).
    zks              - 'Zks' (ShangMi Algorithm Suite).
    zk               - 'Zk' (Standard scalar cryptography extension).
    zkt              - 'Zkt' (Data Independent Execution Latency).
    crt-static       - Enables C Run-time Libraries to be statically linked.

Code-generation features supported by LLVM for this target:
    64bit            - Implements RV64.
    experimental-zbe - 'Zbe' (Extract-Deposit 'Zb' Instructions).
    experimental-zbf - 'Zbf' (Bit-Field 'Zb' Instructions).
    experimental-zbm - 'Zbm' (Matrix 'Zb' Instructions).
    experimental-zbp - 'Zbp' (Permutation 'Zb' Instructions).
    experimental-zbr - 'Zbr' (Polynomial Reduction 'Zb' Instructions).
    experimental-zbt - 'Zbt' (Ternary 'Zb' Instructions).
    no-rvc-hints     - Disable RVC Hint Instructions..
    relax            - Enable Linker relaxation..
    reserve-x1       - Reserve X1.
    reserve-x10      - Reserve X10.
    reserve-x11      - Reserve X11.
    reserve-x12      - Reserve X12.
    reserve-x13      - Reserve X13.
    reserve-x14      - Reserve X14.
    reserve-x15      - Reserve X15.
    reserve-x16      - Reserve X16.
    reserve-x17      - Reserve X17.
    reserve-x18      - Reserve X18.
    reserve-x19      - Reserve X19.
    reserve-x2       - Reserve X2.
    reserve-x20      - Reserve X20.
    reserve-x21      - Reserve X21.
    reserve-x22      - Reserve X22.
    reserve-x23      - Reserve X23.
    reserve-x24      - Reserve X24.
    reserve-x25      - Reserve X25.
    reserve-x26      - Reserve X26.
    reserve-x27      - Reserve X27.
    reserve-x28      - Reserve X28.
    reserve-x29      - Reserve X29.
    reserve-x3       - Reserve X3.
    reserve-x30      - Reserve X30.
    reserve-x31      - Reserve X31.
    reserve-x4       - Reserve X4.
    reserve-x5       - Reserve X5.
    reserve-x6       - Reserve X6.
    reserve-x7       - Reserve X7.
    reserve-x8       - Reserve X8.
    reserve-x9       - Reserve X9.
    save-restore     - Enable save/restore..
    sifive7          - SiFive 7-Series processors.
    zba              - 'Zba' (Address Generation Instructions).
    zbb              - 'Zbb' (Basic Bit-Manipulation).
    zbc              - 'Zbc' (Carry-Less Multiplication).
    zbs              - 'Zbs' (Single-Bit Instructions).
    zve32f           - 'Zve32f' (Vector Extensions for Embedded Processors with maximal 32 EEW and F extension).
    zve32x           - 'Zve32x' (Vector Extensions for Embedded Processors with maximal 32 EEW).
    zve64d           - 'Zve64d' (Vector Extensions for Embedded Processors with maximal 64 EEW, F and D extension).
    zve64f           - 'Zve64f' (Vector Extensions for Embedded Processors with maximal 64 EEW and F extension).
    zve64x           - 'Zve64x' (Vector Extensions for Embedded Processors with maximal 64 EEW).
    zvl1024b         - 'Zvl' (Minimum Vector Length) 1024.
    zvl128b          - 'Zvl' (Minimum Vector Length) 128.
    zvl16384b        - 'Zvl' (Minimum Vector Length) 16384.
    zvl2048b         - 'Zvl' (Minimum Vector Length) 2048.
    zvl256b          - 'Zvl' (Minimum Vector Length) 256.
    zvl32768b        - 'Zvl' (Minimum Vector Length) 32768.
    zvl32b           - 'Zvl' (Minimum Vector Length) 32.
    zvl4096b         - 'Zvl' (Minimum Vector Length) 4096.
    zvl512b          - 'Zvl' (Minimum Vector Length) 512.
    zvl64b           - 'Zvl' (Minimum Vector Length) 64.
    zvl8192b         - 'Zvl' (Minimum Vector Length) 8192.

Use +feature to enable a feature, or -feature to disable it.
For example, rustc -C target-cpu=mycpu -C target-feature=+feature1,-feature2

Code-generation features cannot be used in cfg or #[target_feature],
and may be renamed or removed in a future version of LLVM or rustc.

    Finished dev [unoptimized + debuginfo] target(s) in 0.03s
```
</details>

Proof of concept:

<details>

```rust
#![feature(link_llvm_intrinsics)]
#![feature(target_feature_11)]
#![feature(riscv_target_feature)]

extern "C" {
    #[link_name = "llvm.riscv.sm3p0"]
    fn llvm_sm3p0(x: u32) -> u32;
    #[link_name = "llvm.riscv.sm3p1"]
    fn llvm_sm3p1(x: u32) -> u32;
}

#[target_feature(enable = "zksh")]
pub unsafe fn sm3p0(x: u32) -> u32 {
    unsafe { llvm_sm3p0(x) }
}

extern "C" {
    #[link_name = "llvm.riscv.vsetvli"]
    fn llvm_vsetvli(avl: usize, sew: usize, lmul: usize) -> usize;
    #[link_name = "llvm.riscv.vsetvlimax"]
    fn llvm_vsetvlimax(sew: usize, lmul: usize) -> usize;
}

#[target_feature(enable = "v")]
pub unsafe fn vsetvli<const SEW: usize, const LMUL: usize>(avl: usize) -> usize {
    unsafe { llvm_vsetvli(avl, SEW, LMUL) }
}
```
</details>

r? `@Amanieu`

2 years agofeat: more RISC-V features
luojia65 [Wed, 16 Mar 2022 08:57:36 +0000 (16:57 +0800)]
feat: more RISC-V features

These features include:
- V for vector extension
- Zfinx, Zdinx, Zhinx and Zhinxmin float in integer register extensions
- Zfh, Zfhmin 16-bit float pointer extensions
- Zbkb, Zkbc, Zbkc, Zk* cryptography extensions

It matches name in LLVM feature and is_riscv_feature_detected!.

2 years agoAuto merge of #94990 - ehuss:update-books, r=ehuss
bors [Wed, 16 Mar 2022 06:19:54 +0000 (06:19 +0000)]
Auto merge of #94990 - ehuss:update-books, r=ehuss

Update books

## reference

8 commits in 9d289c05fce7254b99c6a0d354d84abb7fd7a032..0a2fe6651fbccc6416c5110fdf5b93fb3cb29247
2022-02-23 08:58:20 -0800 to 2022-03-15 09:32:25 -0700
- Documentation PR for cfg_panic (rust-lang/reference#1157)
- Document aarch64 `target_feature` options (rust-lang/reference#1102)
- Try to clarify destructor not being run scenario. (rust-lang/reference#1107)
- Add undocumented Punctuation token Tilde `~` (rust-lang/reference#1149)
- update UB list for safe target_feature (rust-lang/reference#1050)
- Update const_eval.md for feature stabilization (rust-lang/reference#1166)
- Remove `.intel_syntax`/`.att_syntax` support entirely.
- Fix `.intel_syntax` directive

## book

3 commits in 3f255ed40b8c82a0434088568fbed270dc31bf00..036e88a4f135365de85358febe5324976a56030a
2022-02-27 21:26:12 -0500 to 2022-03-04 21:53:33 -0500
- Fix some links and small wordings
- Snapshot of chapter 19 for nostarch
- Clarify fully-qualified syntax explanation

## rust-by-example

2 commits in 2a928483a20bb306a7399c0468234db90d89afb5..d504324f1e7dc7edb918ac39baae69f1f1513b8e
2022-02-28 11:36:59 -0300 to 2022-03-07 09:26:32 -0300
- Fixed extra indentation at line 43 in Phantom Testcase example. (rust-lang/rust-by-example#1515)
- Typo fixed in description of inline ASM cpuid function (rust-lang/rust-by-example#1514)

## rustc-dev-guide

3 commits in 32f2a5b4e7545318846185198542230170dd8a42..0e4b961a9c708647bca231430ce1b199993e0196
2022-03-01 10:45:24 -0600 to 2022-03-14 08:40:37 -0700
- update winget install instructions to ensure proper packages are installed (-e for --exact, and full package names to ensure arbitrary packages from
the msstore source aren't installed)
- Add missing rustdoc tests explanations
- Fix incorrectly escaped backtick

2 years agoAdd test for >65535 hashes in lexing raw string
Grisha [Wed, 16 Mar 2022 05:37:41 +0000 (06:37 +0100)]
Add test for >65535 hashes in lexing raw string

2 years agoAuto merge of #94987 - Dylan-DPC:rollup-5tssuhi, r=Dylan-DPC
bors [Wed, 16 Mar 2022 04:05:35 +0000 (04:05 +0000)]
Auto merge of #94987 - Dylan-DPC:rollup-5tssuhi, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #94868 (Format core and std macro rules, removing needless surrounding blocks)
 - #94951 (Extend the irrefutable_let_patterns lint to let chains)
 - #94955 (Refactor: Use `format_args_capture` in some parts of `rustc_parse`)
 - #94957 (Improve the explanation about the behaviour of read_line)
 - #94974 (Ensure that `let_else` does not interact with `let_chains`)

Failed merges:

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

2 years agoUpdate books
Eric Huss [Wed, 16 Mar 2022 03:42:35 +0000 (20:42 -0700)]
Update books

2 years agoRollup merge of #94974 - c410-f3r:let-chain-dashufwrqwemkf-let-else, r=joshtriplett
Dylan DPC [Wed, 16 Mar 2022 02:34:35 +0000 (03:34 +0100)]
Rollup merge of #94974 - c410-f3r:let-chain-dashufwrqwemkf-let-else, r=joshtriplett

Ensure that `let_else` does not interact with `let_chains`

As requested on https://github.com/rust-lang/rust/pull/94927.

cc `@joshtriplett` `@estebank`

2 years agoRollup merge of #94957 - iamzhangyong:explanation-read_line, r=Dylan-DPC
Dylan DPC [Wed, 16 Mar 2022 02:34:34 +0000 (03:34 +0100)]
Rollup merge of #94957 - iamzhangyong:explanation-read_line, r=Dylan-DPC

Improve the explanation about the behaviour of read_line

Close issue like https://github.com/rust-lang/book/issues/2574

2 years agoRollup merge of #94955 - TaKO8Ki:use-format-args-capture-in-rustc-parse, r=Dylan-DPC
Dylan DPC [Wed, 16 Mar 2022 02:34:33 +0000 (03:34 +0100)]
Rollup merge of #94955 - TaKO8Ki:use-format-args-capture-in-rustc-parse, r=Dylan-DPC

Refactor: Use `format_args_capture` in some parts of `rustc_parse`

2 years agoRollup merge of #94951 - est31:irrefutable_let_chain_patterns, r=estebank
Dylan DPC [Wed, 16 Mar 2022 02:34:32 +0000 (03:34 +0100)]
Rollup merge of #94951 - est31:irrefutable_let_chain_patterns, r=estebank

Extend the irrefutable_let_patterns lint to let chains

Implements the suggestion from https://github.com/rust-lang/rust/pull/94927#issuecomment-1067078300

We only look for complete suffixes or prefixes of irrefutable let patterns, so
that an irrefutable let pattern in a chain surrounded by refutable ones is
not linted, as it is an useful pattern that has no low-cost replacement (unlike suffixes or prefixes which can just be copied outside of the `if`: either into the `if`'s block, or the block surrounding the `if`).
If all patterns in a let chain are irrefutable, we lint as well.

Depends on #94958 ~~so I included it into the PR for now~~ *which has been merged since*.

r? `@estebank`

cc `@joshtriplett` `@c410-f3r`

2 years agoRollup merge of #94868 - dtolnay:noblock, r=Dylan-DPC
Dylan DPC [Wed, 16 Mar 2022 02:34:32 +0000 (03:34 +0100)]
Rollup merge of #94868 - dtolnay:noblock, r=Dylan-DPC

Format core and std macro rules, removing needless surrounding blocks

Many of the asserting and printing macros in `core` and `std` are written with prehistoric-looking formatting, like this:

https://github.com/rust-lang/rust/blob/335ffbfa547df94ac236f5c56130cecf99c8d82b/library/std/src/macros.rs#L96-L101

In modern Rust style this would conventionally be written as follows instead, always using braces and a trailing semicolon on the macro arms:

https://github.com/rust-lang/rust/blob/af53809c874e0afb7be966df4d3cfcaa05277c53/library/std/src/macros.rs#L98-L105

Getting rid of the unneeded braces inside the expansion reduces extraneous indentation in macro-expanded code. For example:

```rust
println!("repro {}", true);
```

```rust
// before:

{
    ::std::io::_print(
        ::core::fmt::Arguments::new_v1(
            &["repro ", "\n"],
            &[::core::fmt::ArgumentV1::new_display(&true)],
        ),
    );
};
```

```rust
// after:

::std::io::_print(
    ::core::fmt::Arguments::new_v1(
        &["repro ", "\n"],
        &[::core::fmt::ArgumentV1::new_display(&true)],
    ),
);
```

2 years agochanged wording
Dylan DPC [Wed, 16 Mar 2022 02:04:40 +0000 (03:04 +0100)]
changed wording

2 years agoAuto merge of #94861 - aDotInTheVoid:rdj-trait-tests, r=CraftSpider
bors [Wed, 16 Mar 2022 01:24:37 +0000 (01:24 +0000)]
Auto merge of #94861 - aDotInTheVoid:rdj-trait-tests, r=CraftSpider

rustdoc-json: More tests, and better jsondocck errors

Helps with #81359

r? `@CraftSpider`

`@rustbot` modify labels: +A-rustdoc-json +T-rustdoc +A-testsuite

2 years agoBless coverage-reports after core macro blocks change
David Tolnay [Wed, 16 Mar 2022 01:10:44 +0000 (18:10 -0700)]
Bless coverage-reports after core macro blocks change

2 years agoExtend the irrefutable_let_patterns lint to let chains
est31 [Tue, 15 Mar 2022 02:48:53 +0000 (03:48 +0100)]
Extend the irrefutable_let_patterns lint to let chains

Only look for complete suffixes or prefixes of irrefutable let patterns, so
that an irrefutable let pattern in a chain surrounded by refutable ones is
not linted, as it is an useful pattern.

2 years agoAuto merge of #94925 - lcnr:relax-sus-auto-impls, r=estebank
bors [Tue, 15 Mar 2022 22:54:35 +0000 (22:54 +0000)]
Auto merge of #94925 - lcnr:relax-sus-auto-impls, r=estebank

relax `suspicious_auto_trait_impls` lint wrt lifetimes

fixes the warning for https://github.com/rust-lang/rust/issues/93367#issuecomment-1063993489.

2 years agoAdd deprecated_safe feature gate and attribute, cc #94978
skippy10110 [Tue, 15 Mar 2022 22:28:53 +0000 (19:28 -0300)]
Add deprecated_safe feature gate and attribute, cc #94978

2 years agoAuto merge of #94973 - GuillaumeGomez:more-gui-tests, r=notriddle
bors [Tue, 15 Mar 2022 20:13:35 +0000 (20:13 +0000)]
Auto merge of #94973 - GuillaumeGomez:more-gui-tests, r=notriddle

Add GUI test to check URLs

The first commit merges both file doing kinda the same thing. Didn't make much sense to keep them separated.

The second commit add checks to ensure the URL has the expected value depending if the search is displayed or not.

r? `@notriddle`

2 years agoEnsure that `let_else` does not interact with `let_chains`
Caio [Tue, 15 Mar 2022 20:00:16 +0000 (17:00 -0300)]
Ensure that `let_else` does not interact with `let_chains`

2 years agoAdd URL GUI tests
Guillaume Gomez [Tue, 15 Mar 2022 19:56:14 +0000 (20:56 +0100)]
Add URL GUI tests

2 years agoMerge both "search-result-color" GUI tests
Guillaume Gomez [Tue, 15 Mar 2022 19:41:24 +0000 (20:41 +0100)]
Merge both "search-result-color" GUI tests

2 years agorustdoc-json: Lifetime tests
Nixon Enraght-Moony [Fri, 11 Mar 2022 19:11:23 +0000 (19:11 +0000)]
rustdoc-json: Lifetime tests

2 years agojsondocck: Better error for invalid @count number
Nixon Enraght-Moony [Thu, 10 Mar 2022 15:55:38 +0000 (15:55 +0000)]
jsondocck: Better error for invalid @count number

2 years agorustdoc-json: Add tests for generic fn args and returns
Nixon Enraght-Moony [Thu, 10 Mar 2022 15:53:48 +0000 (15:53 +0000)]
rustdoc-json: Add tests for generic fn args and returns

2 years agojsondocck: better error for when @set matches multiple items
Nixon Enraght-Moony [Fri, 25 Feb 2022 15:27:11 +0000 (15:27 +0000)]
jsondocck: better error for when @set matches multiple items

2 years agorustdoc-json: Add test for supertraits
Nixon Enraght-Moony [Sun, 20 Feb 2022 22:51:05 +0000 (22:51 +0000)]
rustdoc-json: Add test for supertraits

2 years agoAuto merge of #94966 - matthiaskrgr:rollup-iqzswh3, r=matthiaskrgr
bors [Tue, 15 Mar 2022 16:26:10 +0000 (16:26 +0000)]
Auto merge of #94966 - matthiaskrgr:rollup-iqzswh3, r=matthiaskrgr

Rollup of 4 pull requests

Successful merges:

 - #94810 (debuginfo: Fix bug in type name generation for dyn types with associated types but no other generic arguments.)
 - #94947 (fix typos)
 - #94956 (Fix small typo in FIXME)
 - #94958 (Support other types of pluralization in pluralize macro)

Failed merges:

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

2 years agoRollup merge of #94958 - est31:pluralize, r=oli-obk
Matthias Krüger [Tue, 15 Mar 2022 16:15:55 +0000 (17:15 +0100)]
Rollup merge of #94958 - est31:pluralize, r=oli-obk

Support other types of pluralization in pluralize macro

2 years agoRollup merge of #94956 - martingms:fix-fixme-comment-typo, r=lqd
Matthias Krüger [Tue, 15 Mar 2022 16:15:54 +0000 (17:15 +0100)]
Rollup merge of #94956 - martingms:fix-fixme-comment-typo, r=lqd

Fix small typo in FIXME

I introduced a few small typos when linking to an optimizing PR, this PR fixes them.

r? `@lqd`