]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agodon't call multipart_suggestion
ouz-a [Sat, 12 Mar 2022 15:51:28 +0000 (18:51 +0300)]
don't call multipart_suggestion

2 years agofix
ouz-a [Mon, 7 Mar 2022 18:55:58 +0000 (21:55 +0300)]
fix

2 years agoAuto merge of #94690 - nnethercote:clarify-Layout-interning, r=fee1-dead
bors [Mon, 7 Mar 2022 15:25:42 +0000 (15:25 +0000)]
Auto merge of #94690 - nnethercote:clarify-Layout-interning, r=fee1-dead

Clarify `Layout` interning.

`Layout` is another type that is sometimes interned, sometimes not, and
we always use references to refer to it so we can't take any advantage
of the uniqueness properties for hashing or equality checks.

This commit renames `Layout` as `LayoutS`, and then introduces a new
`Layout` that is a newtype around an `Interned<LayoutS>`. It also
interns more layouts than before. Previously layouts within layouts
(via the `variants` field) were never interned, but now they are. Hence
the lifetime on the new `Layout` type.

Unlike other interned types, these ones are in `rustc_target` instead of
`rustc_middle`. This reflects the existing structure of the code, which
does layout-specific stuff in `rustc_target` while `TyAndLayout` is
generic over the `Ty`, allowing the type-specific stuff to occur in
`rustc_middle`.

The commit also adds a `HashStable` impl for `Interned`, which was
needed. It hashes the contents, unlike the `Hash` impl which hashes the
pointer.

r? `@fee1-dead`

2 years agoAuto merge of #94695 - matthiaskrgr:rollup-5pi3acz, r=matthiaskrgr
bors [Mon, 7 Mar 2022 13:02:31 +0000 (13:02 +0000)]
Auto merge of #94695 - matthiaskrgr:rollup-5pi3acz, r=matthiaskrgr

Rollup of 4 pull requests

Successful merges:

 - #94553 (add tests for #94502)
 - #94614 (Remove ordering traits from `rustc_span::hygiene::LocalExpnId`)
 - #94685 (interpret: move saturating_add/sub into (pub) helper method)
 - #94688 (Erase regions when checking for missing Copy predicates)

Failed merges:

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

2 years agoRollup merge of #94688 - compiler-errors:free-regions-in-copy-predicate-check, r...
Matthias Krüger [Mon, 7 Mar 2022 10:35:58 +0000 (11:35 +0100)]
Rollup merge of #94688 - compiler-errors:free-regions-in-copy-predicate-check, r=oli-obk

Erase regions when checking for missing Copy predicates

Fixes #94662

2 years agoRollup merge of #94685 - RalfJung:saturating, r=oli-obk
Matthias Krüger [Mon, 7 Mar 2022 10:35:57 +0000 (11:35 +0100)]
Rollup merge of #94685 - RalfJung:saturating, r=oli-obk

interpret: move saturating_add/sub into (pub) helper method

I plan to use them for `simd_saturating_add/sub`.

The first commit just moves code, the 2nd simplifies it a bit with some helper methods that did not exist yet when the code was originally written.

2 years agoRollup merge of #94614 - pierwill:localexpnid-noord, r=lcnr
Matthias Krüger [Mon, 7 Mar 2022 10:35:56 +0000 (11:35 +0100)]
Rollup merge of #94614 - pierwill:localexpnid-noord, r=lcnr

Remove ordering traits from `rustc_span::hygiene::LocalExpnId`

Part of work on #90317.

Also adds a negative impl block as a form of documentation and a roadblock to regression.

2 years agoRollup merge of #94553 - lcnr:add-tests, r=Dylan-DPC
Matthias Krüger [Mon, 7 Mar 2022 10:35:55 +0000 (11:35 +0100)]
Rollup merge of #94553 - lcnr:add-tests, r=Dylan-DPC

add tests for #94502

cc #94552

2 years agoAuto merge of #94692 - matthiaskrgr:rollup-64p7ya7, r=matthiaskrgr
bors [Mon, 7 Mar 2022 07:29:08 +0000 (07:29 +0000)]
Auto merge of #94692 - matthiaskrgr:rollup-64p7ya7, r=matthiaskrgr

Rollup of 4 pull requests

Successful merges:

 - #94636 (Check extra function arg exprs even if the fn is not C-variadic)
 - #94676 (Remove unnecessary `..` patterns)
 - #94681 (CTFE engine: expose misc_cast to Miri)
 - #94684 (Fix rustdoc for GATs with with anonymous bound regions)

Failed merges:

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

2 years agoadd tests for #94502
lcnr [Thu, 3 Mar 2022 10:57:14 +0000 (11:57 +0100)]
add tests for #94502

2 years agoRollup merge of #94684 - compiler-errors:gat-anon-late-bound, r=notriddle
Matthias Krüger [Mon, 7 Mar 2022 05:44:05 +0000 (06:44 +0100)]
Rollup merge of #94684 - compiler-errors:gat-anon-late-bound, r=notriddle

Fix rustdoc for GATs with with anonymous bound regions

Just use the logic that already worked for cleaning trait refs.

Fixes #94683

2 years agoRollup merge of #94681 - RalfJung:miri-cast, r=oli-obk
Matthias Krüger [Mon, 7 Mar 2022 05:44:04 +0000 (06:44 +0100)]
Rollup merge of #94681 - RalfJung:miri-cast, r=oli-obk

