]> git.lizzy.rs Git - rust.git/log
rust.git
23 months agoAdjust for rustfmt order change
Mark Rousskov [Fri, 1 Jul 2022 22:13:55 +0000 (18:13 -0400)]
Adjust for rustfmt order change

23 months agoupdate cfg(bootstrap)s
Pietro Albini [Fri, 1 Jul 2022 13:48:23 +0000 (15:48 +0200)]
update cfg(bootstrap)s

23 months agobump stage0 compiler
Pietro Albini [Wed, 29 Jun 2022 13:35:30 +0000 (15:35 +0200)]
bump stage0 compiler

23 months agoAuto merge of #98558 - nnethercote:smallvec-1.8.1, r=lqd
bors [Wed, 29 Jun 2022 09:11:29 +0000 (09:11 +0000)]
Auto merge of #98558 - nnethercote:smallvec-1.8.1, r=lqd

Update `smallvec` to 1.8.1.

This pulls in https://github.com/servo/rust-smallvec/pull/282, which
gives some small wins for rustc.

r? `@lqd`

23 months agoAuto merge of #98656 - Dylan-DPC:rollup-hhytn0c, r=Dylan-DPC
bors [Wed, 29 Jun 2022 05:47:42 +0000 (05:47 +0000)]
Auto merge of #98656 - Dylan-DPC:rollup-hhytn0c, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #97423 (Simplify memory ordering intrinsics)
 - #97542 (Use typed indices in argument mismatch algorithm)
 - #97786 (Account for `-Z simulate-remapped-rust-src-base` when resolving remapped paths)
 - #98277 (Fix trait object reborrow suggestion)
 - #98525 (Add regression test for #79224)
 - #98549 (interpret: do not prune requires_caller_location stack frames quite so early)
 - #98603 (Some borrowck diagnostic fixes)

Failed merges:

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

23 months agoRollup merge of #98603 - compiler-errors:minor-borrowck-diagnostic-fixes, r=davidtwco
Dylan DPC [Wed, 29 Jun 2022 04:58:24 +0000 (10:28 +0530)]
Rollup merge of #98603 - compiler-errors:minor-borrowck-diagnostic-fixes, r=davidtwco

Some borrowck diagnostic fixes

1. Remove some redundant `.as_ref` suggestion logic from borrowck, this has the consequence of also not suggesting `.as_ref` after `Option` methods, but (correctly) before.
2. Fix a bug where we were replacing a binding's name with a type. Instead, make it a note.

This is somewhat incomplete. See `src/test/ui/borrowck/suggest-as-ref-on-mut-closure.rs` for more improvements.

23 months agoRollup merge of #98549 - RalfJung:interpret-stacktraces, r=oli-obk
Dylan DPC [Wed, 29 Jun 2022 04:58:23 +0000 (10:28 +0530)]
Rollup merge of #98549 - RalfJung:interpret-stacktraces, r=oli-obk

interpret: do not prune requires_caller_location stack frames quite so early

https://github.com/rust-lang/rust/pull/87000 made the interpreter skip `caller_location` frames for its stacktraces and `cur_span`. However, those functions are used for much more than just panic reporting, and e.g. when Miri reports UB somewhere, it probably wants to point inside `caller_location` frames. (And if it did not, it would want to have its own logic to decide that, not be forced into it by the core interpreter engine.) This fixes some rare ICEs in Miri that say "we should never pop more than one frame at once".

So let's remove all `caller_location` logic from the core interpreter, and instead move it to CTFE error reporting. This does not change user-visible behavior. That's the first commit.

We might additionally want to change CTFE error reporting to treat panics differently from other errors: only prune `caller_location` frames for panics. The second commit does that. But honestly I am not sure if this is an improvement.

r? ``@oli-obk``

23 months agoRollup merge of #98525 - JohnTitor:issue-79224, r=compiler-errors
Dylan DPC [Wed, 29 Jun 2022 04:58:22 +0000 (10:28 +0530)]
Rollup merge of #98525 - JohnTitor:issue-79224, r=compiler-errors

Add regression test for #79224

Closes #79224
r? `@compiler-errors`

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
23 months agoRollup merge of #98277 - compiler-errors:issue-93596, r=estebank
Dylan DPC [Wed, 29 Jun 2022 04:58:21 +0000 (10:28 +0530)]
Rollup merge of #98277 - compiler-errors:issue-93596, r=estebank

Fix trait object reborrow suggestion

Fixes #93596

Slightly generalizes the logic we use to suggest fix first implemented in #95609, specifically when we have a `Sized` obligation that comes from a struct's unsized tail.

23 months agoRollup merge of #97786 - ferrocene:pa-fix-simulate-remap-prefix, r=Mark-Simulacrum
Dylan DPC [Wed, 29 Jun 2022 04:58:20 +0000 (10:28 +0530)]
Rollup merge of #97786 - ferrocene:pa-fix-simulate-remap-prefix, r=Mark-Simulacrum

Account for `-Z simulate-remapped-rust-src-base` when resolving remapped paths

Discovered in #97682, `-Z simulate-remapped-rust-src-base` only partially simulated the behavior of `remap-debuginfo = true`. While the flag successfully simulates the remapping when stdlib's `rmeta` file is loaded, the simulated prefix was not accounted for when the remapped path's local path was being discovered. This caused the flag to not fully simulate the behavior of `remap-debuginfo = true`, leading to inconsistent behaviors.

This PR fixes https://github.com/rust-lang/rust/issues/97682 by also accounting for the simulated path.

23 months agoRollup merge of #97542 - compiler-errors:arg-mismatch, r=jackh726
Dylan DPC [Wed, 29 Jun 2022 04:58:19 +0000 (10:28 +0530)]
Rollup merge of #97542 - compiler-errors:arg-mismatch, r=jackh726

