Commit Graph

229981 Commits

Author SHA1 Message Date
Alex Macleod
36279f1b63 Trigger a rebuild when CLIPPY_CONF_DIR changes 2023-07-13 20:06:12 +00:00
Alyssa Haroldsen
3ce5f6eb44
Correct the -> there typo in items.md 2023-07-13 12:00:46 -07:00
bors
a161ab00db Auto merge of #113637 - Mark-Simulacrum:bootstrap-bump, r=ozkanonur
Bump bootstrap to 1.72 beta
2023-07-13 18:15:14 +00:00
Pedro Lobo
30a029e51b
Fix VecDeque's rotate_left and rotate_right panic tests 2023-07-13 18:39:09 +01:00
Pedro Lobo
c0a105be7c
Rename VecDeque's rotate_left and rotate_right parameters 2023-07-13 18:10:52 +01:00
bors
1b3e686925 Auto merge of #113646 - matthiaskrgr:rollup-1q6tmow, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #113353 (Implement selection for `Unsize` for better coercion behavior)
 - #113553 (Make Placeholder, GeneratorWitness*, Infer and Error unreachable on SMIR rustc_ty_to_ty)
 - #113598 (Update cargo)
 - #113603 (Test simd-wide-sum for codegen error)
 - #113613 (Allow to have `-` in rustdoc-json test file name)
 - #113615 (llvm-wrapper: adapt for LLVM API change)
 - #113616 (Fix bootstrap.py uname error)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-07-13 16:24:28 +00:00
bors
c7ce8add14 Auto merge of #15265 - tetsuharuohzeki:update-dependencies, r=lnicola
editor/code: Update dependencies

This includes:

- Some major changes.
    - [typescript-eslint v6](https://typescript-eslint.io/blog/announcing-typescript-eslint-v6/)
    - [prettier v3](https://prettier.io/blog/2023/07/05/3.0.0.html)
- ~Update ``@types/vscode`` to [1.79](https://code.visualstudio.com/updates/v1_79).~
    - ~[1.80 has been released](https://code.visualstudio.com/updates/v1_80). We can now bump it.~
    - _Update1: I removed this change. See the below comments_
- and some patch/minor updates.
2023-07-13 16:06:42 +00:00
Santiago Pastorino
c80a0f3178
Add Adt to SMIR 2023-07-13 12:00:46 -03:00
Amanieu d'Antras
d24be14276 Eliminate ZST allocations in Box and Vec 2023-07-13 15:00:53 +01:00
Tetsuharu Ohzeki
085b755123 editor/code: Update esbuild
https://github.com/evanw/esbuild/blob/main/CHANGELOG.md
2023-07-13 22:46:15 +09:00
Tetsuharu Ohzeki
d534180b30 editor/code: Update ESLint
https://eslint.org/blog/category/release-notes/
2023-07-13 22:45:11 +09:00
Tetsuharu Ohzeki
837ded9c9a editor/code: Update ovsx
https://github.com/eclipse/openvsx/blob/master/cli/CHANGELOG.md
2023-07-13 22:45:10 +09:00
Tetsuharu Ohzeki
f7823f3106 editor/code: Re-apply code format 2023-07-13 22:44:29 +09:00
Tetsuharu Ohzeki
9d06aa55b4 editor/code: Update prettier to v3
https://prettier.io/blog/2023/07/05/3.0.0.html
2023-07-13 22:44:29 +09:00
Tetsuharu Ohzeki
eed1888b81 editor/code: Update typescript-eslint to v6
https://typescript-eslint.io/blog/announcing-typescript-eslint-v6/
2023-07-13 22:44:29 +09:00
Tetsuharu Ohzeki
143646d17e editor/code: Update typescript 2023-07-13 22:44:29 +09:00
Alex Macleod
ea36a9df75 Set unnecessary_cast suggestion to MaybeIncorrect for pointer casts
Removing casts may cause type inference to stop working which requires
manual intervention
2023-07-13 13:29:41 +00:00
bors
7ccf5d404b Auto merge of #11095 - Alexendoo:rustfmt-imports, r=Manishearth
Add `imports_granularity = "Module"` to rustfmt.toml

This lets rustfmt split/merge imports, `Module` seems to be the most common style in clippy

https://rust-lang.github.io/rustfmt/?version=v1.6.0&search=#imports_granularity

changelog: none

Almost all the updates other than the config file change are from `cargo dev fmt` or blessed tests, the exceptions being

- `tests/ui/single_component_path_imports.rs`
- `tests/ui/single_component_path_imports_nested_first.rs`
- `tests/ui/single_component_path_imports_self_after.rs`
- `tests/ui/single_component_path_imports_self_before.rs`
- `tests/ui/unsafe_removed_from_name.rs` (added a test with merged imports as a drive by)
- `tests/ui/wildcard_imports.rs`
- `tests/ui/wildcard_imports_2021.rs`
2023-07-13 12:54:52 +00:00
Alex Macleod
2811effe34 Add imports_granularity = "Module" to rustfmt.toml 2023-07-13 12:44:57 +00:00
bors
a0e825786b Auto merge of #11147 - y21:issue11145, r=Alexendoo
[`arithmetic_side_effect`]: allow different types on the right hand side for `Wrapping<T>`

Fixes #11145

This lint has a list of allowed types, one of which is `Wrapping<T>`, but it was only actually allowed if the type on the right hand side was also `Wrapping<T>`, which meant that, for example, `Wrapping<u32> += u32` would still lint. It now allows binary ops involving `Wrapping<T>` regardless of the type on the rhs.
These impls have only existed since Rust 1.60.0, so that is probably why the lint was previously not handling this correctly

changelog: [`arithmetic_side_effect`]: allow different types on the right hand side for `Wrapping<T>` (e.g. `Wrapping<T> += T`)
2023-07-13 12:28:52 +00:00
Mark Rousskov
e8b0b1781d Ignore the let-else reformatting in git blame 2023-07-13 08:17:40 -04:00
lcnr
662e9d00b0 add test for incomplete alias bound preference 2023-07-13 13:43:49 +02:00
Matthias Krüger
7ea4387a93
Rollup merge of #113616 - edg-l:fix_bootstrap, r=albertlarsan68
Fix bootstrap.py uname error

The x.py script fails with `ValueError: too many values to unpack (expected 3)` when uname -smp gives more than 3 words

The error I got:
```
❯ ./x check
Traceback (most recent call last):
  File "/data1/edgar/rust/x.py", line 50, in <module>
    bootstrap.main()
  File "/data1/edgar/rust/src/bootstrap/bootstrap.py", line 1113, in main
    bootstrap(args)
  File "/data1/edgar/rust/src/bootstrap/bootstrap.py", line 1070, in bootstrap
    build = RustBuild(config_toml, args)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data1/edgar/rust/src/bootstrap/bootstrap.py", line 505, in __init__
    self.build = args.build or self.build_triple()
                               ^^^^^^^^^^^^^^^^^^^
  File "/data1/edgar/rust/src/bootstrap/bootstrap.py", line 976, in build_triple
    return config or default_build_triple(self.verbose)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data1/edgar/rust/src/bootstrap/bootstrap.py", line 259, in default_build_triple
    kernel, cputype, processor = uname.decode(default_encoding).split()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 3)
```

This is because

```
❯ uname -smp
Linux x86_64 AMD Ryzen 7 5800X 8-Core Processor
```
Returns more than 3 space separated words.
2023-07-13 12:19:25 +02:00
Matthias Krüger
b37c916559
Rollup merge of #113615 - krasimirgg:llvm-17-pgo, r=nikic
llvm-wrapper: adapt for LLVM API change

Adapts the wrapper for LLVM commit 546ec641b4.

Found by the experimental rust + LLVM @ HEAD bot: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/20723#01894922-ed5d-4830-81f6-a27fb82ec8c7/210-645
2023-07-13 12:19:24 +02:00
Matthias Krüger
253a4ca43f
Rollup merge of #113613 - GuillaumeGomez:allow-dash-in-file-name, r=notriddle
Allow to have `-` in rustdoc-json test file name

I extracted this commit from https://github.com/rust-lang/rust/pull/113574.

When I added the test, it kept saying that the JSON file couldn't be found. After investigating for a while, I discovered that we were expecting files to always use `_`, which is quite bad. So I added support for `-` in file names.

r? ``@notriddle``
2023-07-13 12:19:24 +02:00
Matthias Krüger
fc72c0fe8f
Rollup merge of #113603 - workingjubilee:test-for-98016, r=oli-obk
Test simd-wide-sum for codegen error

This adds the necessary test infrastructure to "build-pass" codegen tests, for the purpose of doing that for a single revision of a codegen test. When mir-opts are tested, the output may vary from the usual, and maybe for positive reasons... but we don't necessarily want to output such bad LLVMIR that LLVM starts crashing on it.

Currently when enabling MIR opts at higher levels this LLVMIR is still emitted, but it was previously disabled for getting in mir-opt's way and as this new revision without `// [mir-opt3]build-pass` would make it more likely to, I would like to not see the testing for the actual results regress again just because it was bundled with an ICE check as well.

This fixes https://github.com/rust-lang/rust/issues/98016
2023-07-13 12:19:23 +02:00
Matthias Krüger
a6fed6a0ca
Rollup merge of #113598 - weihanglo:update-cargo, r=weihanglo
Update cargo

10 commits in 45782b6b8afd1da042d45c2daeec9c0744f72cc7..694a579566a9a1482b20aff8a68f0e4edd99bd28
2023-07-05 16:54:51 +0000 to 2023-07-11 22:28:29 +0000
- fix(embedded): Always generate valid package names (rust-lang/cargo#12349)
- fix(embedded): Error on unsupported commands (rust-lang/cargo#12350)
- chore(ci): Automatically test new packages by using `--workspace` (rust-lang/cargo#12342)
- contrib docs: Add some more detail about how publishing works (rust-lang/cargo#12344)
- docs: Put cargo-add change under nightly (rust-lang/cargo#12343)
- Minor: Use "number" instead of "digit" when explaining Cargo's use of semver (rust-lang/cargo#12340)
- Update criterion (rust-lang/cargo#12338)
- Add profile strip to config docs. (rust-lang/cargo#12337)
- update re: multiple versions that differ only in the metadata tag (rust-lang/cargo#12335)
- doc: state `PackageId`/`SourceId` string is opaque (rust-lang/cargo#12313)

r? ``@ghost``
2023-07-13 12:19:23 +02:00
Matthias Krüger
66233fbb32
Rollup merge of #113553 - spastorino:smir-types-2, r=oli-obk
Make Placeholder, GeneratorWitness*, Infer and Error unreachable on SMIR rustc_ty_to_ty

Let's remove these todos to not confuse ``@ericmarkmartin`` if they pick some conversion up.

r? ``@oli-obk``
2023-07-13 12:19:22 +02:00
Matthias Krüger
893a5d2b32
Rollup merge of #113353 - compiler-errors:select-better, r=lcnr
Implement selection for `Unsize` for better coercion behavior

In order for much of coercion to succeed, we need to be able to deal with partial ambiguity of `Unsize` traits during selection. However, I pessimistically implemented selection in the new trait solver to just bail out with ambiguity if it was a built-in impl:
9227ff28af/compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs (L126)

This implements a proper "rematch" procedure for dealing with built-in `Unsize` goals, so that even if the goal is ambiguous, we are able to get nested obligations which are used in the coercion selection-like loop:
9227ff28af/compiler/rustc_hir_typeck/src/coercion.rs (L702)

Second commit just moves a `resolve_vars_if_possible` call to fix a bug where we weren't detecting a trait upcasting to occur.

r? ``@lcnr``
2023-07-13 12:19:22 +02:00
lcnr
1b4b2e0230 typo 2023-07-13 11:11:13 +02:00
lcnr
f446894804 refactor proof tree formatting 2023-07-13 11:11:13 +02:00
bors
6acb989448 Auto merge of #15275 - Veykril:ci-metrics, r=Veykril
Default to stable toolchain for metrics workflow

Metrics CI is failing because of a function that was stabilized in 1.70. So for some reason, it's trying to use an older toolchain i seems though I don't understand why it randomly started complaining about that.
2023-07-13 08:55:21 +00:00
Lukas Wirth
415b527855 Default to stable toolchain for metrics workflow 2023-07-13 10:54:24 +02:00
bors
631faa1bc7 Auto merge of #11146 - hydro-project:tuple-array-conversions, r=Centri3,xFrednet
[`tuple_array_conversions`]: move from `complexity` to `nursery`

The lint suggestion is arguably often less readable and more complex than the original code.

For example, which of the following is the most readable:
```rust
let _vertices = edges.flat_map(|(src, dst)| [src, dst]);
let _vertices = edges.flat_map(<_ as Into<[i32; 2]>>::into);
let _vertices = edges.flat_map(<[i32; 2]>::from);
```

The lint can be useful, but really only applies if the tuple is either long enough that naming the fields is silly (maybe at least 4 entries long), or if the author intends the fields to be homogenous, which is author intent and can't be determined by the lint. Therefore I think the lint should be marked as pedantic.

Currently, there are also a lot of false positives with the lint:
* https://github.com/rust-lang/rust-clippy/issues/11082
* https://github.com/rust-lang/rust-clippy/issues/11085
* https://github.com/rust-lang/rust-clippy/issues/11100 (https://github.com/rust-lang/rust-clippy/pull/11105)
* https://github.com/rust-lang/rust-clippy/issues/11124
* https://github.com/rust-lang/rust-clippy/issues/11144

Should fix those issues before enabling it for everyone.

---

changelog: Move [`tuple_array_conversions`] to `nursery` (Now allow-by-default)
<!-- FIY: Ignore this change, if the commit gets backported -->
[#11146](https://github.com/rust-lang/rust-clippy/pull/11146)
2023-07-13 08:39:33 +00:00
jyn
e4135d4cd4 Support x suggest with build-metrics 2023-07-13 03:24:08 -05:00
jyn
79c6700376 Remove unnecessary Builder::new_standalone function 2023-07-13 03:24:08 -05:00
jyn
441972d18b Rename detail_exit_macro to exit
`detail` and `macro` weren't adding any info.
2023-07-13 03:24:08 -05:00
bors
f6ae0c11ac Auto merge of #15270 - ChristianSchott:patch-1, r=HKalbasi
Make fields of mir::Terminator public

When trying to use the RA crate, I am unable to access the fields in `hir_def::mir::Terminator`.
I don't see any reason, why these should be private, especially as the fields of `hir_def::mir::Statement` are `pub`.

I am not sure if the fields in `hir_def::mir::SwitchTargets` should be made `pub` too, but at least they are read-accessible via some public methods..

Sorry if I missed something, this is my first PR.
2023-07-13 07:54:44 +00:00
bors
132ba2cf77 Auto merge of #15248 - Veykril:eager, r=Veykril
Fix eager token mapping panics
2023-07-13 07:39:30 +00:00
Lukas Wirth
6a7b905c86 Fix the eager token maps by re-mapping the textranges between the input and input expansion 2023-07-13 09:22:38 +02:00
bors
ad9b7b56a4 Auto merge of #2979 - rust-lang:rustup2023-07-13, r=RalfJung
Automatic sync from rustc
2023-07-13 06:45:56 +00:00
The Miri Conjob Bot
461baf24f6 Merge from rustc 2023-07-13 06:40:21 +00:00
The Miri Conjob Bot
477ef41309 Preparing for merge from rustc 2023-07-13 06:33:31 +00:00
jyn
9d071b3b0d Make nodejs control the default for RustdocJs tests instead of a hard-off switch
If someone says `x test rustdoc-js-std` explicitly on the command line, it's because they want to
run the tests. Give an error instead of doing nothing and reporting success.
2023-07-13 01:27:23 -05:00
Erik Desjardins
ecf2390fb0 extern fn-explicit-align test: don't use uint128_t
...which seems not to be available on some platforms.
Or maybe it is under a different name but I don't want to deal with that

Instead, use two u64s. This isn't exactly the same, but we already have
some coverage of the packed u128 case in another test, so it's not
essential to have it here.
2023-07-13 00:54:11 -04:00
Mark Rousskov
cc907f80b9 Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
Mark Rousskov
67b0cfc761 Flip cfg's for bootstrap bump 2023-07-12 21:38:55 -04:00
Zalathar
352d031599 Remove LLVMRustCoverageHashCString
Coverage has two FFI functions for computing the hash of a byte string. One
takes a ptr/len pair, and the other takes a NUL-terminated C string.

But on closer inspection, the C string version is unnecessary. The calling-side
code converts a Rust `&str` into a C string, and the C++ code then immediately
turns it back into a ptr/len string before actually hashing it.
2023-07-13 11:31:15 +10:00
Zalathar
7292608e21 Fix the length parameter type of LLVMRustCoverageHashByteArray
The Rust-side declaration uses `libc::size_t` for the number of bytes, but the
C++ declaration was using `unsigned` instead of `size_t`.
2023-07-13 11:31:15 +10:00
Zalathar
7a5ad35da4 Pass a byte slice to coverageinfo::hash_bytes instead of an owned vector
The function body immediately treats it as a slice anyway, so this just makes
it possible to call the hash function with arbitrary read-only byte slices.
2023-07-13 11:28:50 +10:00