CTFE engine: expose misc_cast to Miri

We need that to implement `simd_cast`/`simd_as` in Miri.

While at it, also change other code outside `cast.rs` to use `misc_cast` instead of lower-level methods.

r? `@oli-obk`

2 years agoRollup merge of #94676 - TaKO8Ki:remove-unnecessary-pattens-for-ignoring-remaining...
Matthias Krüger [Mon, 7 Mar 2022 05:44:03 +0000 (06:44 +0100)]
Rollup merge of #94676 - TaKO8Ki:remove-unnecessary-pattens-for-ignoring-remaining-parts, r=Dylan-DPC

Remove unnecessary `..` patterns

This patch removes unnecessary `..` patterns.

2 years agoRollup merge of #94636 - compiler-errors:issue-94599, r=davidtwco
Matthias Krüger [Mon, 7 Mar 2022 05:44:02 +0000 (06:44 +0100)]
Rollup merge of #94636 - compiler-errors:issue-94599, r=davidtwco

Check extra function arg exprs even if the fn is not C-variadic

We should still call check_expr on the args that exceed the formal input ty count, so that we have expr types to emit during writeback.

Not sure where this regressed, but it wasn't due to the same root cause as #94334 I think. I thought this might've regressed in #92360, but I think that is in stable, ad the test I provided (which minimizes #94599) passes on stable in playground. Maybe it regressed in #93118.

Anywho, fixes #94599.

2 years agoAuto merge of #94272 - tavianator:readdir-reclen-for-real, r=cuviper
bors [Mon, 7 Mar 2022 04:48:23 +0000 (04:48 +0000)]
Auto merge of #94272 - tavianator:readdir-reclen-for-real, r=cuviper

fs: Don't dereference a pointer to a too-small allocation

ptr::addr_of!((*ptr).field) still requires ptr to point to an
appropriate allocation for its type.  Since the pointer returned by
readdir() can be smaller than sizeof(struct dirent), we need to entirely
avoid dereferencing it as that type.

Link: https://github.com/rust-lang/miri/pull/1981#issuecomment-1048278492
Link: https://github.com/rust-lang/rust/pull/93459#discussion_r795089971
2 years agoClarify `Layout` interning.
Nicholas Nethercote [Fri, 4 Mar 2022 02:46:56 +0000 (13:46 +1100)]
Clarify `Layout` interning.

`Layout` is another type that is sometimes interned, sometimes not, and
we always use references to refer to it so we can't take any advantage
of the uniqueness properties for hashing or equality checks.

This commit renames `Layout` as `LayoutS`, and then introduces a new
`Layout` that is a newtype around an `Interned<LayoutS>`. It also
interns more layouts than before. Previously layouts within layouts
(via the `variants` field) were never interned, but now they are. Hence
the lifetime on the new `Layout` type.

Unlike other interned types, these ones are in `rustc_target` instead of
`rustc_middle`. This reflects the existing structure of the code, which
does layout-specific stuff in `rustc_target` while `TyAndLayout` is
generic over the `Ty`, allowing the type-specific stuff to occur in
`rustc_middle`.

The commit also adds a `HashStable` impl for `Interned`, which was
needed. It hashes the contents, unlike the `Hash` impl which hashes the
pointer.

2 years agoAuto merge of #94638 - erikdesjardins:noextranull, r=nagisa
bors [Mon, 7 Mar 2022 02:07:36 +0000 (02:07 +0000)]
Auto merge of #94638 - erikdesjardins:noextranull, r=nagisa

cleanup: remove unused ability to have LLVM null-terminate const strings

(and the copied function in rustc_codegen_gcc)

Noticed this while writing https://github.com/rust-lang/rust/pull/94450#issuecomment-1059687348.

r? `@nagisa`

2 years agoErase regions when checking for missing Copy predicates
Michael Goulet [Mon, 7 Mar 2022 01:21:39 +0000 (17:21 -0800)]
Erase regions when checking for missing Copy predicates

2 years agouse singed_int_max/min helper methods
Ralf Jung [Mon, 7 Mar 2022 00:11:31 +0000 (19:11 -0500)]
use singed_int_max/min helper methods

2 years agomove saturating_add/sub into (pub) helper method
Ralf Jung [Mon, 7 Mar 2022 00:09:22 +0000 (19:09 -0500)]
move saturating_add/sub into (pub) helper method

2 years agoFix rustdoc for GATs with with anonymous bound regions
Michael Goulet [Sun, 6 Mar 2022 23:56:29 +0000 (15:56 -0800)]
Fix rustdoc for GATs with with anonymous bound regions

2 years agoAuto merge of #94597 - nnethercote:ConstAllocation, r=fee1-dead
bors [Sun, 6 Mar 2022 22:37:54 +0000 (22:37 +0000)]
Auto merge of #94597 - nnethercote:ConstAllocation, r=fee1-dead

Introduce `ConstAllocation`.

Currently some `Allocation`s are interned, some are not, and it's very
hard to tell at a use point which is which.

This commit introduces `ConstAllocation` for the known-interned ones,
which makes the division much clearer. `ConstAllocation::inner()` is
used to get the underlying `Allocation`.

In some places it's natural to use an `Allocation`, in some it's natural
to use a `ConstAllocation`, and in some places there's no clear choice.
I've tried to make things look as nice as possible, while generally
favouring `ConstAllocation`, which is the type that embodies more
information. This does require quite a few calls to `inner()`.