Use typed indices in argument mismatch algorithm

I kinda went overboard with the renames, but in general, "arg" is renamed to "expected", and "input" is renamed to "provided", and we use new typed indices to make sure we're indexing into the right sized array.

Other drive-by changes:
1. Factor this logic into a new function, so we don't need to `break 'label` to escape it.
1. Factored out dependence on `final_arg_types`, which is never populated for arguments greater than the number of expected args. Instead, we just grab the final coerced expression type from `in_progress_typeck_results`.
1. Adjust the criteria we use to print (provided) type names, before we didn't suggest anything that had infer vars, but now we suggest thing that have infer vars but aren't `_`.

~Also, sorry in advance, I kinda want to backport this but I know I have folded in a lot of unnecessary drive-by changes that might discourage that. I would be open to brainstorming how to get some of these changes on beta at least.~ edit: Minimized the ICE-fixing changes to #97557

cc `@jackh726` as author of #92364, and `@estebank` as reviewer of the PR.
fixes #97484

23 months agoRollup merge of #97423 - m-ou-se:memory-ordering-intrinsics, r=tmiasko
Dylan DPC [Wed, 29 Jun 2022 04:58:18 +0000 (10:28 +0530)]
Rollup merge of #97423 - m-ou-se:memory-ordering-intrinsics, r=tmiasko

Simplify memory ordering intrinsics

This changes the names of the atomic intrinsics to always fully include their memory ordering arguments.

```diff
- atomic_cxchg
+ atomic_cxchg_seqcst_seqcst

- atomic_cxchg_acqrel
+ atomic_cxchg_acqrel_release

- atomic_cxchg_acqrel_failrelaxed
+ atomic_cxchg_acqrel_relaxed

