Commit graph

139895 commits

Author SHA1 Message Date
Matthias Krüger
9b2ee4192e
Rollup merge of #108104 - matthiaskrgr:into, r=compiler-errors
don't into self

don't into()-convert types to themselves
2023-02-17 00:19:36 +01:00
Matthias Krüger
ee07df9c50
Rollup merge of #108009 - c410-f3r:moar-tests, r=petrochenkov
Move some tests

r? `@petrochenkov`
2023-02-17 00:19:35 +01:00
Matthias Krüger
42f2303c67
Rollup merge of #107905 - clubby789:x-free-args, r=albertlarsan68
Pass arguments to `x` subcommands with `--`

Fixes #107375

Any arguments passed to `x` following `--` are removed and not parsed, instead passed down to subcommands (just the ones listed in the issue, not sure if more are needed). This does not remove the existing `--args` and `--test-args` behaviour, just extends it. It's also not documented in the help, not sure of the best way to format it.

r? `@jyn514`
2023-02-17 00:19:35 +01:00
Matthias Krüger
089e8c03bc
Rollup merge of #107489 - compiler-errors:non_lifetime_binders, r=cjgillot
Implement partial support for non-lifetime binders

This implements support for non-lifetime binders. It's pretty useless currently, but I wanted to put this up so the implementation can be discussed.

Specifically, this piggybacks off of the late-bound lifetime collection code in `rustc_hir_typeck::collect::lifetimes`. This seems like a necessary step given the fact we don't resolve late-bound regions until this point, and binders are sometimes merged.