The commit also tweaks how `PartialOrd` works for `Interned`. The
previous code was too clever by half, building on `T: Ord` to make the
code shorter. That caused problems with deriving `PartialOrd` and `Ord`
for `ConstAllocation`, so I changed it to build on `T: PartialOrd`,
which is slightly more verbose but much more standard and avoided the
problems.

r? `@fee1-dead`

2 years agoIntroduce `ConstAllocation`.
Nicholas Nethercote [Tue, 1 Mar 2022 20:15:04 +0000 (07:15 +1100)]
Introduce `ConstAllocation`.

Currently some `Allocation`s are interned, some are not, and it's very
hard to tell at a use point which is which.

This commit introduces `ConstAllocation` for the known-interned ones,
which makes the division much clearer. `ConstAllocation::inner()` is
used to get the underlying `Allocation`.

In some places it's natural to use an `Allocation`, in some it's natural
to use a `ConstAllocation`, and in some places there's no clear choice.
I've tried to make things look as nice as possible, while generally
favouring `ConstAllocation`, which is the type that embodies more
information. This does require quite a few calls to `inner()`.

The commit also tweaks how `PartialOrd` works for `Interned`. The
previous code was too clever by half, building on `T: Ord` to make the
code shorter. That caused problems with deriving `PartialOrd` and `Ord`
for `ConstAllocation`, so I changed it to build on `T: PartialOrd`,
which is slightly more verbose but much more standard and avoided the
problems.

2 years agoAuto merge of #94679 - matthiaskrgr:rollup-9vd7w6a, r=matthiaskrgr
bors [Sun, 6 Mar 2022 20:21:35 +0000 (20:21 +0000)]
Auto merge of #94679 - matthiaskrgr:rollup-9vd7w6a, r=matthiaskrgr

Rollup of 3 pull requests

Successful merges:

 - #94659 (explain why shift with signed offset works the way it does)
 - #94671 (fix pin doc typo)
 - #94672 (Improved error message for failed bitcode load)

Failed merges:

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

2 years agoCTFE engine: expose misc_cast to Miri
Ralf Jung [Sun, 6 Mar 2022 19:01:01 +0000 (14:01 -0500)]
CTFE engine: expose misc_cast to Miri

2 years agoRollup merge of #94672 - joedeandev:master, r=Dylan-DPC
Matthias Krüger [Sun, 6 Mar 2022 18:08:39 +0000 (19:08 +0100)]
Rollup merge of #94672 - joedeandev:master, r=Dylan-DPC

Improved error message for failed bitcode load

"bc" is an unnecessary shorthand that obfuscates the compilation error

2 years agoRollup merge of #94671 - csmoe:pin-typo, r=m-ou-se
Matthias Krüger [Sun, 6 Mar 2022 18:08:38 +0000 (19:08 +0100)]
Rollup merge of #94671 - csmoe:pin-typo, r=m-ou-se

fix pin doc typo

r? `@m-ou-se`

2 years agoRollup merge of #94659 - RalfJung:signed-shift, r=oli-obk
Matthias Krüger [Sun, 6 Mar 2022 18:08:37 +0000 (19:08 +0100)]
Rollup merge of #94659 - RalfJung:signed-shift, r=oli-obk

explain why shift with signed offset works the way it does

I was worried for a bit here that Miri/CTFE would be inconsistent with codegen, but I *think* everything is all right, actually.

Cc `@oli-obk` `@eddyb`

2 years agoAuto merge of #94579 - tmiasko:target-features, r=nagisa
bors [Sun, 6 Mar 2022 18:07:11 +0000 (18:07 +0000)]
Auto merge of #94579 - tmiasko:target-features, r=nagisa

Always include global target features in function attributes

This ensures that information about target features configured with
`-C target-feature=...` or detected with `-C target-cpu=native` is
retained for subsequent consumers of LLVM bitcode.

This is crucial for linker plugin LTO, since this information is not
conveyed to the plugin otherwise.

<details><summary>Additional test case demonstrating the issue</summary>

```rust
extern crate core;

#[inline]
#[target_feature(enable = "aes")]
unsafe fn f(a: u128, b: u128) -> u128 {
    use core::arch::x86_64::*;
    use core::mem::transmute;
    transmute(_mm_aesenc_si128(transmute(a), transmute(b)))
}

pub fn g(a: u128, b: u128) -> u128 {
    unsafe { f(a, b) }
}

fn main() {
    let mut args = std::env::args();
    let _ = args.next().unwrap();
    let a: u128 = args.next().unwrap().parse().unwrap();
    let b: u128 = args.next().unwrap().parse().unwrap();
    println!("{}", g(a, b));
}
```

```console
$ rustc --edition=2021 a.rs -Clinker-plugin-lto -Clink-arg=-fuse-ld=lld  -Ctarget-feature=+aes -O
...
  = note: LLVM ERROR: Cannot select: intrinsic %llvm.x86.aesni.aesenc
```

</details>

r? `@nagisa`

2 years agocleanup: remove unused ability to have LLVM null-terminate const strings
Erik Desjardins [Sat, 5 Mar 2022 04:14:38 +0000 (23:14 -0500)]
cleanup: remove unused ability to have LLVM null-terminate const strings