// And so on.
```

- `seqcst` is no longer implied
- The failure ordering on chxchg is no longer implied in some cases, but now always explicitly part of the name.
- `release` is no longer shortened to just `rel`. That was especially confusing, since `relaxed` also starts with `rel`.
- `acquire` is no longer shortened to just `acq`, such that the names now all match the `std::sync::atomic::Ordering` variants exactly.
- This now allows for more combinations on the compare exchange operations, such as `atomic_cxchg_acquire_release`, which is necessary for #68464.
- This PR only exposes the new possibilities through unstable intrinsics, but not yet through the stable API. That's for [a separate PR](https://github.com/rust-lang/rust/pull/98383) that requires an FCP.

Suffixes for operations with a single memory order:

| Order   | Before       | After      |
|---------|--------------|------------|
| Relaxed | `_relaxed`   | `_relaxed` |
| Acquire | `_acq`       | `_acquire` |
| Release | `_rel`       | `_release` |
| AcqRel  | `_acqrel`    | `_acqrel`  |
| SeqCst  | (none)       | `_seqcst`  |

Suffixes for compare-and-exchange operations with two memory orderings:

| Success | Failure | Before                   | After              |
|---------|---------|--------------------------|--------------------|
| Relaxed | Relaxed | `_relaxed`               | `_relaxed_relaxed` |
| Relaxed | Acquire | :x:                      | `_relaxed_acquire` |
| Relaxed | SeqCst  | :x:                      | `_relaxed_seqcst`  |
| Acquire | Relaxed | `_acq_failrelaxed`       | `_acquire_relaxed` |
| Acquire | Acquire | `_acq`                   | `_acquire_acquire` |
| Acquire | SeqCst  | :x:                      | `_acquire_seqcst`  |
| Release | Relaxed | `_rel`                   | `_release_relaxed` |
| Release | Acquire | :x:                      | `_release_acquire` |
| Release | SeqCst  | :x:                      | `_release_seqcst`  |
| AcqRel  | Relaxed | `_acqrel_failrelaxed`    | `_acqrel_relaxed`  |
| AcqRel  | Acquire | `_acqrel`                | `_acqrel_acquire`  |
| AcqRel  | SeqCst  | :x:                      | `_acqrel_seqcst`   |
| SeqCst  | Relaxed | `_failrelaxed`           | `_seqcst_relaxed`  |
| SeqCst  | Acquire | `_failacq`               | `_seqcst_acquire`  |
| SeqCst  | SeqCst  | (none)                   | `_seqcst_seqcst`   |

23 months agoAuto merge of #98542 - jackh726:coinductive-wf, r=oli-obk
bors [Wed, 29 Jun 2022 03:22:47 +0000 (03:22 +0000)]
Auto merge of #98542 - jackh726:coinductive-wf, r=oli-obk

Make empty bounds lower to `WellFormed` and make `WellFormed` coinductive

r? rust-lang/types

23 months agoAuto merge of #98376 - nnethercote:improve-derive-PartialEq, r=petrochenkov
bors [Wed, 29 Jun 2022 00:20:57 +0000 (00:20 +0000)]
Auto merge of #98376 - nnethercote:improve-derive-PartialEq, r=petrochenkov

Improve some deriving code and add a test

The `.stdout` test is particularly useful.

r? `@petrochenkov`

23 months agoDo not use a suggestion to change a binding's name to a type
Michael Goulet [Tue, 28 Jun 2022 03:23:24 +0000 (20:23 -0700)]
Do not use a suggestion to change a binding's name to a type

23 months agoRemove redundant logic to suggest `as_ref`
Michael Goulet [Mon, 27 Jun 2022 22:43:23 +0000 (15:43 -0700)]
Remove redundant logic to suggest `as_ref`

23 months agoNote concrete type being coerced into object
Michael Goulet [Mon, 20 Jun 2022 04:04:06 +0000 (21:04 -0700)]
Note concrete type being coerced into object

23 months agoFix trait object reborrow suggestion
Michael Goulet [Mon, 20 Jun 2022 03:49:07 +0000 (20:49 -0700)]
Fix trait object reborrow suggestion

23 months agoAuto merge of #98475 - notriddle:notriddle/index-fn-signatures, r=GuillaumeGomez
bors [Tue, 28 Jun 2022 21:40:10 +0000 (21:40 +0000)]
Auto merge of #98475 - notriddle:notriddle/index-fn-signatures, r=GuillaumeGomez

rustdoc: reference function signature types from the `p` array

This reduces the size of the function signature index, because it's common to have many functions that operate on the same types.

    $ wc -c search-index-old.js search-index-new.js
    5224374 search-index-old.js
    3932314 search-index-new.js

By my math, this reduces the uncompressed size of the search index by 32%.
On compressed signatures, the wins are less drastic, a mere 8%:

    $ wc -c search-index-old.js.gz search-index-new.js.gz
    404532 search-index-old.js.gz
    371635 search-index-new.js.gz

23 months agoAuto merge of #98632 - matthiaskrgr:rollup-peg868d, r=matthiaskrgr
bors [Tue, 28 Jun 2022 18:36:42 +0000 (18:36 +0000)]
Auto merge of #98632 - matthiaskrgr:rollup-peg868d, r=matthiaskrgr

Rollup of 11 pull requests

Successful merges:

 - #98548 (rustdoc-json: Allow Typedef to be different in sanity assert)
 - #98560 (Add regression test for #85907)
 - #98564 (Remove references to `./tmp` in-tree)
 - #98602 (Add regression test for #80074)
 - #98606 (:arrow_up: rust-analyzer)
 - #98609 (Fix ICE for associated constant generics)
 - #98611 (Fix glob import ICE in rustdoc JSON format)
 - #98617 (Remove feature `const_option` from std)
 - #98619 (Fix mir-opt wg name)
 - #98621 (llvm-wrapper: adapt for removal of the ASanGlobalsMetadataAnalysis LLVM API)
 - #98623 (fix typo in comment)

Failed merges:

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

23 months agoRollup merge of #98623 - pro465:patch-1, r=Dylan-DPC
Matthias Krüger [Tue, 28 Jun 2022 16:34:36 +0000 (18:34 +0200)]
Rollup merge of #98623 - pro465:patch-1, r=Dylan-DPC

fix typo in comment

23 months agoRollup merge of #98621 - krasimirgg:llvm-15-wrapper, r=nikic
Matthias Krüger [Tue, 28 Jun 2022 16:34:35 +0000 (18:34 +0200)]
Rollup merge of #98621 - krasimirgg:llvm-15-wrapper, r=nikic

llvm-wrapper: adapt for removal of the ASanGlobalsMetadataAnalysis LLVM API

No functional changes intended.

This adapts llvm-wrapper for https://github.com/llvm/llvm-project/commit/dacfa24f75c328ae30b710ecadaa18e4ba10cdc6, which removed `ASanGlobalsMetadataAnalysis`.

Found via our experimental rust + HEAD llvm bot: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/11565#0181a72f-75bb-4378-88f0-4c0bca7d03fa/231-505.

23 months agoRollup merge of #98619 - Mark-Simulacrum:fix-triagebot, r=Dylan-DPC
Matthias Krüger [Tue, 28 Jun 2022 16:34:34 +0000 (18:34 +0200)]
Rollup merge of #98619 - Mark-Simulacrum:fix-triagebot, r=Dylan-DPC

Fix mir-opt wg name

r? ``@ehuss``

23 months agoRollup merge of #98617 - ChrisDenton:const-unwrap, r=Mark-Simulacrum
Matthias Krüger [Tue, 28 Jun 2022 16:34:33 +0000 (18:34 +0200)]
Rollup merge of #98617 - ChrisDenton:const-unwrap, r=Mark-Simulacrum

Remove feature `const_option` from std

This is part of the effort to reduce the number of unstable features used by std. This one is easy as it's only used in one place.

23 months agoRollup merge of #98611 - GuillaumeGomez:rustdoc-json-glob-ice, r=notriddle
Matthias Krüger [Tue, 28 Jun 2022 16:34:32 +0000 (18:34 +0200)]
Rollup merge of #98611 - GuillaumeGomez:rustdoc-json-glob-ice, r=notriddle

Fix glob import ICE in rustdoc JSON format

Fixes #98003.

r? `@notriddle`

23 months agoRollup merge of #98609 - TaKO8Ki:fix-ice-for-associated-constant-generics, r=lcnr
Matthias Krüger [Tue, 28 Jun 2022 16:34:31 +0000 (18:34 +0200)]
Rollup merge of #98609 - TaKO8Ki:fix-ice-for-associated-constant-generics, r=lcnr

Fix ICE for associated constant generics

Fixes #98432

23 months agoRollup merge of #98606 - lnicola:rust-analyzer-2022-06-28, r=lnicola
Matthias Krüger [Tue, 28 Jun 2022 16:34:30 +0000 (18:34 +0200)]
Rollup merge of #98606 - lnicola:rust-analyzer-2022-06-28, r=lnicola

:arrow_up: rust-analyzer

r? ``@ghost``

23 months agoRollup merge of #98602 - TaKO8Ki:add-regression-test-for-issue-80074, r=Mark-Simulacrum
Matthias Krüger [Tue, 28 Jun 2022 16:34:29 +0000 (18:34 +0200)]
Rollup merge of #98602 - TaKO8Ki:add-regression-test-for-issue-80074, r=Mark-Simulacrum

Add regression test for #80074

closes #80074

23 months agoRollup merge of #98564 - jyn514:remove-tmp-dir, r=Mark-Simulacrum
Matthias Krüger [Tue, 28 Jun 2022 16:34:28 +0000 (18:34 +0200)]
Rollup merge of #98564 - jyn514:remove-tmp-dir, r=Mark-Simulacrum

Remove references to `./tmp` in-tree

These used to be used by codegen-units tests, but were switched from manually specifying directories
to just using `// incremental` in https://github.com/rust-lang/rust/pull/89101.
Remove the old references.

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

