Commit graph

221790 commits

Author SHA1 Message Date
bors 661b33f524 Auto merge of #109935 - michaelwoerister:fix-feed-in-eval-always, r=cjgillot
incr.comp.: Make sure dependencies are recorded when feeding queries during eval-always queries.

This PR makes sure we don't drop dependency edges when feeding queries during an eval-always query.

Background: During eval-always queries, no dependencies are recorded because the system knows to unconditionally re-evaluate them regardless of any actual dependencies. This works fine for these queries themselves but leads to a problem when feeding other queries: When queries are fed, we set up their dependency edges by copying the current set of dependencies of the feeding query. But because this set is empty for eval-always queries, we record no edges at all -- which has the effect that the fed query instances always look "green" to the system, although they should always be "red".

The fix is to explicitly add a dependency on the artificial "always red" dep-node when feeding during eval-always queries.

Fixes https://github.com/rust-lang/rust/issues/108481
Maybe also fixes issue https://github.com/rust-lang/rust/issues/88488.

cc `@jyn514`

r? `@cjgillot` or `@oli-obk`
2023-04-12 11:16:35 +00:00
bors 9be9b5e09a Auto merge of #107614 - compiler-errors:allow-elaborator-to-filter-only-super-traits, r=oli-obk
Split implied and super predicate queries, then allow elaborator to filter only supertraits

Split the `super_predicates_of` query into a new `implied_predicates_of` query. The former now only returns the *real* supertraits of a trait alias, and the latter now returns the implied predicates (which include all of the `where` clauses of the trait alias). The behavior of these queries is identical for regular traits.

Now that the two queries are split, we can add a new filter method to the elaborator, `filter_only_self()`, which can be used in instances that we need only the *supertrait* predicates, such as during the elaboration used in closure signature deduction. This toggles the usage of `super_predicates_of` instead of `implied_predicates_of` during elaboration of a trait predicate.

This supersedes #104745, and fixes the four independent bugs identified in that PR.
Fixes #104719
Fixes #106238
Fixes #110023
Fixes #109514

r? types
2023-04-12 08:39:19 +00:00
bors 0d7ed3ba84 Auto merge of #110214 - compiler-errors:rollup-mkig4t6, r=compiler-errors
Rollup of 10 pull requests

Successful merges:

 - #96971 (Initial support for loongarch64-unknown-linux-gnu)
 - #109894 (Remove Errors section from var_os docs)
 - #110000 (Rename tests/ui/unique to tests/ui/box/unit)
 - #110018 (Pass host linker to compiletest.)
 - #110104 ( Reword the docstring in todo! macro definition, fixing a typo)
 - #110113 (Fix `x test ui --target foo` when download-rustc is enabled)
 - #110126 (Support safe transmute in new solver)
 - #110155 (Fix typos in librustdoc, tools and config files)
 - #110162 (rustdoc: remove redundant expandSection code from main.js)
 - #110173 (kmc-solid: Implement `Socket::read_buf`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-04-12 04:50:01 +00:00
Michael Goulet 4c9cd9e739
Rollup merge of #110173 - solid-rs:patch/kmc-solid/socket-read-buf, r=cuviper
kmc-solid: Implement `Socket::read_buf`

Follow-up to #108326. Implements `Socket::read_buf` for the [`*-kmc-solid_*`](https://doc.rust-lang.org/nightly/rustc/platform-support/kmc-solid.html) Tier 3 targets.
2023-04-11 20:28:50 -07:00
Michael Goulet d22b019dbf
Rollup merge of #110162 - notriddle:notriddle/main-js-expand, r=GuillaumeGomez
rustdoc: remove redundant expandSection code from main.js

This functionality is already tested in `hash-item-expansion.goml`, and was implemented twice:

* First, in code that ran at load time and at hash change: 917cdd295d

* Later, the hash change event handler was itself run at load time, and the code handling both cases diverged in implementation, though their behavior still matches pretty well: f66a331335
2023-04-11 20:28:49 -07:00
Michael Goulet e6975455d9
Rollup merge of #110155 - DaniPopes:rest-typos, r=jyn514
Fix typos in librustdoc, tools and config files