2 years agoremove unnecessary `..` patterns
Takayuki Maeda [Sun, 6 Mar 2022 17:18:36 +0000 (02:18 +0900)]
remove unnecessary `..` patterns

2 years agoexplain why shift with signed offset works the way it does
Ralf Jung [Sun, 6 Mar 2022 03:47:31 +0000 (22:47 -0500)]
explain why shift with signed offset works the way it does

2 years agoAuto merge of #94673 - matthiaskrgr:rollup-2tnifg9, r=matthiaskrgr
bors [Sun, 6 Mar 2022 15:26:21 +0000 (15:26 +0000)]
Auto merge of #94673 - matthiaskrgr:rollup-2tnifg9, r=matthiaskrgr

Rollup of 3 pull requests

Successful merges:

 - #93412 (Improve rustdoc const bounds)
 - #94617 (Update `itertools`)
 - #94669 (Update -Z unpretty error message)

Failed merges:

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

2 years agoUpdated corresponding stderr
Joe [Sun, 6 Mar 2022 15:14:07 +0000 (16:14 +0100)]
Updated corresponding stderr

2 years agoRollup merge of #94669 - Alexendoo:unpretty-help, r=tmiasko
Matthias Krüger [Sun, 6 Mar 2022 14:41:27 +0000 (15:41 +0100)]
Rollup merge of #94669 - Alexendoo:unpretty-help, r=tmiasko

Update -Z unpretty error message