23 months agoRollup merge of #98560 - TaKO8Ki:add-regression-test-for-85907, r=Mark-Simulacrum
Matthias Krüger [Tue, 28 Jun 2022 16:34:27 +0000 (18:34 +0200)]
Rollup merge of #98560 - TaKO8Ki:add-regression-test-for-85907, r=Mark-Simulacrum

Add regression test for #85907

closes #85907

23 months agoRollup merge of #98548 - Enselic:allow-typedef-diff-for-rustdoc-json, r=GuillaumeGomez
Matthias Krüger [Tue, 28 Jun 2022 16:34:26 +0000 (18:34 +0200)]
Rollup merge of #98548 - Enselic:allow-typedef-diff-for-rustdoc-json, r=GuillaumeGomez

rustdoc-json: Allow Typedef to be different in sanity assert

Closes #98547

This fix is a natural extension of #98053.

r? `@notriddle`

(Since you reviewed the other PR.)

CC `@GuillaumeGomez`

`@rustbot` labels +A-rustdoc-json +T-rustdoc

23 months agoAuto merge of #98188 - mystor:fast_group_punct, r=eddyb
bors [Tue, 28 Jun 2022 16:10:30 +0000 (16:10 +0000)]
Auto merge of #98188 - mystor:fast_group_punct, r=eddyb

proc_macro/bridge: stop using a remote object handle for proc_macro Punct and Group

This is the third part of https://github.com/rust-lang/rust/pull/86822, split off as requested in https://github.com/rust-lang/rust/pull/86822#pullrequestreview-1008655452. This patch transforms the `Punct` and `Group` types into structs serialized over IPC rather than handles, making them more efficient to create and manipulate from within proc-macros.

23 months agofix typo in comment
Proloy Mishra [Tue, 28 Jun 2022 14:29:09 +0000 (19:59 +0530)]
fix typo in comment

23 months agollvm-wrapper: adapt for an LLVM API change
Krasimir Georgiev [Tue, 28 Jun 2022 14:08:35 +0000 (14:08 +0000)]
llvm-wrapper: adapt for an LLVM API change

This adapts llvm-wrapper for
https://github.com/llvm/llvm-project/commit/dacfa24f75c328ae30b710ecadaa18e4ba10cdc6,
which removed ASanGlobalsMetadataAnalysis.

23 months agoreview changes
Nika Layzell [Tue, 28 Jun 2022 00:03:56 +0000 (20:03 -0400)]
review changes

longer names for RPC generics and reduced dependency on macros in the server.

23 months agoAuto merge of #98612 - Dylan-DPC:rollup-7tasikc, r=Dylan-DPC
bors [Tue, 28 Jun 2022 13:46:43 +0000 (13:46 +0000)]
Auto merge of #98612 - Dylan-DPC:rollup-7tasikc, r=Dylan-DPC

Rollup of 9 pull requests

Successful merges:

 - #97346 (Remove a back-compat hack on lazy TAIT)
 - #98261 (Remove `MAX_SUGGESTION_HIGHLIGHT_LINES`)
 - #98337 ([RFC 2011] Optimize non-consuming operators)
 - #98384 (Fix RSS reporting on macOS)
 - #98420 (translation: lint fix + more migration)
 - #98430 (Refactor iter adapters with less macros)
 - #98555 (Hermit: Fix initializing lazy locks)
 - #98595 (Implement `Send` and `Sync` for `ThinBox<T>`)
 - #98597 (Remove unstable CStr/CString change from 1.62 release note)

Failed merges:

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

23 months agoFix mir-opt wg name
Mark Rousskov [Tue, 28 Jun 2022 12:14:42 +0000 (08:14 -0400)]
Fix mir-opt wg name

23 months agoAdd a fixme comment
Chris Denton [Tue, 28 Jun 2022 11:18:16 +0000 (12:18 +0100)]
Add a fixme comment

23 months agoRemove feature `const_option` from std
Chris Denton [Tue, 28 Jun 2022 10:37:48 +0000 (11:37 +0100)]
Remove feature `const_option` from std

23 months agoRollup merge of #98597 - wwylele:patch-1, r=Mark-Simulacrum
Dylan DPC [Tue, 28 Jun 2022 10:00:08 +0000 (15:30 +0530)]
Rollup merge of #98597 - wwylele:patch-1, r=Mark-Simulacrum

Remove unstable CStr/CString change from 1.62 release note

