214681 Commits

Author SHA1 Message Date
bors
ab10908e8c Auto merge of #106409 - matthiaskrgr:rollup-b58z1hz, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #104552 (warn newer available version of the x tool)
 - #105681 (some fixes/improvements to mir::visit module)
 - #106005 (Test the borrowck behavior of if-let guards)
 - #106356 (clean: Remove `ctor_kind` from `VariantStruct`.)
 - #106365 (Grammar : Missing "is" in format specifier diagnostic)
 - #106388 (rustdoc: remove legacy box-sizing CSS)
 - #106392 (`has_overflow` only if value is *not* within limit)
 - #106402 (Fix dupe word typos)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-01-03 17:08:17 +00:00
Nilstrieb
25c153149e Add build_helper crate to share code between tidy and bootstrap 2023-01-03 17:45:34 +01:00
Matthias Krüger
e2f7108459
Rollup merge of #106402 - Rageking8:fix_dupe_word_typos, r=Nilstrieb
Fix dupe word typos

r? `@Nilstrieb`
Thanks!
2023-01-03 17:12:13 +01:00
Matthias Krüger
9d1193310f
Rollup merge of #106392 - compiler-errors:new-trait-solver-overflow, r=lcnr
`has_overflow` only if value is *not* within limit

New solver forgot a not operator, I think.
2023-01-03 17:12:13 +01:00
Matthias Krüger
83b11f70ad
Rollup merge of #106388 - notriddle:notriddle/box-sizing, r=camelid
rustdoc: remove legacy box-sizing CSS

According to [caniuse], these vendor prefixes aren't needed in any supported web browsers as defined in [RFC 1985]

* The last version of Chrome that required a vendor prefix was version 9. The current version is 108.
* Firefox 28 is the last version that required a vendor prefix. The [current Firefox ESR] is version 102.
* The last version of Safari that required a vendor prefix was version 5. The current version is 16.
* The last version of Safari/iOS that required a vendor prefix was version 4. The current version is 16.
* Edge never required vendor prefixes.
* UCAndroid never required vendor prefixes.

[caniuse]: https://caniuse.com/?search=box-sizing
[RFC 1985]: https://rust-lang.github.io/rfcs/1985-tiered-browser-support.html
[current Firefox ESR]: https://wiki.mozilla.org/Releases
2023-01-03 17:12:12 +01:00
Matthias Krüger
01d99f6569
Rollup merge of #106365 - gimbles:patch-1, r=jyn514
Grammar : Missing "is" in format specifier diagnostic
2023-01-03 17:12:12 +01:00
Matthias Krüger
a0458d41ba
Rollup merge of #106356 - aDotInTheVoid:del-ctor-kind, r=jyn514
clean: Remove `ctor_kind` from `VariantStruct`.

It's always `None`.

r? `@ghost`
2023-01-03 17:12:11 +01:00
Matthias Krüger
6e94012c67
Rollup merge of #106005 - LeSeulArtichaut:if-let-guard-borrowck-test, r=Nilstrieb
Test the borrowck behavior of if-let guards