Adds `thir-tree`, removes `everybody_loops` (removed in #93913)

2 years agoRollup merge of #94617 - pierwill:update-itertools, r=Mark-Simulacrum
Matthias Krüger [Sun, 6 Mar 2022 14:41:26 +0000 (15:41 +0100)]
Rollup merge of #94617 - pierwill:update-itertools, r=Mark-Simulacrum

Update `itertools`

Update to 0.10.1

2 years agoRollup merge of #93412 - fee1-dead:improve-rustdoc-const-bounds, r=GuillaumeGomez
Matthias Krüger [Sun, 6 Mar 2022 14:41:26 +0000 (15:41 +0100)]
Rollup merge of #93412 - fee1-dead:improve-rustdoc-const-bounds, r=GuillaumeGomez

Improve rustdoc const bounds

 - Rustdoc no longer displays `~const` in trait bounds, because it currently means nothing for stable users, and because we still haven't decided on the final syntax yet.
 - Rustdoc will hide trait bounds where the trait is `Drop` AND it is `~const`, i.e. `~const Drop` bounds because it has no effect on stable users as well.
 - Because of additional logic that hides the whole `where` statement where it consists of `~const Drop` bounds (so it doesn't display `struct Foo<T>() where ;` like that), bounds that have no trait e.g. `where [T; N+1]: ;` are also hidden.

Cherry-picked from #92433.

2 years agoImproved error message for failed bitcode load
Joe [Sun, 6 Mar 2022 14:25:05 +0000 (15:25 +0100)]
Improved error message for failed bitcode load

"bc" is an unnecessary shorthand that obfuscates the compilation error

2 years agofix pin doc typo
csmoe [Sun, 6 Mar 2022 13:40:30 +0000 (21:40 +0800)]
fix pin doc typo

2 years agoAuto merge of #94668 - fee1-dead:rollup-8e92bht, r=fee1-dead
bors [Sun, 6 Mar 2022 12:57:32 +0000 (12:57 +0000)]
Auto merge of #94668 - fee1-dead:rollup-8e92bht, r=fee1-dead

Rollup of 3 pull requests

Successful merges:

 - #92509 (doc: `Iterator::partition` use partial type hints)
 - #94621 (rustbuild: support RelWithDebInfo for lld)
 - #94649 (Unix path::absolute: Fix leading "." component)

Failed merges:

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

2 years agoUpdate -Z unpretty error message
Alex Macleod [Sun, 6 Mar 2022 12:43:30 +0000 (12:43 +0000)]
Update -Z unpretty error message

Adds `thir-tree`, removes `everybody_loops`

2 years agoRollup merge of #94649 - ChrisDenton:unix-absolute-fix, r=Dylan-DPC
fee1-dead [Sun, 6 Mar 2022 11:35:31 +0000 (22:35 +1100)]
Rollup merge of #94649 - ChrisDenton:unix-absolute-fix, r=Dylan-DPC

Unix path::absolute: Fix leading "." component

Testing leading `.` and `..` components were missing from the unix tests.

This PR adds them and fixes the leading `.` case. It also fixes the test cases so that they do an exact comparison.

This problem reported by ``@axetroy``

2 years agoRollup merge of #94621 - ridwanabdillahi:lld-rel-dbg, r=Mark-Simulacrum
fee1-dead [Sun, 6 Mar 2022 11:35:30 +0000 (22:35 +1100)]
Rollup merge of #94621 - ridwanabdillahi:lld-rel-dbg, r=Mark-Simulacrum

rustbuild: support RelWithDebInfo for lld

r? ``@alexcrichton``

LLVM has flags that control the level of debuginfo generated when building via rustbuild. Since LLD is built separately, it currently has no way of generating any debuginfo. This change re-uses the same flags as LLVM for LLD to ensure it has the same level of debuginfo generated as LLVM.

2 years agoRollup merge of #92509 - Gentoli:partition-ex, r=camelid
fee1-dead [Sun, 6 Mar 2022 11:35:29 +0000 (22:35 +1100)]
Rollup merge of #92509 - Gentoli:partition-ex, r=camelid

doc: `Iterator::partition` use partial type hints

Switch to partial type hints to indicate only the collection type is needed.

2 years agoAuto merge of #90076 - jackh726:wherethewhere, r=nikomatsakis
bors [Sun, 6 Mar 2022 07:22:09 +0000 (07:22 +0000)]
Auto merge of #90076 - jackh726:wherethewhere, r=nikomatsakis

Change location of where clause on GATs

Closes #89122

~Blocked on lang FCP~

r? `@nikomatsakis`

2 years agoAuto merge of #94658 - RalfJung:miri, r=RalfJung
bors [Sun, 6 Mar 2022 04:41:25 +0000 (04:41 +0000)]
Auto merge of #94658 - RalfJung:miri, r=RalfJung

update Miri

Fixes https://github.com/rust-lang/rust/issues/94562
r? `@ghost`

2 years agoupdate Miri
Ralf Jung [Sun, 6 Mar 2022 03:44:34 +0000 (22:44 -0500)]
update Miri

2 years agoIgnore
Jack Huey [Sun, 6 Mar 2022 00:38:53 +0000 (19:38 -0500)]
Ignore

2 years agoAuto merge of #93805 - petrochenkov:doclinkself, r=camelid,GuillaumeGomez
bors [Sun, 6 Mar 2022 02:14:49 +0000 (02:14 +0000)]
Auto merge of #93805 - petrochenkov:doclinkself, r=camelid,GuillaumeGomez

rustdoc: Stop textually replacing `Self` in doc links before resolving them

Resolve it directly to a type / def-id instead.

Also never pass `Self` to `Resolver`, it is useless because it's guaranteed that no resolution will be found.

This is a pre-requisite for https://github.com/rust-lang/rust/issues/83761.

2 years agodoc: `Iterator::partition` use partial type hints
Gentoli [Mon, 3 Jan 2022 11:25:42 +0000 (06:25 -0500)]
doc: `Iterator::partition` use partial type hints

2 years agoAuto merge of #94601 - csmoe:android-asan, r=nagisa
bors [Sat, 5 Mar 2022 22:52:08 +0000 (22:52 +0000)]
Auto merge of #94601 - csmoe:android-asan, r=nagisa

add address sanitizer fo android

We have been being using asan to debug the rust/cpp/c mixed android application in production for months: recompile the rust library with a patched rustc, everything just works fine. The patch is really small thanks to `@nagisa` 's refactoring in https://github.com/rust-lang/rust/pull/81866

r? `@nagisa`

2 years agoAuto merge of #94648 - RalfJung:rollup-4iorcrd, r=RalfJung
bors [Sat, 5 Mar 2022 19:53:45 +0000 (19:53 +0000)]
Auto merge of #94648 - RalfJung:rollup-4iorcrd, r=RalfJung

Rollup of 4 pull requests

Successful merges:

 - #94630 (Update note about tier 2 docs.)
 - #94633 (Suggest removing a semicolon after derive attributes)
 - #94642 (Fix source code pages scroll)
 - #94645 (do not attempt to open cgroup files under Miri)

Failed merges:

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

2 years agoAdd commment covering the case with no where clause
Jack Huey [Sat, 5 Mar 2022 04:21:33 +0000 (23:21 -0500)]
Add commment covering the case with no where clause

2 years agoUpdate new tests
Jack Huey [Mon, 14 Feb 2022 19:10:01 +0000 (14:10 -0500)]
Update new tests

2 years agoReview changes
Jack Huey [Mon, 14 Feb 2022 18:00:10 +0000 (13:00 -0500)]
Review changes

2 years agoFallback to other where clause if preferred is missing
Jack Huey [Mon, 7 Feb 2022 17:20:09 +0000 (12:20 -0500)]
Fallback to other where clause if preferred is missing

2 years agoChange to lint
Jack Huey [Mon, 7 Feb 2022 06:23:37 +0000 (01:23 -0500)]
Change to lint

2 years agoChange syntax for TyAlias where clauses
Jack Huey [Tue, 19 Oct 2021 22:45:48 +0000 (18:45 -0400)]
Change syntax for TyAlias where clauses

2 years agoUse `as_os_str` to compare exact paths
Chris Denton [Sat, 5 Mar 2022 17:58:08 +0000 (17:58 +0000)]
Use `as_os_str` to compare exact paths

2 years agoUnix `path::absolute`: Fix leading "." component
Chris Denton [Sat, 5 Mar 2022 17:57:12 +0000 (17:57 +0000)]
Unix `path::absolute`: Fix leading "." component

Testing leading `.` and `..` components were missing from the unix tests.

2 years agoRollup merge of #94645 - RalfJung:available-parallelism-miri, r=the8472
Ralf Jung [Sat, 5 Mar 2022 17:53:17 +0000 (12:53 -0500)]
Rollup merge of #94645 - RalfJung:available-parallelism-miri, r=the8472

do not attempt to open cgroup files under Miri

Since https://github.com/rust-lang/rust/pull/92697, `cargo miri test` always fails under default flags, and one would have to use `MIRIFLAGS=-Zmiri-disable-isolation cargo miri test` instead. This PR fixes that problem.

Cc `@the8472` `@joshtriplett`

2 years agoRollup merge of #94642 - GuillaumeGomez:source-code-scroll, r=Urgau
Ralf Jung [Sat, 5 Mar 2022 17:53:17 +0000 (12:53 -0500)]
Rollup merge of #94642 - GuillaumeGomez:source-code-scroll, r=Urgau

Fix source code pages scroll

To reproduce the bug, go to https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_ast/ast.rs.html#537-541 and click on the `Path` link. The page won't scroll to the content.

r? `@Urgau`

2 years agoRollup merge of #94633 - TaKO8Ki:suggest-removing-semicolon-after-derive-attribute...
Ralf Jung [Sat, 5 Mar 2022 17:53:16 +0000 (12:53 -0500)]
Rollup merge of #94633 - TaKO8Ki:suggest-removing-semicolon-after-derive-attribute, r=cjgillot

Suggest removing a semicolon after derive attributes

closes #93942

2 years agoRollup merge of #94630 - ehuss:remove-tier-2-docs-note, r=Mark-Simulacrum
Ralf Jung [Sat, 5 Mar 2022 17:53:15 +0000 (12:53 -0500)]
Rollup merge of #94630 - ehuss:remove-tier-2-docs-note, r=Mark-Simulacrum

Update note about tier 2 docs.

As of #92800, docs are now available for tier-2 platforms.

2 years agoAuto merge of #92123 - m-ou-se:thread-local-cell-methods, r=joshtriplett
bors [Sat, 5 Mar 2022 17:13:03 +0000 (17:13 +0000)]
Auto merge of #92123 - m-ou-se:thread-local-cell-methods, r=joshtriplett

Implement RFC 3184 - thread local cell methods

This implements [RFC 3184](https://github.com/rust-lang/rfcs/pull/3184), with `@danielhenrymantilla's` [suggestion](https://github.com/rust-lang/rfcs/pull/3184#issuecomment-965773616) for the `with_` method names.

Tracking issue: https://github.com/rust-lang/rust/issues/92122

2 years agosuggest removing a semicolon after derive attributes
Takayuki Maeda [Sat, 5 Mar 2022 03:20:08 +0000 (12:20 +0900)]
suggest removing a semicolon after derive attributes

use current token span

2 years agodo not attempt to open cgroup files under Miri
Ralf Jung [Sat, 5 Mar 2022 16:23:25 +0000 (11:23 -0500)]
do not attempt to open cgroup files under Miri

2 years agoUpdate note about tier 2 docs.
Eric Huss [Sat, 5 Mar 2022 15:50:40 +0000 (07:50 -0800)]
Update note about tier 2 docs.

2 years agoAdd GUI test for source code viewer scroll handling
Guillaume Gomez [Sat, 5 Mar 2022 15:02:28 +0000 (16:02 +0100)]
Add GUI test for source code viewer scroll handling

2 years agoAuto merge of #94480 - bjorn3:no_build_helper, r=Mark-Simulacrum
bors [Sat, 5 Mar 2022 14:32:25 +0000 (14:32 +0000)]
Auto merge of #94480 - bjorn3:no_build_helper, r=Mark-Simulacrum

Remove build_helper

The majority of the code is only used by either rustbuild or
rustc_llvm's build script. Rust_build is compiled once for rustbuild and
once for every stage. This means that the majority of the code in this
crate is needlessly compiled multiple times. By moving only the code
actually used by the respective crates to rustbuild and rustc_llvm's
build script, this needless duplicate compilation is avoided.

2 years agoScroll when the anchor change and is linking outside of the displayed content
Guillaume Gomez [Sat, 5 Mar 2022 14:31:57 +0000 (15:31 +0100)]
Scroll when the anchor change and is linking outside of the displayed content

2 years agoMerge build_helper into util
bjorn3 [Thu, 3 Mar 2022 17:15:01 +0000 (18:15 +0100)]
Merge build_helper into util

2 years agoRemove build_helper
bjorn3 [Thu, 24 Feb 2022 12:30:50 +0000 (13:30 +0100)]
Remove build_helper

The majority of the code is only used by either rustbuild or
rustc_llvm's build script. Rust_build is compiled once for rustbuild and
once for every stage. This means that the majority of the code in this
crate is needlessly compiled multiple times. By moving only the code
actually used by the respective crates to rustbuild and rustc_llvm's
build script, this needless duplicate compilation is avoided.

2 years agoAuto merge of #94561 - Urgau:check-cfg-lint-help-remove, r=petrochenkov
bors [Sat, 5 Mar 2022 11:29:59 +0000 (11:29 +0000)]
Auto merge of #94561 - Urgau:check-cfg-lint-help-remove, r=petrochenkov

Improve unexpected_cfgs lint when their is no value expected

This pull-request improve the `unexpected_cfgs` when their is no value expected by suggesting to remove the value.

I also took the liberty to special case it for `feature` as it seems wrong to suggest to remove the value when the problem is most probably the absence of value(s) and also the fact that it doesn't make sense to only have `feature` without a value.

r? `@petrochenkov`

2 years agoImprove unexpected_cfgs lint when their is no value expected
Loïc BRANSTETT [Thu, 3 Mar 2022 14:56:19 +0000 (15:56 +0100)]
Improve unexpected_cfgs lint when their is no value expected

2 years agoUpdate tests.
Mara Bos [Mon, 20 Dec 2021 18:24:40 +0000 (19:24 +0100)]
Update tests.

2 years agoSmall fixes in thread local code.
Mara Bos [Mon, 20 Dec 2021 18:21:53 +0000 (19:21 +0100)]
Small fixes in thread local code.

2 years agoUpdate documentation in thread/local.rs.
Mara Bos [Mon, 20 Dec 2021 18:21:36 +0000 (19:21 +0100)]
Update documentation in thread/local.rs.

2 years agoAdd debug asserts in thread local cell set methods.
Mara Bos [Mon, 20 Dec 2021 18:20:56 +0000 (19:20 +0100)]
Add debug asserts in thread local cell set methods.

2 years agoAdd tracking issue number for local_key_cell_methods.
Mara Bos [Mon, 20 Dec 2021 12:49:10 +0000 (13:49 +0100)]
Add tracking issue number for local_key_cell_methods.

2 years agoRename LocalKey's with_{ref,mut} to with_borrow{,_mut}.
Mara Bos [Mon, 20 Dec 2021 12:38:07 +0000 (13:38 +0100)]
Rename LocalKey's with_{ref,mut} to with_borrow{,_mut}.

2 years agoImplement RFC 3184 - thread local cell methods.
Mara Bos [Tue, 19 Oct 2021 12:37:27 +0000 (14:37 +0200)]
Implement RFC 3184 - thread local cell methods.

2 years agoAuto merge of #94546 - JmPotato:std-features-cleanup, r=m-ou-se
bors [Sat, 5 Mar 2022 07:26:54 +0000 (07:26 +0000)]
Auto merge of #94546 - JmPotato:std-features-cleanup, r=m-ou-se

Clean up the std library's #![feature]s

Signed-off-by: JmPotato <ghzpotato@gmail.com>
This is part of https://github.com/rust-lang/rust/issues/87766.

r? `@m-ou-se`

2 years agoAuto merge of #94634 - Dylan-DPC:rollup-8wx1yrj, r=Dylan-DPC
bors [Sat, 5 Mar 2022 04:56:35 +0000 (04:56 +0000)]
Auto merge of #94634 - Dylan-DPC:rollup-8wx1yrj, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #94446 (UNIX `remove_dir_all()`: Try recursing first on the slow path)
 - #94460 (Reenable generator drop tracking tests and fix mutation handling)
 - #94620 (Edit docs on consistency of `PartialOrd` and `PartialEq`)
 - #94624 (Downgrade `#[test]` on macro call to warning)
 - #94626 (Add known-bug directive to issue #47511 test case)
 - #94631 (Fix typo in c-variadic)

Failed merges:

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

2 years agocheck extra args even if the function is not c_variadic
Michael Goulet [Sat, 5 Mar 2022 04:28:35 +0000 (20:28 -0800)]
check extra args even if the function is not c_variadic

2 years agoRollup merge of #94631 - nebulatgs:patch-1, r=Dylan-DPC
Dylan DPC [Sat, 5 Mar 2022 03:46:41 +0000 (04:46 +0100)]
Rollup merge of #94631 - nebulatgs:patch-1, r=Dylan-DPC

Fix typo in c-variadic

Fixes a typo in the Unstable Book

2 years agoRollup merge of #94626 - marmeladema:issue-47511-known-bug, r=jackh726
Dylan DPC [Sat, 5 Mar 2022 03:46:40 +0000 (04:46 +0100)]
Rollup merge of #94626 - marmeladema:issue-47511-known-bug, r=jackh726

Add known-bug directive to issue #47511 test case

2 years agoRollup merge of #94624 - estebank:regression-94508, r=Dylan-DPC
Dylan DPC [Sat, 5 Mar 2022 03:46:39 +0000 (04:46 +0100)]
Rollup merge of #94624 - estebank:regression-94508, r=Dylan-DPC

Downgrade `#[test]` on macro call to warning

Follow up to #92959. Address #94508.

2 years agoRollup merge of #94620 - pierwill:partialord-constistency, r=yaahc
Dylan DPC [Sat, 5 Mar 2022 03:46:38 +0000 (04:46 +0100)]
Rollup merge of #94620 - pierwill:partialord-constistency, r=yaahc

Edit docs on consistency of `PartialOrd` and `PartialEq`

Use ordered list to make the information about implementations more readable.

2 years agoRollup merge of #94460 - eholk:reenable-drop-tracking-tests, r=tmiasko
Dylan DPC [Sat, 5 Mar 2022 03:46:37 +0000 (04:46 +0100)]
Rollup merge of #94460 - eholk:reenable-drop-tracking-tests, r=tmiasko

Reenable generator drop tracking tests and fix mutation handling

The previous PR, #94068, was overly zealous in counting mutations as borrows, which effectively nullified drop tracking. We would have caught this except the drop tracking tests were still ignored, despite having the option of using the `-Zdrop-tracking` flag now.

This PR fixes the issue introduced by #94068 by only counting mutations as borrows the mutated place has a project. This is sufficient to distinguish `x.y = 42` (which should count as a borrow of `x`) from `x = 42` (which is not a borrow of `x` because the whole variable is overwritten).

This PR also re-enables the drop tracking regression tests using the `-Zdrop-tracking` flag so we will avoid introducing these sorts of issues in the future.

Thanks to ``@tmiasko`` for noticing this problem and pointing it out!

r? ``@tmiasko``

2 years agoRollup merge of #94446 - rusticstuff:remove_dir_all-illumos-fix, r=cuviper
Dylan DPC [Sat, 5 Mar 2022 03:46:37 +0000 (04:46 +0100)]
Rollup merge of #94446 - rusticstuff:remove_dir_all-illumos-fix, r=cuviper

UNIX `remove_dir_all()`: Try recursing first on the slow path

This only affects the _slow_ code path - if there is no `dirent.d_type` or if it is `DT_UNKNOWN`.

POSIX specifies that calling `unlink()` or `unlinkat(..., 0)` on a directory is allowed to succeed:
> The _path_ argument shall not name a directory unless the process has appropriate privileges and the implementation supports using _unlink()_ on directories.

This however can cause dangling inodes requiring an fsck e.g. on Illumos UFS, so we have to avoid that in the common case. We now just try to recurse into it first and unlink() if we can't open it as a directory.

The other two commits integrate the Macos x86-64 implementation reducing redundancy. Split into two commits for better reviewing.

Fixes #94335.

2 years agoClean up the std library's #![feature]s
JmPotato [Thu, 3 Mar 2022 06:24:47 +0000 (14:24 +0800)]
Clean up the std library's #![feature]s

Signed-off-by: JmPotato <ghzpotato@gmail.com>
2 years agoAuto merge of #93142 - estebank:missing-main, r=wesleywiser
bors [Sat, 5 Mar 2022 02:46:24 +0000 (02:46 +0000)]
Auto merge of #93142 - estebank:missing-main, r=wesleywiser

Do not point at whole file missing `fn main`

Only point at the end of the crate. We could try making it point at the
beginning of the crate, but that is confused with `DUMMY_SP`, causing
the output to be *worse*.

This change will make it so that VSCode will *not* underline the whole
file when `main` is missing, so other errors will be visible.

2 years agoDo not point at whole file missing `fn main`
Esteban Kuber [Fri, 21 Jan 2022 00:15:39 +0000 (00:15 +0000)]
Do not point at whole file missing `fn main`

Only point at the end of the crate. We could try making it point at the
beginning of the crate, but that is confused with `DUMMY_SP`, causing
the output to be *worse*.

This change will make it so that VSCode will *not* underline the whole
file when `main` is missing, so other errors will be visible.

2 years agoFix typo in c-variadic
Nebula [Sat, 5 Mar 2022 02:34:38 +0000 (21:34 -0500)]
Fix typo in c-variadic

2 years agoAuto merge of #94628 - Dylan-DPC:rollup-v2slupe, r=Dylan-DPC
bors [Sat, 5 Mar 2022 00:15:54 +0000 (00:15 +0000)]
Auto merge of #94628 - Dylan-DPC:rollup-v2slupe, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #94362 (Add well known values to `--check-cfg` implementation)
 - #94577 (only disable SIMD for doctests in Miri (not for the stdlib build itself))
 - #94595 (Fix invalid `unresolved imports` errors for a single-segment import)
 - #94596 (Delay bug in expr adjustment when check_expr is called multiple times)
 - #94618 (Don't round stack size up for created threads in Windows)

Failed merges:

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

2 years agoRollup merge of #94618 - lewisclark:remove-stack-size-rounding, r=yaahc
Dylan DPC [Fri, 4 Mar 2022 21:58:37 +0000 (22:58 +0100)]
Rollup merge of #94618 - lewisclark:remove-stack-size-rounding, r=yaahc

Don't round stack size up for created threads in Windows

Fixes #94454

Windows does the rounding itself, so there isn't a need to explicity do the rounding beforehand, as mentioned by ```@ChrisDenton``` in #94454

> The operating system rounds up the specified size to the nearest multiple of the system's allocation granularity (typically 64 KB). To retrieve the allocation granularity of the current system, use the [GetSystemInfo](https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsysteminfo) function.

https://docs.microsoft.com/en-us/windows/win32/procthread/thread-stack-size

2 years agoRollup merge of #94596 - compiler-errors:delay-adjustment-duplicate, r=estebank
Dylan DPC [Fri, 4 Mar 2022 21:58:36 +0000 (22:58 +0100)]
Rollup merge of #94596 - compiler-errors:delay-adjustment-duplicate, r=estebank

Delay bug in expr adjustment when check_expr is called multiple times

Instead of including slightly more complicated logic in `check_argument_types` to fix the bug (#94516) I introduced in #94438, and inevitably have this bug appear once again when some other diagnostic is written that causes `check_expr` to be called an expression during a (bad) code path, just delay the bug in adjustment logic.

I am open to other implementations that don't delay the bug here.

Fixes #94516

2 years agoRollup merge of #94595 - TaKO8Ki:fix-invalid-unresolved-imports-errors-for-asterisk...
Dylan DPC [Fri, 4 Mar 2022 21:58:35 +0000 (22:58 +0100)]
Rollup merge of #94595 - TaKO8Ki:fix-invalid-unresolved-imports-errors-for-asterisk-wildcard-syntax, r=estebank

Fix invalid `unresolved imports` errors for a single-segment import

closes #90248

2 years agoRollup merge of #94577 - RalfJung:simd-miri, r=scottmcm
Dylan DPC [Fri, 4 Mar 2022 21:58:34 +0000 (22:58 +0100)]
Rollup merge of #94577 - RalfJung:simd-miri, r=scottmcm

only disable SIMD for doctests in Miri (not for the stdlib build itself)

Also we can enable library/core/tests/simd.rs now, Miri supports enough SIMD for that.