(Discovered in https://github.com/rust-lang/rust/pull/98571#discussion_r907469604)

The change to move CStr/CString to core/alloc is currently behind feature flags as stated in https://github.com/rust-lang/rust/issues/98314

23 months agoRollup merge of #98595 - cuviper:send-sync-thinbox, r=m-ou-se
Dylan DPC [Tue, 28 Jun 2022 10:00:07 +0000 (15:30 +0530)]
Rollup merge of #98595 - cuviper:send-sync-thinbox, r=m-ou-se

Implement `Send` and `Sync` for `ThinBox<T>`

Just like `Box<T>`, `ThinBox<T>` owns its data on the heap, so it should
implement `Send` and `Sync` when `T` does.

This extends tracking issue #92791.

23 months agoRollup merge of #98555 - mkroening:hermit-lock-init, r=m-ou-se
Dylan DPC [Tue, 28 Jun 2022 10:00:06 +0000 (15:30 +0530)]
Rollup merge of #98555 - mkroening:hermit-lock-init, r=m-ou-se

Hermit: Fix initializing lazy locks

Closes https://github.com/hermitcore/rusty-hermit/issues/322.

The initialization function of hermit's `Condvar` is not called since https://github.com/rust-lang/rust/pull/97647 and was erroneously removed in https://github.com/rust-lang/rust/pull/97879.

r? ``@m-ou-se``

CC: ``@stlankes``
23 months agoRollup merge of #98430 - camsteffen:flatten-refactor, r=joshtriplett
Dylan DPC [Tue, 28 Jun 2022 10:00:05 +0000 (15:30 +0530)]
Rollup merge of #98430 - camsteffen:flatten-refactor, r=joshtriplett

Refactor iter adapters with less macros

Just some code cleanup. Introduced a util `and_then_or_clear` for each of chain, flatten and fuse iter adapter impls. This reduces code nicely for flatten, but admittedly the other modules are more of a lateral move replacing macros with a function. But I think consistency across the modules and avoiding macros when possible is good.

23 months agoRollup merge of #98420 - davidtwco:translation-lint-fixes-and-more-migration, r=compi...
Dylan DPC [Tue, 28 Jun 2022 10:00:04 +0000 (15:30 +0530)]
Rollup merge of #98420 - davidtwco:translation-lint-fixes-and-more-migration, r=compiler-errors

translation: lint fix + more migration

- Unfortunately, the diagnostic lints are very broken and trigger much more often than they should. This PR corrects the conditional which checks if the function call being made is to a diagnostic function so that it returns in every intended case.
- The `rustc_lint_diagnostics` attribute is used by the diagnostic translation/struct migration lints to identify calls where non-translatable diagnostics or diagnostics outwith impls are being created. Any function used in creating a diagnostic should be annotated with this attribute so this PR adds the attribute to many more functions.
- Port the diagnostics from the `rustc_privacy` crate and enable the lints for that crate.

r? ``@compiler-errors``

23 months agoRollup merge of #98384 - rdzhaafar:fix-macos-rss-reporting, r=davidtwco,michaelwoerister
Dylan DPC [Tue, 28 Jun 2022 10:00:03 +0000 (15:30 +0530)]
Rollup merge of #98384 - rdzhaafar:fix-macos-rss-reporting, r=davidtwco,michaelwoerister

Fix RSS reporting on macOS

> NOTE: This is a duplicate of #98164, which I closed because I borked my rustc fork

Currently, `rustc_data_structures::profiling::get_resident_set_size()` always returns `None` on macOS. This is because
macOS does not implement procfs used in the unix version of the function:

```rust
...
else if #[cfg(unix)] {
        pub fn get_resident_set_size() -> Option<usize> {
            let field = 1;
            let contents = fs::read("/proc/self/statm").ok()?;
            let contents = String::from_utf8(contents).ok()?;
            let s = contents.split_whitespace().nth(field)?;
            let npages = s.parse::<usize>().ok()?;
            Some(npages * 4096)
        }
...
```

The proposed solution uses libproc, and more specifically `proc_pidinfo`, which has been available on macOS since 10.5 if the function signature inside libproc.h is to be believed:

```c
int proc_pidinfo(int pid, int flavor, uint64_t arg, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
```

23 months agoRollup merge of #98337 - c410-f3r:assert-compiler, r=oli-obk
Dylan DPC [Tue, 28 Jun 2022 10:00:02 +0000 (15:30 +0530)]
Rollup merge of #98337 - c410-f3r:assert-compiler, r=oli-obk

[RFC 2011] Optimize non-consuming operators

Tracking issue: https://github.com/rust-lang/rust/issues/44838
Fifth step of https://github.com/rust-lang/rust/pull/96496

The most non-invasive approach that will probably have very little to no performance impact.

## Current behaviour

Captures are handled "on-the-fly", i.e., they are performed in the same place expressions are located.

```rust
// `let a = 1; let b = 2; assert!(a > 1 && b < 100);`

if !(
  { ***try capture `a` and then return `a`*** } > 1 && { ***try capture `b` and then return `b`*** } < 100
) {
  panic!( ... );
}
```

As such, some overhead is likely to occur (Specially with very large chains of conditions).

## New behaviour for non-consuming operators

When an operator is known to not take `self`, then it is possible to capture variables **AFTER** the condition.

```rust
// `let a = 1; let b = 2; assert!(a > 1 && b < 100);`

if !( a > 1 && b < 100 ) {
  { ***try capture `a`*** }
  { ***try capture `b`*** }
  panic!( ... );
}
```

So the possible impact on the runtime execution time will be diminished.

r? ````@oli-obk````

23 months agoRollup merge of #98261 - WaffleLapkin:attempt_to_remove_max_suggestion_highlight_line...
Dylan DPC [Tue, 28 Jun 2022 10:00:01 +0000 (15:30 +0530)]
Rollup merge of #98261 - WaffleLapkin:attempt_to_remove_max_suggestion_highlight_lines, r=flip1995

Remove `MAX_SUGGESTION_HIGHLIGHT_LINES`

After #97798 the `MAX_SUGGESTION_HIGHLIGHT_LINES` constant doesn't really make sense since we always show full suggestions. This PR removes last usages of the constant and the constant itself.

r? ``@flip1995`` (this mostly does changes in clippy)

23 months agoRollup merge of #97346 - JohnTitor:remove-back-compat-hacks, r=oli-obk
Dylan DPC [Tue, 28 Jun 2022 10:00:00 +0000 (15:30 +0530)]
Rollup merge of #97346 - JohnTitor:remove-back-compat-hacks, r=oli-obk

Remove a back-compat hack on lazy TAIT

This PR's motivation is here: https://github.com/rust-lang/rust/issues/72614#issuecomment-1134595446
~~But removing a hack doesn't seem to reject the code on the issue, there're some more hacks?~~
r? ``@oli-obk``

23 months agoAuto merge of #98396 - cjgillot:iwfchir, r=petrochenkov
bors [Tue, 28 Jun 2022 09:48:18 +0000 (09:48 +0000)]
Auto merge of #98396 - cjgillot:iwfchir, r=petrochenkov

Do not access HIR to check impl wf.

r? `@ghost`

23 months agoAdd regression test for glob import ICE in rustdoc JSON
Guillaume Gomez [Tue, 28 Jun 2022 09:46:24 +0000 (11:46 +0200)]
Add regression test for glob import ICE in rustdoc JSON

23 months agoFix glob import ICE in rustdoc JSON format
Guillaume Gomez [Tue, 28 Jun 2022 09:46:03 +0000 (11:46 +0200)]
Fix glob import ICE in rustdoc JSON format

23 months agofix ice for associated constant generics
Takayuki Maeda [Tue, 28 Jun 2022 09:29:07 +0000 (18:29 +0900)]
fix ice for associated constant generics

23 months agotest/rustdoc-json/assoc_type.rs: Maximize chance of detecting future ICEs
Martin Nordholts [Tue, 28 Jun 2022 09:02:14 +0000 (11:02 +0200)]
test/rustdoc-json/assoc_type.rs: Maximize chance of detecting future ICEs

23 months agorustdoc-json: Add assoc type ICE regression test
Martin Nordholts [Sun, 26 Jun 2022 18:22:04 +0000 (20:22 +0200)]
rustdoc-json: Add assoc type ICE regression test

23 months agoRename/restructure memory ordering intrinsics.
Mara Bos [Wed, 22 Jun 2022 11:02:23 +0000 (13:02 +0200)]
Rename/restructure memory ordering intrinsics.

23 months ago:arrow_up: rust-analyzer
Laurențiu Nicola [Tue, 28 Jun 2022 06:54:21 +0000 (09:54 +0300)]
:arrow_up: rust-analyzer

23 months agoAuto merge of #98324 - conradludgate:write-vectored-vec, r=Mark-Simulacrum
bors [Tue, 28 Jun 2022 06:25:19 +0000 (06:25 +0000)]
Auto merge of #98324 - conradludgate:write-vectored-vec, r=Mark-Simulacrum

attempt to optimise vectored write

benchmarked:

old:
```
test io::cursor::tests::bench_write_vec                     ... bench:          68 ns/iter (+/- 2)
test io::cursor::tests::bench_write_vec_vectored            ... bench:         913 ns/iter (+/- 31)
```

new:
```
test io::cursor::tests::bench_write_vec                     ... bench:          64 ns/iter (+/- 0)
test io::cursor::tests::bench_write_vec_vectored            ... bench:         747 ns/iter (+/- 27)
```

More unsafe than I wanted (and less gains) in the end, but it still does the job

23 months agoUse typed indices in argument mismatch algorithm
Michael Goulet [Mon, 30 May 2022 04:45:51 +0000 (21:45 -0700)]
Use typed indices in argument mismatch algorithm

23 months agoTake into account trait predicate coinductiveness
Jack Huey [Sun, 26 Jun 2022 22:59:29 +0000 (18:59 -0400)]
Take into account trait predicate coinductiveness

23 months agoMake empty bounds lower to WellFormed and make WellFormed coinductive
Jack Huey [Sun, 26 Jun 2022 15:08:58 +0000 (11:08 -0400)]
Make empty bounds lower to WellFormed and make WellFormed coinductive

23 months agoAuto merge of #98222 - cjgillot:single-wf, r=michaelwoerister
bors [Tue, 28 Jun 2022 03:44:33 +0000 (03:44 +0000)]
Auto merge of #98222 - cjgillot:single-wf, r=michaelwoerister

Only keep a single query for well-formed checking

There are currently 3 queries to perform wf checks on different item-likes.  This complexity is not required.

This PR replaces the query by:
- one query per item;
- one query to invoke it for a whole module.

This allows to remove HIR `ParItemLikeVisitor`.

23 months agoadd regression test for #80074
Takayuki Maeda [Tue, 28 Jun 2022 03:28:04 +0000 (12:28 +0900)]
add regression test for #80074

23 months agoRemove unstable CStr/CString change from 1.62 release note
Weiyi Wang [Mon, 27 Jun 2022 23:35:33 +0000 (19:35 -0400)]
Remove unstable CStr/CString change from 1.62 release note

(Discovered in https://github.com/rust-lang/rust/pull/98571#discussion_r907469604)

The change to move CStr/CString to core/alloc is currently behind feature flags as stated in https://github.com/rust-lang/rust/issues/98314

23 months agoImplement `Send` and `Sync` for `ThinBox<T>`
Josh Stone [Mon, 27 Jun 2022 22:49:59 +0000 (15:49 -0700)]
Implement `Send` and `Sync` for `ThinBox<T>`

Just like `Box<T>`, `ThinBox<T>` owns its data on the heap, so it should
implement `Send` and `Sync` when `T` does.

23 months agoAuto merge of #98591 - matthiaskrgr:rollup-7dok1wq, r=matthiaskrgr
bors [Mon, 27 Jun 2022 22:22:58 +0000 (22:22 +0000)]
Auto merge of #98591 - matthiaskrgr:rollup-7dok1wq, r=matthiaskrgr

Rollup of 9 pull requests

Successful merges:

 - #98331 (Fix rustdoc argument error)
 - #98506 (Fix span issues in object safety suggestions)
 - #98563 (interpret: refactor allocation info query)
 - #98576 (small regions refactoring)
 - #98577 (Fix "kind" for associated types in trait implementations in rustdoc JSON)
 - #98578 (Remove eddyb from miri failure pings)
 - #98579 (liballoc tests: avoid int2ptr cast)
 - #98581 (Add triagebot mentions.)
 - #98587 (libcore tests: avoid int2ptr casts)

Failed merges:

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

23 months agoAdd comments, fixes for `0` sentinel
Michael Howell [Mon, 27 Jun 2022 21:13:13 +0000 (14:13 -0700)]
Add comments, fixes for `0` sentinel

23 months agoRollup merge of #98587 - RalfJung:core-tests, r=thomcc
Matthias Krüger [Mon, 27 Jun 2022 20:35:14 +0000 (22:35 +0200)]
Rollup merge of #98587 - RalfJung:core-tests, r=thomcc

libcore tests: avoid int2ptr casts

We don't need any of these pointers to actually be dereferenceable so using `ptr::invalid` should be fine. And then we can run Miri with strict provenance enforcement on the tests.

23 months agoRollup merge of #98581 - ehuss:triagebot-mentions, r=Mark-Simulacrum
Matthias Krüger [Mon, 27 Jun 2022 20:35:14 +0000 (22:35 +0200)]
Rollup merge of #98581 - ehuss:triagebot-mentions, r=Mark-Simulacrum

Add triagebot mentions.

This migrates the configuration of mentions from highfive to triagebot.

I also fixed a few broken paths (error_codes.rs src/librustdoc/html/static/themes src/librustdoc/html/static/themes/ayu.css).

23 months agoRollup merge of #98579 - RalfJung:alloc-tests, r=thomcc
Matthias Krüger [Mon, 27 Jun 2022 20:35:13 +0000 (22:35 +0200)]
Rollup merge of #98579 - RalfJung:alloc-tests, r=thomcc

liballoc tests: avoid int2ptr cast

I think we don't need `ptr::from_exposed_addr` here; `ptr::invalid` should be enough for this test. (And this makes Miri less unhappy when running these tests.)

23 months agoRollup merge of #98578 - rust-lang:oli-obk-patch-1, r=eddyb
Matthias Krüger [Mon, 27 Jun 2022 20:35:11 +0000 (22:35 +0200)]
Rollup merge of #98578 - rust-lang:oli-obk-patch-1, r=eddyb

Remove eddyb from miri failure pings

r? `@eddyb`

23 months agoRollup merge of #98577 - GuillaumeGomez:associated-items, r=notriddle
Matthias Krüger [Mon, 27 Jun 2022 20:35:11 +0000 (22:35 +0200)]
Rollup merge of #98577 - GuillaumeGomez:associated-items, r=notriddle

Fix "kind" for associated types in trait implementations in rustdoc JSON

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

Contrary to what is suggested in the issue, I really think we should distinguish between associated items and "normal" constants and types.

cc `@CraftSpider` `@SimonSapin`
r? `@notriddle`

23 months agoRollup merge of #98576 - lcnr:region-stuff-cool-beans, r=jackh726
Matthias Krüger [Mon, 27 Jun 2022 20:35:09 +0000 (22:35 +0200)]
Rollup merge of #98576 - lcnr:region-stuff-cool-beans, r=jackh726

small regions refactoring

these commits should be fairly self-contained

r? rust-lang/types

23 months agoRollup merge of #98563 - RalfJung:interpret-alloc-check, r=oli-obk
Matthias Krüger [Mon, 27 Jun 2022 20:35:08 +0000 (22:35 +0200)]
Rollup merge of #98563 - RalfJung:interpret-alloc-check, r=oli-obk

interpret: refactor allocation info query

We now have an infallible function that also tells us which kind of allocation we are talking about.
Also we do longer have to distinguish between data and function allocations for liveness.

This will help us to avoid "catching" `InterpError`s in Miri.
r? `@oli-obk`

23 months agoRollup merge of #98506 - compiler-errors:object-safety-suggestions, r=oli-obk
Matthias Krüger [Mon, 27 Jun 2022 20:35:07 +0000 (22:35 +0200)]
Rollup merge of #98506 - compiler-errors:object-safety-suggestions, r=oli-obk

Fix span issues in object safety suggestions

Fixes #98500

23 months agoRollup merge of #98331 - GuillaumeGomez:rustdoc-arg-error, r=notriddle
Matthias Krüger [Mon, 27 Jun 2022 20:35:06 +0000 (22:35 +0200)]
Rollup merge of #98331 - GuillaumeGomez:rustdoc-arg-error, r=notriddle

Fix rustdoc argument error

Fixes #88756.

It's a take over of #88831. I cherry-picked the commits, fixed the merge conflict and the failing test.

cc `@inashivb` `@jyn514`

r? `@notriddle`

23 months agoAuto merge of #97307 - SparrowLii:parallel, r=cjgillot
bors [Mon, 27 Jun 2022 19:42:09 +0000 (19:42 +0000)]
Auto merge of #97307 - SparrowLii:parallel, r=cjgillot

catch unwind in parallel mode during wfcheck

Update #75760
When performing wfcheck, from the test results, the parallel mode will stop all checks when an `item`'s check failed, (e.g. the first ui test failure raised from [here](https://github.com/rust-lang/rust/blob/master/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs#L249))while the serial mode will output each `item`'s check result via `catch_unwind`. This leads to inconsistencies in the final output of the two mode.
In my local environment, this modification prevents the following ui tests from failing when set `parallel-compiler = true` in `config.toml`:

```
    [ui] src/test\ui\associated-types\defaults-cyclic-fail-1.rs
    [ui] src/test\ui\associated-types\defaults-cyclic-fail-2.rs
    [ui] src/test\ui\associated-types\hr-associated-type-bound-2.rs
    [ui] src/test\ui\associated-types\impl-wf-cycle-1.rs
    [ui] src/test\ui\associated-types\impl-wf-cycle-2.rs
    [ui] src/test\ui\issues\issue-20413.rs
    [ui] src/test\ui\parallel_test\defaults-cyclic-fail-para.rs
```

23 months agoUpdate src/librustdoc/html/static/js/externs.js
Michael Howell [Mon, 27 Jun 2022 19:07:13 +0000 (12:07 -0700)]
Update src/librustdoc/html/static/js/externs.js

Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
23 months agoAdd triagebot mentions.
Eric Huss [Mon, 27 Jun 2022 15:57:06 +0000 (08:57 -0700)]
Add triagebot mentions.

23 months agoPut back, fix ()-output optimization
Michael Howell [Mon, 27 Jun 2022 18:07:45 +0000 (11:07 -0700)]
Put back, fix ()-output optimization

23 months agoAdd documentation
Michael Howell [Mon, 27 Jun 2022 18:07:16 +0000 (11:07 -0700)]
Add documentation

23 months agolibcore tests: avoid int2ptr casts
Ralf Jung [Mon, 27 Jun 2022 15:09:53 +0000 (11:09 -0400)]
libcore tests: avoid int2ptr casts

23 months agoAuto merge of #98566 - matthiaskrgr:rollup-43etyls, r=matthiaskrgr
bors [Mon, 27 Jun 2022 16:28:58 +0000 (16:28 +0000)]
Auto merge of #98566 - matthiaskrgr:rollup-43etyls, r=matthiaskrgr

Rollup of 5 pull requests

Successful merges:

 - #97389 (Improve memory ordering diagnostics)
 - #97780 (Check ADT field is well-formed before checking it is sized)
 - #98530 (compiletest: add issue number param to `known-bug`)
 - #98556 (Fix builds on Windows (closes #98546))
 - #98561 (Fix spelling in SAFETY comment)

Failed merges:

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

23 months agomake AllocKind actually public
Ralf Jung [Mon, 27 Jun 2022 14:58:30 +0000 (10:58 -0400)]
make AllocKind actually public

23 months agoliballoc tests: avoid int2ptr cast
Ralf Jung [Mon, 27 Jun 2022 14:50:56 +0000 (10:50 -0400)]
liballoc tests: avoid int2ptr cast

23 months agoRemove eddyb from miri failure pings
Oli Scherer [Mon, 27 Jun 2022 14:08:19 +0000 (16:08 +0200)]
Remove eddyb from miri failure pings

23 months agolower-generic vs. outlive
lcnr [Mon, 27 Jun 2022 14:06:46 +0000 (16:06 +0200)]
lower-generic vs. outlive

23 months agoAdd test for associated items in rustdoc JSON
Guillaume Gomez [Mon, 27 Jun 2022 13:59:18 +0000 (15:59 +0200)]
Add test for associated items in rustdoc JSON

23 months agoFix kind for associated types in rustdoc JSON output for trait implementations
Guillaume Gomez [Mon, 27 Jun 2022 13:59:02 +0000 (15:59 +0200)]
Fix kind for associated types in rustdoc JSON output for trait implementations

23 months agofold_region: remove unused parameter
lcnr [Mon, 27 Jun 2022 13:55:03 +0000 (15:55 +0200)]
fold_region: remove unused parameter

23 months agooutside of borrowck, do not provide an implicit_region_bound
lcnr [Mon, 27 Jun 2022 13:48:54 +0000 (15:48 +0200)]
outside of borrowck, do not provide an implicit_region_bound

see comment added to the field in `VerifyBoundCx`.

23 months agoRemove a back-compat hack on lazy TAIT
Yuki Okushi [Tue, 24 May 2022 08:55:13 +0000 (17:55 +0900)]
Remove a back-compat hack on lazy TAIT

23 months agoFinish rustdoc error improvement
Guillaume Gomez [Tue, 21 Jun 2022 10:05:59 +0000 (12:05 +0200)]
Finish rustdoc error improvement

23 months agoAdd test for help output with -W
Shivani Bhardwaj [Thu, 27 Jan 2022 08:17:10 +0000 (13:47 +0530)]
Add test for help output with -W

23 months agoAdd test for default rustdoc run
Shivani Bhardwaj [Wed, 15 Sep 2021 01:28:59 +0000 (06:58 +0530)]
Add test for default rustdoc run

23 months agoFix `rustdoc` argument error
Shivani Bhardwaj [Fri, 10 Sep 2021 18:35:16 +0000 (00:05 +0530)]
Fix `rustdoc` argument error

23 months agocatch unwind of every iter in parallel mode during wfcheck
SparrowLii [Mon, 27 Jun 2022 08:39:10 +0000 (16:39 +0800)]
catch unwind of every iter in parallel mode during wfcheck

23 months agoprivacy: deny diagnostic migration lints
David Wood [Wed, 22 Jun 2022 13:17:14 +0000 (14:17 +0100)]
privacy: deny diagnostic migration lints

Signed-off-by: David Wood <david.wood@huawei.com>
23 months agoprivacy: port "in public interface" diag
David Wood [Wed, 22 Jun 2022 13:11:39 +0000 (14:11 +0100)]
privacy: port "in public interface" diag

Signed-off-by: David Wood <david.wood@huawei.com>
23 months agoprivacy: port unnamed "item is private" diag
David Wood [Wed, 22 Jun 2022 12:42:30 +0000 (13:42 +0100)]
privacy: port unnamed "item is private" diag

Signed-off-by: David Wood <david.wood@huawei.com>
23 months agoprivacy: port "item is private" diag
David Wood [Wed, 22 Jun 2022 12:31:24 +0000 (13:31 +0100)]
privacy: port "item is private" diag

Signed-off-by: David Wood <david.wood@huawei.com>