Add some tests to make sure that if-let guards behave the same as if guards with respect to borrow-checking. Most of them are a naive adaptation, replacing an `if` guard with `if let Some(())`.
This includes regression tests for notable issues that arose for if guards (#24535, #27282, #29723, #31287) as suggested in https://github.com/rust-lang/rust/issues/51114#issuecomment-900470419.

cc `@pnkfelix` are there any other tests that you would want to see?
cc tracking issue #51114
2023-01-03 17:12:11 +01:00
Matthias Krüger
da07053ee1
Rollup merge of #105681 - tshepang:doc-mir-visit, r=Nilstrieb
some fixes/improvements to mir::visit module
2023-01-03 17:12:10 +01:00
Matthias Krüger
258a0fb89e
Rollup merge of #104552 - DebugSteven:warn-newer-x, r=jyn514
warn newer available version of the x tool

This PR adds a check to `tidy` to assert that the installed version of `x` is equal to the version in `src/tools/x/Cargo.toml`. It adds a `--wrapper-version` argument to `x` to determine the version at runtime, .

It does not warn if `x` has not yet been installed, on the assumption that the user isn't interested in using it.
2023-01-03 17:12:10 +01:00
Nixon Enraght-Moony
f1f99c611a clean: Remove ctor_kind from VariantStruct.
It's always `None`.
2023-01-03 15:10:53 +00:00
Nixon Enraght-Moony
226ab7fd75 jsondoclint: Add option to dump errors as json.
The output looks like:
{
  "errors": [
    {
      "id": "2:2017:1833",
      "kind": {
        "NotFound": [
          [
            {"Field": "index"},
            {"Field": "0:0:1571"},
            {"Field": "links"},
            {"Field": "pointer::read"}
          ]
        ]
      }
    }
  ],
  "path": "/home/nixon/dev/rust/rust/build/x86_64-unknown-linux-gnu/test/rustdoc-json/intra-doc-links/pointer_method/pointer_method.json"
}
2023-01-03 14:54:46 +00:00
Nixon Enraght-Moony
95329080d3 jsondoclint: Find selector for missing ID when error is created, not reported.
This is needed for json output, but even without that, it increases
performance massivly. On my machine, in reduces the time to check
core.json from 40.190s to 11.333s.
2023-01-03 14:54:46 +00:00
Nixon Enraght-Moony
855b7e8cf3 jsondoclint: Add --verbose flag.
Without verbose:
    0:61941:36627 not in index or paths, but refered to at '$.index["0:62007"].inner.for.inner.id' and 12 more

With verbose:
    0:10808:27206 not in index or paths, but refered to at '$.index["0:10813"].inner.for.inner.id', '$.index["0:52495"].inner.for.inner.id', '$.index["a:0:2666:215-0:10808:27206"].inner.for.inner.id', '$.index["a:0:2680:223-0:10808:27206"].inner.for.inner.id', '$.index["a:0:2730:7845-0:10808:27206"].inner.for.inner.id', '$.index["a:0:7731:21706-0:10808:27206"].inner.for.inner.id', '$.index["a:0:7732:21705-0:10808:27206"].inner.for.inner.id'
2023-01-03 14:54:46 +00:00
Nixon Enraght-Moony
7680b164b0 jsondoclint: Parse args with clap. 2023-01-03 14:54:46 +00:00
bors
a97c71f92d Auto merge of #13887 - Veykril:rustc-diag-preferred, r=Veykril
Only set machine-applicable rustc diagnostics as preferred

If they aren't machine applicable, then they might not be what the user wants, disrupting the workflow.
Example being:
![image](https://user-images.githubusercontent.com/3757771/210380233-ae25aa04-954e-4634-8dd1-4377cc2bd837.png)
Prior to the PR this the diagnostic quickfix was at the top, but usually isn't what the user wants.
2023-01-03 14:47:18 +00:00
Lukas Wirth
b6bb1e9ae7 Only set machine-applicable rustc diagnostics as preferred 2023-01-03 15:46:08 +01:00
bors
312c9a37f2 Auto merge of #101792 - lqd:rust-lld, r=petrochenkov
Only specify `--target` by default for `-Zgcc-ld=lld` on wasm

On macOS, it's not yet clear which cases of clang/OS/target/SDK version impact how to find ld/lld/rust-lld. The `--target` argument is not needed on our current targets with a vanilla config to do so, but may be in some cases ?

That is, things look to be different and more subtle than suggested in https://github.com/rust-lang/rust/issues/97402#issuecomment-1147404520.

Specifying this argument unconditionally currently breaks `-Zgcc-ld=lld` on the 10.7+ targets on x64 macOS. Vanilla configs on x64 and aarch64 don't seem to need it to be able to find `rust-lld`.

This fixes #101653 on macOS (I've tried on x64 and aarch64: vanilla installs with the most recent command line tools available for each of the OS versions I have access to, `run-make/issue-71519` passes).

I didn't expect the previous PRs to fail because of the existing tests, but CI does not actually run those tests yet, which explains the regressions. I was hoping to fix those in this PR but it's more involved (building lld is required for the tests to run, llvm/lld is not built on the test builders but on the dist builders, the dist builders don't run tests). This PR is just to unblock current users on macOS who have reported issues, but a regression could happen in the future by mistake until then.

r? `@petrochenkov`
2023-01-03 14:05:44 +00:00
bors
e1968dd612 Auto merge of #2747 - RalfJung:rustup, r=RalfJung
Rustup
2023-01-03 13:50:22 +00:00
Ralf Jung
794cc0854a clippy 2023-01-03 14:49:53 +01:00
bors
0b14cd9671 Auto merge of #13886 - Veykril:inlay-ligatures, r=Veykril
Use ZWNJ to prevent VSCode from forming ligatures between hints and code

Turns out VSCode still has this issue for native hints as well, cc https://github.com/rust-lang/rust-analyzer/pull/6236
2023-01-03 11:33:17 +00:00
Lukas Wirth
c4d8cf1dad Use ZWNJ to prevent VSCode from forming ligatures between hints and code 2023-01-03 12:32:38 +01:00
Ralf Jung
d96592b4fd Merge from rustc 2023-01-03 12:22:11 +01:00
Ralf Jung
99fc745656 Preparing for merge from rustc 2023-01-03 12:21:37 +01:00
Nikita Popov
2bf39cfa25 Update LLVM submodule 2023-01-03 12:08:02 +01:00
bors
b435960c4c Auto merge of #95644 - WaffleLapkin:str_split_as_str_refactor_take2, r=Amanieu
`Split*::as_str` refactor

I've made this patch almost a year ago, so the rename and the behavior change are in one commit, sorry 😅

This fixes #84974, as it's required to make other changes work.

This PR
- Renames `as_str` method of string `Split*` iterators to `remainder` (it seems like the `as_str` name was confusing to users)
- Makes `remainder` return `Option<&str>`, to distinguish between "the iterator is exhausted" and "the tail is empty", this was [required on the tracking issue](https://github.com/rust-lang/rust/issues/77998#issuecomment-832696619)

r? `@m-ou-se`
2023-01-03 11:06:08 +00:00
bors
5033213fc9 Auto merge of #13885 - Veykril:bin-op-adjust, r=Veykril
Skip lifetime elision on fn pointers and fn trait types

These currently don't work correctly, so it's better to not render them at all there
2023-01-03 10:59:21 +00:00
Lukas Wirth
b996a54cd8 Skip lifetime elision on fn pointers and fn trait types 2023-01-03 11:58:31 +01:00
bors
50801b7d6a Auto merge of #13853 - veber-alex:diag_fix, r=Veykril
Use diagnostic code as link to full message

fixes #13823 by adding a vscode setting that will keeping the existing diagnostic code and use it as a link to the full compiler error message.
While I was there I also fixed `index` to fallback to `rendered.length` to make the previewRustcOutput feature work.
2023-01-03 09:40:20 +00:00
bors
3b1c8a94a4 Auto merge of #105609 - bjorn3:shrink_rustc_dev, r=jyn514
Only include metadata for non-dynamic libraries in rustc-dev

The actual object code should be linked from librustc_driver.so, which is still included in rustc-dev. This saves on download time and disk usage.

Fixes https://github.com/rust-lang/rust/issues/103538
2023-01-03 08:05:54 +00:00
Rageking8
e808a69911 fix dupe word typos 2023-01-03 15:48:16 +08:00
Alex Veber
ddc0147d53 Fix diagnostic code 2023-01-03 08:33:27 +02:00
bors
442f997f98 Auto merge of #106371 - RalfJung:no-ret-position-noalias, r=nikic
do not add noalias in return position

`noalias` as a return attribute in LLVM indicates that the returned pointer does not alias anything else that is reachable from the caller, *including things reachable before this function call*. This is clearly not the case with a function like `fn id(Box<T>) -> Box<T>`, so we cannot use this attribute.

Fixes https://github.com/rust-lang/unsafe-code-guidelines/issues/385 (including an actual miscompilation that `@comex` managed to produce).
2023-01-03 04:54:03 +00:00
J Haigh
85f649fd27
no_deps
Co-authored-by: Joshua Nelson <github@jyn.dev>
2023-01-02 20:49:18 -07:00
Joshua Nelson
6f1d9ba581 Allow passing a specific date to bump-stage0
This allows regenerating `src/stage0.json` on changes to the tool,
without needing to hard-code the date in the source.
2023-01-03 03:40:58 +00:00
DebugSteven
376dd8a9b3 use cargo_metadata to get x version 2023-01-02 19:31:18 -07:00
bors
481c9bad80 Auto merge of #106386 - compiler-errors:rollup-dxjv18b, r=compiler-errors
Rollup of 8 pull requests

Successful merges:

 - #95985 (Add PhantomData marker to Context to make Context !Send and !Sync)
 - #104298 (Add notes and examples about non-intuitive `PathBuf::set_extension` behavior)
 - #105558 (Reduce HIR debug output)
 - #106315 (Cleanup `mingw-tidy` docker job)
 - #106354 (Rustdoc-Json: Report discriminant on all kinds of enum variant.)
 - #106366 (Fix rustdoc ICE on bad typedef with mismatching types)
 - #106376 (Update books)
 - #106383 (Document some of the AST nodes)

Failed merges:

 - #106356 (clean: Remove `ctor_kind` from `VariantStruct`.)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-01-03 01:45:33 +00:00
Ardis Lu
6c254ed6dc
rustdoc: allow popover child links to work
No need to prevent default click behavior on a <div>, it will also disable all child click behavior.
2023-01-02 17:26:16 -08:00
Michael Goulet
50ab306015 Simplify some canonical type alias names 2023-01-03 01:16:10 +00:00
Michael Goulet
b2317a642d has_overflow only if value is *not* within limit 2023-01-03 01:09:08 +00:00
Tomasz Miąsko
3eabea9e2c Remove duplicated elaborate box derefs pass
The pass runs earlier as a part of `run_runtime_lowering_passes`.
2023-01-03 00:00:00 +00:00
Michael Goulet
d4cf00f03d
Rollup merge of #106383 - Manishearth:ast-docs, r=compiler-errors
Document some of the AST nodes

Someone was confused about some of this on Zulip, added some docs

We probably should make sure every last field/variant in the AST/HIR is documented at some point

`@bors` rollup
2023-01-02 15:39:19 -08:00
Michael Goulet
d112cd9a00
Rollup merge of #106376 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/book

3 commits in a60f4316ec923a5ac2ed6a2eba6960edb832d855..2bd5d42c9956369132228da6409f0e68da56c51a
2022-12-22 21:37:10 UTC to 2022-12-22 21:36:14 UTC

- fix macos installation problem (rust-lang/book#3469)
- Update -guessing-game-tutorial incorrect output (rust-lang/book#3462)
- FIX: IT repo updated (rust-lang/book#3454)

## rust-lang/nomicon

1 commits in dd37e21ccee43918ed18a71581bb2af537ffe4fc..8ca261268068d80c0969260fff15199bad87b587
2022-12-30 16:32:09 UTC to 2022-12-30 16:32:09 UTC

- Discourage the use of transmute to construct invalid values (rust-lang/nomicon#388)

## rust-lang/rust-by-example

6 commits in 995df09b65c582eb6290ab7ea5d9485983eb4c37..8888f9428fe9a48f31de6bd2cef9b9bf80791edc
2023-01-01 12:53:50 UTC to 2022-12-21 10:18:31 UTC

- types/alias: use io::{Result,Error} instead of Io{Result,Error} (rust-lang/rust-by-example#1660)
- Fix sample code mismatching its comments (rust-lang/rust-by-example#1659)
- fix: add missing space (rust-lang/rust-by-example#1658)
- diverging: fix issues with example code (rust-lang/rust-by-example#1631)
- Update enum.md (rust-lang/rust-by-example#1645)
- Clean up Chapter 2 (Primitives) (rust-lang/rust-by-example#1651)

## rust-lang/rustc-dev-guide

5 commits in 8b42eb5f57d3d8ed2257a22d0e850d9db52afed3..b3e2a6e6c8a3aae5b5d950c63046f23bae07096d
2023-01-01 05:20:47 UTC to 2022-12-25 12:11:21 UTC

- Add help for when you update a submodule by accident (rust-lang/rustc-dev-guide#1537)
- Simplify "how to build and run" section (rust-lang/rustc-dev-guide#1528)
- Replace `$TARGET` with `host` (rust-lang/rustc-dev-guide#1514)
- Add more rebasing help (rust-lang/rustc-dev-guide#1536)
- Fix rustc_borrowck crate name typo (rust-lang/rustc-dev-guide#1535)
2023-01-02 15:39:19 -08:00
Michael Goulet
ea3c4d8ddd
Rollup merge of #106366 - GuillaumeGomez:fix-rustdoc-ice-typedef-type-mismatch, r=notriddle
Fix rustdoc ICE on bad typedef with mismatching types

Fixes https://github.com/rust-lang/rust/issues/106226.
Fixes #105742.
Fixes #105737.
Fixes #105334.
Fixes #96287.

In this case, it's ok to replace the panic with `rustc_error::raise` because the compiler provided us with a `Error`.

r? `@notriddle`
2023-01-02 15:39:19 -08:00
Michael Goulet
0d5c5fae61
Rollup merge of #106354 - aDotInTheVoid:rdj-always-discr, r=GuillaumeGomez
Rustdoc-Json: Report discriminant on all kinds of enum variant.

Closes https://github.com/rust-lang/rust/issues/106299

Probably easier to review one commit at a time.

r? `@GuillaumeGomez`
2023-01-02 15:39:18 -08:00
Michael Goulet
0670a6151c
Rollup merge of #106315 - jyn514:cleanup-mingw-tidy, r=fee1-dead
Cleanup `mingw-tidy` docker job

Fixes a couple small regressions from https://github.com/rust-lang/rust/pull/106048 and https://github.com/rust-lang/rust/pull/105714.

- Avoid `/checkout/src/ci/run.sh: line 187: [: =: unary operator expected`: https://github.com/rust-lang/rust/actions/runs/3809902408/jobs/6481611301#step:26:1701
- Avoid running `x check` in the tidy test, to get faster feedback. It's already run on the normal `mingw-check` job.

r? `@fee1-dead`
2023-01-02 15:39:17 -08:00
Michael Goulet
fbffaa91ad
Rollup merge of #105558 - Nilstrieb:less-spam-hir-tree, r=cjgillot
Reduce HIR debug output

HIR debug output is currently very verbose, especially when used with the alternate (`#`) flag. This commit reduces the amount of noisy newlines by forcing a few small key types to stay on one line, which makes the output easier to read and scroll by.

```
$ rustc +after hello_world.rs -Zunpretty=hir-tree | wc -l
582
$ rustc +before hello_world.rs -Zunpretty=hir-tree | wc -l
932
```
2023-01-02 15:39:17 -08:00
Michael Goulet
da1ca5df6e
Rollup merge of #104298 - tbu-:pr_set_extension_caveats, r=m-ou-se
Add notes and examples about non-intuitive `PathBuf::set_extension` behavior

Basically, passing the empty string will actually remove the extension instead of setting it to the empty string. This might change what is considered to be an extension. Additionally, passing an extension that contains dots will make the path only consider the last part of it to be the new extension.
2023-01-02 15:39:16 -08:00
Michael Goulet
722bc0c8ee
Rollup merge of #95985 - jihiggins:issue-66481, r=dtolnay
Add PhantomData marker to Context to make Context !Send and !Sync

Adds `PhantomData<*mut ()>` to `Context` in order to allow for future `!Send` or `!Sync` additions to `Context`'s fields. This would allow for things like future single threaded async executor optimizations, or (re)adding `LocalWaker`, etc.

Closes #66481.

Per https://github.com/rust-lang/rust/issues/66481#issuecomment-561289725, this is a breaking change that needs a Crater run as the next step.

(So far have tested the change locally with `cargotest` on WSL)
2023-01-02 15:39:16 -08:00
DebugSteven
e9ca6636e1 get latest x version from parsing cargo command 2023-01-02 16:36:29 -07:00