I used [`typos`](https://github.com/crate-ci/typos) to fix all typos, minus the ones present in #110153 and in #110154.

Refs #110150
2023-04-11 20:28:49 -07:00
Michael Goulet 87c9b3f35e
Rollup merge of #110126 - compiler-errors:new-solver-safe-transmute, r=oli-obk
Support safe transmute in new solver

Basically copies the same implementation as the old solver, but instead of looking for param types, we look for type or const placeholders.
2023-04-11 20:28:48 -07:00
Michael Goulet 2f5440c38a
Rollup merge of #110113 - jyn514:download-rustc-cross, r=albertlarsan68
Fix `x test ui --target foo` when download-rustc is enabled

Previously, we would never build the target std, only the host std:

```
; x t tests/ui/attributes --target wasm32-unknown-unknown
Building bootstrap
    Finished dev [unoptimized] target(s) in 0.02s
Building stage0 library artifacts (x86_64-unknown-linux-gnu)
    Finished release [optimized] target(s) in 0.08s
Building tool compiletest (stage0)
    Finished release [optimized] target(s) in 0.09s
Check compiletest suite=ui mode=ui (x86_64-unknown-linux-gnu -> wasm32-unknown-unknown)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { depth: 0, inner: Io { path: Some("/home/jyn/src/rust2/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/wasm32-unknown-unknown/lib"), err: Os { code: 2, kind: NotFound, message: "No such file or directory" } } }', src/tools/compiletest/src/main.rs:842:31
```

Helps with https://github.com/rust-lang/rust/issues/81930.
2023-04-11 20:28:48 -07:00
Michael Goulet 4f2f7fda10
Rollup merge of #110104 - kormosi:todo_typo, r=cuviper
Reword the docstring in todo! macro definition, fixing a typo
2023-04-11 20:28:47 -07:00
Michael Goulet e6e46bae6f
Rollup merge of #110018 - jfgoog:host-and-target-linker, r=wesleywiser
Pass host linker to compiletest.

Tests marked `// force-host` were using the default linker, even if a custom linker was configured in config.toml.

This change adds a new flag, --host-linker, to compiletest, and renames --linker to --target-linker.
2023-04-11 20:28:47 -07:00
Michael Goulet 90b55973dd
Rollup merge of #110000 - reez12g:issue-109878, r=jackh726
Rename tests/ui/unique to tests/ui/box/unit

fixes https://github.com/rust-lang/rust/issues/109878

Since tests/ui/box already exists, I have temporarily named it boxed-box, but if another name sounds better, please let me know.
2023-04-11 20:28:46 -07:00
Michael Goulet 8a7a66572e
Rollup merge of #109894 - fleetingbytes:109893-var_os-never-returns-an-error, r=cuviper
Remove Errors section from var_os docs

Remove `Errors` section from `var_os` documentation, fixes #109893
2023-04-11 20:28:46 -07:00
Michael Goulet 4a24aab220
Rollup merge of #96971 - zhaixiaojuan:master, r=wesleywiser
Initial support for loongarch64-unknown-linux-gnu

Hi, We hope to add a new port in rust for LoongArch.

LoongArch intro
LoongArch is a RISC style ISA which is independently designed by Loongson
Technology in China. It is divided into two versions, the 32-bit version (LA32)
and the 64-bit version (LA64). LA64 applications have application-level
backward binary compatibility with LA32 applications. LoongArch is composed of
a basic part (Loongson Base) and an expanded part. The expansion part includes
Loongson Binary Translation (LBT), Loongson VirtualiZation (LVZ), Loongson SIMD
EXtension (LSX) and Loongson Advanced SIMD EXtension(LASX).

Currently the LA464 processor core supports LoongArch ISA and the Loongson
3A5000 processor integrates 4 64-bit LA464 cores. LA464 is a four-issue 64-bit
high-performance processor core. It can be used as a single core for high-end
embedded and desktop applications, or as a basic processor core to form an
on-chip multi-core system for server and high-performance machine applications.

Documentations:
ISA:
https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html
ABI:
https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html
More docs can be found at:
https://loongson.github.io/LoongArch-Documentation/README-EN.html

Since last year, we have locally adapted two versions of rust, rust1.41 and rust1.57, and completed the test locally.
I'm not sure if I'm submitting all the patches at once, so I split up the patches and here's one of the commits
2023-04-11 20:28:45 -07:00
bors 13d1802b88 Auto merge of #109895 - nikic:llvm-16-tests, r=cuviper
Add codegen tests for issues fixed by LLVM 16

Fixes #75978.
Fixes #99960.
Fixes #101048.
Fixes #101082.
Fixes #101814.
Fixes #103132.
Fixes #103327.
2023-04-12 02:30:21 +00:00
bors e7271f4b92 Auto merge of #110194 - GuillaumeGomez:update-browser-ui-test, r=notriddle
Update browser-ui-test version

This update add the support for expressions, so we can now do this:

```
assert: 1 > 2 && ["a"] != ["b", "c"]
```

It also improved commands naming and updated puppeteer version.

r? `@notriddle`
2023-04-11 23:47:18 +00:00
bors 9df3a39fb3 Auto merge of #110198 - weihanglo:update-cargo, r=weihanglo
Update cargo

17 commits in 0e474cfd7b16b018cf46e95da3f6a5b2f1f6a9e7..7bf43f028ba5eb1f4d70d271c2546c38512c9875
2023-03-31 23:15:58 +0000 to 2023-04-10 16:01:41 +0000

- docs(pkgid): Consistently use @ (rust-lang/cargo#11956)
- Fix credential token format validation. (rust-lang/cargo#11951)
- Validate token on publish. (rust-lang/cargo#11952)
- Clarify docs on `-C` that it appears before the command. (rust-lang/cargo#11947)
- Add `try_canonicalize` and use it over `std::fs::canonicalize` (rust-lang/cargo#11866)
- Fix typo (rust-lang/cargo#11944)
- docs(changelog): Change wording about auto-fix message (rust-lang/cargo#11943)
- Update home repo URL (rust-lang/cargo#11941)
- doc(changelog): `[env]` is a table, not a stable (rust-lang/cargo#11942)
- Stop using UncanonicalizedIter for QueryKind::Exact (rust-lang/cargo#11937)
- Don't query permutations of the path prefix. (rust-lang/cargo#11936)
- Fix typo in variable name (rust-lang/cargo#11931)
- Fix Cargo warning about unused sparse configuration key (rust-lang/cargo#11930)
- Switch benchsuite to the index archive. (rust-lang/cargo#11933)
- Update git2 (rust-lang/cargo#11928)
- Publish docs: Clarify requirements about the state of the index after publish. (rust-lang/cargo#11926)
- Call out the differences between the index JSON and the API or metadata. (rust-lang/cargo#11927)
2023-04-11 21:32:48 +00:00
Weihang Lo f7c04edadc
Update cargo 2023-04-11 19:33:57 +01:00
Michael Goulet 7ec72efe10 Allow the elaborator to only filter to real supertraits 2023-04-11 17:45:42 +00:00
Michael Goulet 4560b61cd1 Broken tests 2023-04-11 17:45:42 +00:00
Michael Goulet 25c342f30a Split implied and super predicate queries 2023-04-11 17:45:42 +00:00
Michael Goulet 3dab259cb9 Split super_predicates_that_define_assoc_type query from super_predicates_of 2023-04-11 17:40:54 +00:00
Guillaume Gomez 010fa00b80 Update rustdoc GUI tests to new browser-ui-test version 2023-04-11 19:14:35 +02:00
Guillaume Gomez 8aba3f3264 Update browser-ui-test version to 0.15.0 2023-04-11 19:14:35 +02:00
bors 87a2408b06 Auto merge of #110003 - flip1995:clippyup, r=Manishearth
Update Clippy

r? `@Manishearth`
2023-04-11 16:51:23 +00:00
Nikita Popov 83f525cc28 Make test compatible with 32-bit 2023-04-11 17:19:07 +02:00
bors 45749b21b7 Auto merge of #110092 - clubby789:builtin-macros-translatable, r=compiler-errors
Migrate most of `rustc_builtin_macros` to diagnostic impls

cc #100717

This is a couple of days work, but I decided to stop for now before the PR becomes too big. There's around 50 unresolved failures when `rustc::untranslatable_diagnostic` is denied, which I'll finish addressing once this PR goes thtough

A couple of outputs have changed, but in all instances I think the changes are an improvement/are more consistent with other diagnostics (although I'm happy to revert any which seem worse)
2023-04-11 14:40:54 +00:00
Patrik Kormosi 4e84d695f3 Reword the docstring in todo! macro definition 2023-04-11 16:29:48 +02:00
Philipp Krones c355e6b9a8
Update Cargo.lock 2023-04-11 15:34:15 +02:00
Philipp Krones 0ca8ae5edd
Merge commit '83e42a2337dadac915c956d125f1d69132f36425' into clippyup 2023-04-11 15:31:08 +02:00
bors 83e42a2337 Auto merge of #10630 - flip1995:book-link-fix, r=xFrednet
Fix links in Clippy book

Links to README.md files must actually be links to index.md files,
because of the inner workings of `mdbook`.

Also use the latest mdbook version in CI.

---

Blocks https://github.com/rust-lang/rust/pull/110003#issuecomment-1500249457

changelog: none
2023-04-11 13:16:06 +00:00
Philipp Krones 0266a9e9a3
Fix links in Clippy book
Links to README.md files must actually be links to index.md files,
because of the inner workings of `mdbook`.

Also use the latest mdbook version in CI.
2023-04-11 14:43:47 +02:00
DaniPopes c37e72897c
rename maybe_delink to maybe_remove_mention 2023-04-11 14:04:50 +02:00
bors dfe024e104 Auto merge of #109765 - petrochenkov:encodeless, r=cjgillot
rustc_metadata: Filter encoded data more aggressively using `DefKind`

I focused on data that contains spans, because spans are expensive to encode/decode/hash, but also touched `should_encode_visibility` too.

One incorrect use of impl visibility in diagnostics is also replaced with trait visibility.
2023-04-11 10:32:41 +00:00
Nikita Popov ec635c002b Add ignore-debug to two tests
These don't optimize with debug assertions. For one of them, this
is due to the new alignment checks, for the other I'm not sure
what specifically blocks it.
2023-04-11 11:22:15 +02:00
bors 8e1162f07e Auto merge of #110168 - saethlin:miri, r=RalfJung
update Miri

Most importantly, this should ensure that the Miri test suite passes in this repo, when the issue is fixed.

r? `@oli-obk`
2023-04-11 08:11:46 +00:00
reez12g d5339becd4 rename tests/ui/unique to tests/ui/box/unit 2023-04-11 16:06:51 +09:00
bors 5072826793 Auto merge of #110170 - JohnTitor:rollup-hdramer, r=JohnTitor
Rollup of 8 pull requests

Successful merges:

 - #109527 (Set up standard library path substitution in rust-gdb and gdbgui)
 - #109752 (Stall auto trait assembly in new solver for int/float vars)
 - #109860 (Add support for RISC-V relax target feature)
 - #109923 (Update `error [E0449]: unnecessary visibility qualifier` to be more clear)
 - #110070 (The `wrapping_neg` example for unsigned types shouldn't use `i8`)
 - #110146 (fix(doc): do not parse inline when output is json for external crate)
 - #110147 (Add regression test for #104916)
 - #110149 (Update books)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-04-11 05:50:41 +00:00
Yuki Okushi 48e14bbb5a
Rollup merge of #110149 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/book

1 commits in 0510ca84c2ce6bf93c4ccf9248756e9e4fd00b12..c06006157b14b3d47b5c716fc392b77f3b2e21ce
2023-04-03 15:31:55 UTC to 2023-04-03 15:31:55 UTC

- Fix grammar (rust-lang/book#3600)

## rust-lang/reference

3 commits in 3c47807a3131b3c7cacb508f52632078d253cd0a..1f8dc727e94ae4ef92adf70df979521a1ea1143e
2023-04-09 14:04:53 UTC to 2023-03-29 13:21:47 UTC

- Explain typos in `asm!` can be unsound (rust-lang/reference#1344)
- Fix coding style in example: add space between module name and bracket (rust-lang/reference#1347)
- redundant word removed (rust-lang/reference#1346)

## rust-lang/rust-by-example

1 commits in ba84bf35d0f17d404003349309201654d25f61af..31961fe22521a779070a44a8f30a2b00a20b6212
2023-04-10 13:06:34 UTC to 2023-04-10 13:06:34 UTC

- Add clarity to name of file being used in library example. (rust-lang/rust-by-example#1697)

## rust-lang/rustc-dev-guide

8 commits in fca8af6c154c6cde2512f1331cf2704f214a818e..6337ed17fb8dcd918d78b7d97d213e923530337c
2023-04-10 14:23:05 UTC to 2023-04-06 00:29:18 UTC

- fix markup (rust-lang/rustc-dev-guide#1670)
- Reorganize "Getting Started" and add a "What should I work on?" section (rust-lang/rustc-dev-guide#1665)
- Clarify cfg(bootstrap) docs (rust-lang/rustc-dev-guide#1669)
- Link to forge instead of duplicating toolstate info (rust-lang/rustc-dev-guide#1664)
- Improve the landing page for contributing to the libstd docs (rust-lang/rustc-dev-guide#1666)
- Various improvements to `check_line_lengths.sh` (rust-lang/rustc-dev-guide#1667)
- Document how to ignore specific files in a diff (rust-lang/rustc-dev-guide#1668)
- mention `git clone --depth 1` (rust-lang/rustc-dev-guide#1663)
2023-04-11 12:18:52 +09:00
Yuki Okushi 016ebf868b
Rollup merge of #110147 - JohnTitor:issue-104916, r=compiler-errors
Add regression test for #104916

Closes #104916
I haven't tested if it still passes with debug assertions enabled so it'd be better to wait for CI to be green.
r? compiler-errors
2023-04-11 12:18:52 +09:00
Joshua Nelson 47ff60dc09 Fix x test ui --target foo when download-rustc is enabled
Previously, we would never build the target std, only the host std.
2023-04-10 22:18:51 -05:00
Yuki Okushi a996418e3d
Rollup merge of #110146 - bvanjoi:relative-110138, r=notriddle
fix(doc): do not parse inline when output is json for external crate

relative #110138
2023-04-11 12:18:51 +09:00
Yuki Okushi 75a46252ba
Rollup merge of #110070 - scottmcm:wrapping-neg, r=cuviper
The `wrapping_neg` example for unsigned types shouldn't use `i8`

Probably it should have at least one example with an unsigned type.
2023-04-11 12:18:51 +09:00
Yuki Okushi 788de4701e
Rollup merge of #109923 - ElectrifyPro:visibility, r=wesleywiser
Update `error [E0449]: unnecessary visibility qualifier` to be more clear

This updates the error message `error[E0449]: unnecessary visibility qualifier` by clearly indicating that visibility qualifiers already inherit their visibility from a parent item. The error message previously implied that the qualifiers were permitted, which is not the case anymore.

Resolves #109822.
2023-04-11 12:18:50 +09:00
Yuki Okushi 5af6385f9f
Rollup merge of #109860 - zyedidia:riscv-relax, r=petrochenkov
Add support for RISC-V relax target feature

This adds `relax` as an allowed RISC-V target feature. The relax feature in LLVM enables [linker relaxation](https://www.sifive.com/blog/all-aboard-part-3-linker-relaxation-in-riscv-toolchain), an optimization specific to RISC-V that allows global variable accesses to be resolved by the linker by using the global pointer (`gp`) register (rather than constructing the addresses from scratch for each access). Enabling `relax` will cause LLVM to emit relocations in the object file that support this. The feature can be enabled in rustc with `-C target-feature=+relax`.

Currently this feature is disabled by default, but maybe it should be enabled by default since it is an easy performance improvement (but requires the `gp` register to be set up properly). GCC/Clang enable this feature by default (for both hosted/bare-metal targets), and include the `-mno-relax` flag to disable it (see [here](466d554dca/clang/lib/Driver/ToolChains/Arch/RISCV.cpp (L145)) for the code that enables it in Clang). I think it would make sense to enable by default, at least for all hosted targets since the `gp` register should be automatically set up by the runtime. For bare-metal targets, `gp` must be set up manually, so it is probably best to leave off by default to avoid breaking existing applications that do not set up `gp`. Leaving it disabled by default for all targets is also reasonable though.

Let me know your thoughts. Thanks!

Fixes #109426.
2023-04-11 12:18:50 +09:00
Yuki Okushi a69cc45d82
Rollup merge of #109752 - compiler-errors:new-solver-stall-auto-trait-for-num-var, r=lcnr
Stall auto trait assembly in new solver for int/float vars

Make sure that we don't match int/float vars against *all* manual auto trait impls due to this check:

2fb0e8d162/compiler/rustc_trait_selection/src/solve/trait_goals.rs (L151-L169)

Since `find_map_relevant_impl` treats all impls as candidates for int/float vars, due to the way that `fast_reject::simplify_type` works.

This fixes compiler-errors/next-solver-hir-issues#11.

r? ``@lcnr``
2023-04-11 12:18:49 +09:00
Yuki Okushi c617ddf4f3
Rollup merge of #109527 - lnicola:rust-gdb-substitute-path, r=cuviper
Set up standard library path substitution in rust-gdb and gdbgui

Fixes #62945

---

Only lightly tested (in release mode, where the paths are a bit of a mess) because my `gdb` appears to crash with `internal-error: inside_main_func: Assertion 'block != nullptr' failed.` and I don't have `gdbgui`. Please review carefully my shell syntax.

There's also `rust-lldb`, but I don't know the equivalent for it.
2023-04-11 12:18:49 +09:00
bors b80ee3969f Auto merge of #109850 - MU001999:master, r=estebank
Emits non-overlapping suggestions for arguments with wrong types

Fixes #109831
2023-04-11 03:07:58 +00:00
bors 3b5b2ed01a Auto merge of #10492 - schubart:collection_is_never_read_unit_type, r=Manishearth
`collection_is_never_read`: Handle unit type

changelog: [`collection_is_never_read`]: Fix false negative
fixes: #10488
2023-04-11 03:05:57 +00:00
Tomoaki Kawada 72bfd55d4b kmc-solid: Implement Socket::read_buf 2023-04-11 12:00:36 +09:00
fleetingbytes 7d269633b1
Break up long first paragraph
Further referring to `var_os` as a "function" (like in `var`), rather than "method".
2023-04-11 04:13:35 +02:00