Q: I'm not sure if I should go along this route, or try to modify the earlier nameres code to compute the right bound var indices for type and const binders eagerly... If so, I'll need to rename all these queries to something more appropriate (I've done this for `resolve_lifetime::Region` -> `resolve_lifetime::ResolvedArg`)

cc rust-lang/types-team#81

r? `@ghost`
2023-02-17 00:19:34 +01:00
Matthias Krüger
a1a6588162 don't into self
don't into()-convert types to themselves
2023-02-16 18:30:25 +01:00
Matthias Krüger
09a2267e1d
Rollup merge of #108099 - matthiaskrgr:str_to_char, r=GuillaumeGomez
use chars instead of strings where applicable
2023-02-16 17:51:26 +01:00
Matthias Krüger
04128982ff
Rollup merge of #108057 - GuillaumeGomez:fix-reexport-attr-merge, r=notriddle
Prevent some attributes from being merged with others on reexports

Final fix for https://github.com/rust-lang/rust/issues/59368.

As discussed on zulip [here](https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Filtering.20sub.20attributes.20in.20ast.3A.3AAttribute), we need to clone the `Attribute` to be able to filter some parts of it. Then we need to go through the attributes to able to only keep what we want (everything except a few attributes in short).

As for the second commit, when I wrote the test, I realized that the code to traverse all reexports one by one to collect all their attributes was not completely working so I fixed the few issues remaining.

r? `@notriddle`
2023-02-16 17:51:24 +01:00
Caio
d75e43c371 Move tests 2023-02-16 11:42:35 -03:00
Nicholas Nethercote
22a5125a36 Remove save-analysis.
Most tests involving save-analysis were removed, but I kept a few where
the `-Zsave-analysis` was an add-on to the main thing being tested,
rather than the main thing being tested.

For `x.py install`, the `rust-analysis` target has been removed.

For `x.py dist`, the `rust-analysis` target has been kept in a
degenerate form: it just produces a single file `reduced.json`
indicating that save-analysis has been removed. This is necessary for
rustup to keep working.

Closes #43606.
2023-02-16 15:14:45 +11:00
Michael Goulet
eff2cb7760 Rename some region-specific stuff 2023-02-16 03:39:59 +00:00
Matthias Krüger
0400c68517 use chars instead of strings where applicable 2023-02-15 22:54:57 +01:00
Matthias Krüger
09ab35b574
Rollup merge of #108076 - GuillaumeGomez:more-let-chain, r=notriddle
rustdoc: Use more let chain

Got the idea after yesterday's review.

r? `@notriddle`
2023-02-15 21:30:59 +01:00
Matthias Krüger
31d7e514ab
Rollup merge of #108047 - oli-obk:machine->🞋, r=RalfJung
Use `target` instead of `machine` for mir interpreter integer handling.

The naming of `machine` only makes sense from a mir interpreter internals perspective, but outside users talk about the `target` platform. As per https://github.com/rust-lang/rust/pull/108029#issuecomment-1429791015

r? `@RalfJung`
2023-02-15 21:30:57 +01:00
Matthias Krüger
32891e1121
Rollup merge of #108021 - zephaniahong:oldx, r=albertlarsan68
make x look for x.py if shell script does not exist

Fixes #107907

Manually tested by doing the following after changes were made:
1. `cargo install --path src/tools/x`
2. checked out old version:  commit hash `775c3c0` from https://github.com/rust-lang/rust/pull/99992
3. Ran `x --help` and it works. Previously, it was giving the error `x.py not found`
2023-02-15 21:30:57 +01:00
bors
2d14db321b Auto merge of #108006 - cjgillot:def-impl, r=oli-obk
Avoid accessing HIR when it can be avoided

Experiment to see if it helps some incremental cases.

Will be rebased once https://github.com/rust-lang/rust/pull/107942 gets merged.

r? `@ghost`
2023-02-15 16:14:10 +00:00
Guillaume Gomez
86fd5a1b44 Use more let chain 2023-02-15 12:00:03 +01:00
Oli Scherer
38b7cdf393 Use target instead of machine for mir interpreter integer handling.
The naming of `machine` only makes sense from a mir interpreter internals perspective, but outside users talk about the `target` platform
2023-02-15 08:56:18 +00:00
Zephaniah Ong
54cfc10fa5 make x look for x.py if shell script does not exist
bump up x version

Refactor code
2023-02-15 15:19:49 +08:00
Dylan DPC
9800dbe883
Rollup merge of #107163 - mikebenfield:parameters-pr, r=TaKO8Ki
Remove some superfluous type parameters from layout.rs.

Specifically remove V, which can always be VariantIdx, and F, which can always be Layout.
2023-02-15 12:24:54 +05:30
Guillaume Gomez
374f798ad2 Correctly handle reexports of #[doc(hidden)] is reexport does not use #[doc(inline)] 2023-02-15 00:00:51 +01:00
Guillaume Gomez
02a845a826 Correctly handle reexport traversal by fixing multiple bugs, especially for items with a path of 1 element 2023-02-14 23:23:59 +01:00
bors
0416b1a6f6 Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #107573 (Update the minimum external LLVM to 14)
 - #107626 (Fix `x fix` on the standard library itself)
 - #107673 (update ICU4X to 1.1.0)
 - #107733 (Store metrics from `metrics.json` to CI PGO timer)
 - #108007 (Use `is_str` instead of string kind comparison)
 - #108033 (add an unstable `#[rustc_coinductive]` attribute)
 - #108039 (Refactor refcounted structural_impls via functors)
 - #108040 (Use derive attributes for uninteresting traversals)
 - #108044 (interpret: rename Pointer::from_addr → from_addr_invalid)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-02-14 21:07:04 +00:00
Camille GILLOT
03dff82d59 Add of_trait to DefKind::Impl. 2023-02-14 19:55:44 +00:00
Guillaume Gomez
5f93edd4b8 Prevent some attributes from being merged with others on reexports 2023-02-14 18:42:04 +01:00
Matthias Krüger
7e0127b2ae
Rollup merge of #108007 - compiler-errors:str-less-kind, r=Nilstrieb
Use `is_str` instead of string kind comparison

Split out from #107939
2023-02-14 18:24:42 +01:00
Matthias Krüger
74d018e317
Rollup merge of #107733 - Kobzol:opt-build-metrics, r=Mark-Simulacrum
Store metrics from `metrics.json` to CI PGO timer

With this change, we'll be able to easily see how long does it take to compile LLVM vs `rustc`.

r? ```@Mark-Simulacrum```
2023-02-14 18:24:41 +01:00
Matthias Krüger
2c1d3e92e0
Rollup merge of #107626 - jyn514:x-fix, r=Mark-Simulacrum
Fix `x fix` on the standard library itself

Fixes https://github.com/rust-lang/rust/issues/107501
2023-02-14 18:24:40 +01:00
Matthias Krüger
a1ba861190
Rollup merge of #107573 - cuviper:drop-llvm-13, r=nagisa
Update the minimum external LLVM to 14

With this change, we'll have stable support for LLVM 14 through 16 (pending release).
For reference, the previous increase to LLVM 13 was #100460.
2023-02-14 18:24:40 +01:00
Matthias Krüger
f68864cbca
Rollup merge of #108029 - oli-obk:🞋_usize, r=RalfJung
s/eval_usize/eval_target_usize/ for clarity

r? `@nnethercote`

as discussed in https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/.60Const.60.20and.20.60usize.60.2F.60u64.60 it is unclear what `usize` means and why we use a `u64` for something talking about `usize`. This renaming should make it clear that we're talking about `usize`s on the target platform, irrespective of the compiler host platform.
2023-02-14 18:02:54 +01:00
Matthias Krüger
8804e7f3dc
Rollup merge of #108025 - notriddle:notriddle/intra-doc-link-tooltips, r=GuillaumeGomez
rustdoc: add more tooltips to intra-doc links

This commit makes intra-doc link tooltips consistent with generated links in function signatures and item tables, with the format `itemtype foo::bar::baz`. This way, you can tell if a link points at a trait or a type (for example) by mousing over it.

See also https://github.com/rust-lang/rust/pull/39697

Partially solves https://internals.rust-lang.org/t/rustdoc-suggestion-highlight-links-fn-s-mod-s-type-s-etc-appropriately-within-and-documentation/17931 (though the Internals thread asks for color-coding, while this PR adds a tooltip instead, it's accomplishing the same thing).

Before:

<img width="950" alt="image" src="https://user-images.githubusercontent.com/1593513/218653059-911cea01-7231-438a-ad98-be98ab73783f.png">

After:

<img width="432" alt="image" src="https://user-images.githubusercontent.com/1593513/218653201-34ca3aa7-18f1-4cb1-be68-a1411bbe797e.png">
2023-02-14 18:02:53 +01:00
Oli Scherer
936bf29d4c s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
bors
e9ab7872fd Auto merge of #107765 - petrochenkov:nomoclone, r=oli-obk
rustc/rustdoc: Perform name resolver cleanups enabled by #94857

Unblocks https://github.com/rust-lang/rust/pull/105462.
r? `@oli-obk`
2023-02-14 05:59:44 +00:00
Michael Howell
ba4b026e80 rustdoc: add more tooltips to intra-doc links
This commit makes intra-doc link tooltips consistent with generated
links in function signatures and item tables, with the format
`itemtype foo::bar::baz`. This way, you can tell if a link points at
a trait or a type (for example) by mousing over it.

See also fce944d4e7
2023-02-13 22:57:28 -07:00
bors
c3c6d73b04 Auto merge of #107993 - weihanglo:update-cargo, r=weihanglo
Update cargo

10 commits in 82c3bb79e3a19a5164e33819ef81bfc2c984bc56..39c13e67a5962466cc7253d41bc1099bbcb224c3 2023-02-04 22:52:16 +0000 to 2023-02-12 02:01:08 +0000

- chore: Update to toml v0.6, toml_edit v0.18 (rust-lang/cargo#11618)
- doc: more doc comments and intra-doc links (rust-lang/cargo#11703)
- Deny warnings in CI, not locally (rust-lang/cargo#11699)
- add comment to lto.rs (rust-lang/cargo#11701)
- Re-export cargo_new::NewProjectKind as public (rust-lang/cargo#11700)
- Add '-C' flag for changing current dir before build (rust-lang/cargo#10952)
- `-Zrustdoc-scrape-example` must fail with bad build script (rust-lang/cargo#11694)
- Update CHANGELOG for 1.68 backports (rust-lang/cargo#11690)
- Update 1password to the version 2 CLI (rust-lang/cargo#11692)
- chore: autolabel more for `A-*` (rust-lang/cargo#11679)

r? `@ghost`
2023-02-14 02:55:06 +00:00
bors
5348a89a77 Auto merge of #108015 - matthiaskrgr:rollup-qerohjn, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #107902 (fix: improve the suggestion on future not awaited)
 - #107913 (Update broken link in cargo style guide)
 - #107942 (Tighter spans for bad inherent `impl` self types)
 - #107948 (Allow shortcuts to directories to be used for ./x.py fmt)
 - #107971 (Clearly document intentional UB in mir-opt tests)
 - #107985 (Added another error to be processed in fallback)
 - #108002 (Update books)
 - #108013 (rustdoc: use a string with one-character codes for search index types)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-02-13 23:20:03 +00:00
Matthias Krüger
f1a349457f
Rollup merge of #108013 - notriddle:notriddle/search-index-itemtype, r=GuillaumeGomez
rustdoc: use a string with one-character codes for search index types

    $ wc -c search-index.old.js search-index.new.js
    3940530 search-index.old.js
    3843222 search-index.new.js

((3940530-3843222)/3940530)*100 = 2.47%

    $ wc -c search-index.old.js.gz search-index.new.js.gz
    380251 search-index.old.js.gz
    379434 search-index.new.js.gz

((380251-379434)/380251)*100 = 0.214%
2023-02-13 23:25:15 +01:00
Matthias Krüger
9bf807e7a1
Rollup merge of #108002 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/book

2 commits in f2a78f64b668f63f581203c6bac509903f7c00ee..d94e03a18a2590ed3f1c67b859cb11528d2a2d5c
2023-02-10 16:01:09 UTC to 2023-02-10 15:55:43 UTC

- Update to Rust 1.67.1
- Update to Rust 1.66.1

## rust-embedded/book

1 commits in f1a4614aa41cc544b91b79760a709e113f3451d7..701d1551429da4cb609082c0ac99df569e336710
2023-01-31 12:32:49 UTC to 2023-01-31 12:32:49 UTC

- fix: Circled Image not visible on B&W E-Ink screen (rust-embedded/book#339)

## rust-lang/nomicon

2 commits in bd1829d235296952bf72ca55635e360584b8805e..79b53665a7c61d171fb8c5ad0b73b371f9ee6ba7
2023-02-13 08:40:24 UTC to 2023-02-07 09:43:03 UTC

- Fixes double bug in Send-Sync example (rust-lang/nomicon#401)
- Small language fix in subtyping.md (rust-lang/nomicon#399)

## rust-lang/reference

4 commits in 22882fb3f7b4d69fdc0d1731e8b9cfcb6910537d..e5adb99c04817b7fbe08f4ffce5b36702667345f
2023-02-08 18:09:03 UTC to 2023-02-01 03:49:46 UTC

- Eliminate 'half open' terminology from range pattern grammar (rust-lang/reference#1330)
- fix place expression context example (rust-lang/reference#1327)
- remove confusing words (rust-lang/reference#1324)
- Reword "expression for a match arm" (rust-lang/reference#1325)

## rust-lang/rust-by-example

5 commits in 134376872e8c387ef369507e0ee9b5a0e3272718..efe23c4fe12e06351b8dc8c3d18312c761455109
2023-02-06 11:32:23 UTC to 2023-01-31 16:38:03 UTC

- fix irrelevant comments (rust-lang/rust-by-example#1676)
- remove redudant code (rust-lang/rust-by-example#1675)
- Line comments: change 'inside' to 'after' (rust-lang/rust-by-example#1674)
- fix incorrect trait bound demonstration (rust-lang/rust-by-example#1673)
- fix "High Order Functions" typo (rust-lang/rust-by-example#1672)

## rust-lang/rustc-dev-guide

14 commits in e359ee27fc3da3356d71a732128c0a1abe02e53a..41a96ab971cb45e2a184df20619ad1829765c990
2023-02-11 06:41:56 UTC to 2023-01-31 18:42:30 UTC

- Add a citation file (rust-lang/rustc-dev-guide#1550)
- Improve git submodule help (rust-lang/rustc-dev-guide#1587)
- update examples for rustc 1.69.0-nightly (e1eaa2d5d 2023-02-06) (rust-lang/rustc-dev-guide#1590)
- Replace settings.json with x.py setup note (rust-lang/rustc-dev-guide#1588)
- Do not add accept header on linkcheck (rust-lang/rustc-dev-guide#1586)
- Fixed small grammar mistake in monomorph.md (rust-lang/rustc-dev-guide#1585)
- update bootstrap guide (rust-lang/rustc-dev-guide#1583)
- Use host symlink for custom rustup toolchain (rust-lang/rustc-dev-guide#1580)
- Fix broken links (rust-lang/rustc-dev-guide#1577)
- Add section on comparing types (rust-lang/rustc-dev-guide#1570)
- Update rustfmt path (rust-lang/rustc-dev-guide#1574)
- fix wrong heading level (rust-lang/rustc-dev-guide#1573)
- fix incorrect position of `Clarification of build command's stdout` (rust-lang/rustc-dev-guide#1572)
- extend bootstrap related documentations (rust-lang/rustc-dev-guide#1563)
2023-02-13 23:25:14 +01:00
Matthias Krüger
7efb884b9c
Rollup merge of #107948 - jieyouxu:issue-107944, r=ozkanonur
Allow shortcuts to directories to be used for ./x.py fmt

Fixes #107944.

Maximum recursive search depth is 3 and only accepts shortcuts for directories. If there are no shortcut candidates, the previous behavior to panic is preserved. If there are multiple candidates, the shortcut candidates are ignored.

After this change, `./x.py fmt std` no longer panics and formats `library/std` instead.
2023-02-13 23:25:12 +01:00
Matthias Krüger
5c94f4a112
Rollup merge of #107913 - base0x10:master, r=compiler-errors
Update broken link in cargo style guide

Toml now uses [toml.io](https://toml.io) for released specifications and the github repo for development. Also the old link was for the 0.4 specification, while cargo uses toml_edit, which uses toml 1.0 (reference:
https://github.com/toml-rs/toml/blob/main/crates/toml_edit/CHANGELOG.md#030---2021-09-13). Finally the discussion of "Bare keys" vs "Quoted keys" has moved from the `#table` section to `#keys`.
2023-02-13 23:25:11 +01:00
Michael Howell
a7b69ddea9 rustdoc: use a string with one-character codes for search index types
$ wc -c search-index.old.js search-index.new.js
    3940530 search-index.old.js
    3843222 search-index.new.js

((3940530-3843222)/3940530)*100 = 2.47%

    $ wc -c search-index.old.js.gz search-index.new.js.gz
    380251 search-index.old.js.gz
    379434 search-index.new.js.gz

((380251-379434)/380251)*100 = 0.214%
2023-02-13 14:27:00 -07:00
bors
065852def0 Auto merge of #107992 - lnicola:rust-analyzer-2023-02-13, r=lnicola
⬆️ `rust-analyzer`

r? `@ghost`
2023-02-13 20:22:52 +00:00
Michael Goulet
3504c408f0 Use is_str instead of string kind comparison 2023-02-13 19:06:22 +00:00
许杰友 Jieyou Xu (Joe)
b10d744b87
Allow shortcuts to directories to be used for ./x.py fmt
Fixes #107944.

Maximum recursive search depth is 3 and only accepts shortcuts for
directories (single component paths, such as `./x.py fmt std`). If
there are no shortcut candidates but single componenet path(s) are
given, it falls back to the previous behavior to panic with unable to
find directory. If there are multiple shortcut candidates for a given
single component path, the shortcut candidates are considered
ambiguous, are then ignored, and the single component path is accepted
as-is.

After this change, `./x.py fmt std` no longer panics and formats
`library/std` instead.
2023-02-14 01:47:12 +08:00
rustbot
9dcad5a340 Update books 2023-02-13 12:01:05 -05:00
Jakub Beránek
afe955319d
Log all metrics from metrics.json 2023-02-13 17:57:28 +01:00
Jan Gaura
d6bc681e28
Store metrics from metrics.json into PGO CI timer
Co-authored-by: Jakub Beránek <berykubik@gmail.com>
2023-02-13 17:56:08 +01:00
bors
a3c9eede5d Auto merge of #107924 - eggyal:move_fold_visit_traits_to_type_lib_with_trait_alias, r=oli-obk
Move folding & visiting traits into type library

This is a rework of #107712, following feedback on that PR.

In particular, this version uses trait aliases to reduce the API churn for trait consumers.  Doing so requires a workaround for #107747 until its fix in #107803 is merged into the stage0 compiler; this workaround, which uses conditional compilation based on the `bootstrap` configuration predicate, sits in dedicated commit b409329c for ease of reversion.

The possibility of the `rustc_middle` crate retaining its own distinct versions of each folding/visiting trait, blanket-implemented on all types that implement the respective trait in the type library, was also explored: however since this would necessitate making each `rustc_middle` trait a subtrait of the respective type library trait (so that such blanket implementations can delegate their generic methods), no benefit would be gained.

r? types
2023-02-13 16:50:33 +00:00
Weihang Lo
4c4b4c0561
Update cargo
10 commits in 82c3bb79e3a19a5164e33819ef81bfc2c984bc56..39c13e67a5962466cc7253d41bc1099bbcb224c3
2023-02-04 22:52:16 +0000 to 2023-02-12 02:01:08 +0000

- chore: Update to toml v0.6, toml_edit v0.18 (rust-lang/cargo#11618)
- doc: more doc comments and intra-doc links (rust-lang/cargo#11703)
- Deny warnings in CI, not locally (rust-lang/cargo#11699)
- add comment to lto.rs (rust-lang/cargo#11701)
- Re-export cargo_new::NewProjectKind as public (rust-lang/cargo#11700)
- Add '-C' flag for changing current dir before build (rust-lang/cargo#10952)
- `-Zrustdoc-scrape-example` must fail with bad build script (rust-lang/cargo#11694)
- Update CHANGELOG for 1.68 backports (rust-lang/cargo#11690)
- Update 1password to the version 2 CLI (rust-lang/cargo#11692)
- chore: autolabel more for `A-*` (rust-lang/cargo#11679)
2023-02-13 12:04:19 +00:00
Laurențiu Nicola
c4a2f06585 ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
Matthias Krüger
8674adc25c
Rollup merge of #107922 - Kobzol:ci-print-disk-size, r=Mark-Simulacrum
Print disk usage in PGO CI script

To diagnose issues like https://github.com/rust-lang/rust/pull/94857#issuecomment-1426648675.
2023-02-13 11:34:57 +01:00