Commit Graph

257905 Commits

Author SHA1 Message Date
Michael Goulet
a333943890 Stop using AssocKind in new solver 2024-06-16 11:28:47 -04:00
Michael Goulet
b65d735f1c Move InferCtxtSelectExt out of eval_ctxt module 2024-06-16 11:28:47 -04:00
Michael Goulet
587173374e Uplift Reveal to rustc_type_ir 2024-06-16 11:28:47 -04:00
bors
55cac26a9e Auto merge of #126545 - petrochenkov:spimprove, r=BoxyUwU
rustc_span: Minor improvements

Introduce `{IndexNewtype,SyntaxContext}::from_u16` for convenience because small indices are sometimes encoded as `u16`.
Use `SpanData::span` instead of `Span::new` where appropriate.
Add a clarifying comment about decoding span parents.
2024-06-16 14:46:34 +00:00
bjorn3
742a923b28 Add dedicated platform support page for Redox OS 2024-06-16 12:56:50 +00:00
Jeremy Soller
3cddc04230 Use Linux file locking on Redox 2024-06-16 12:56:50 +00:00
bjorn3
efa213afad Add i686-unknown-redox target
Co-Authored-By: Jeremy Soller <jackpot51@gmail.com>
2024-06-16 12:56:48 +00:00
Jeremy Soller
60a972db83 Several fixes to the redox target specs
* Allow crt-static for dylibs
* Pass -lgcc to the linker
2024-06-16 12:56:24 +00:00
bors
f6236f63d2 Auto merge of #126542 - GuillaumeGomez:migrate-run-make-duplicate-output-flavors, r=Kobzol
Migrate `run-make/duplicate-output-flavors` to `rmake.rs`

Part of https://github.com/rust-lang/rust/issues/121876.

r? `@jieyouxu`
2024-06-16 12:34:44 +00:00
joboet
cf9510cd33
std: move sys_common::backtrace to sys 2024-06-16 13:14:01 +02:00
Vadim Petrochenkov
14da80c372 rustc_span: Minor improvements
Introduce `{IndexNewtype,SyntaxContext}::from_u16` for convenience because small indices are sometimes encoded as `u16`.
Use `SpanData::span` instead of `Span::new` where appropriate.
Add a clarifying comment about decoding span parents.
2024-06-16 14:08:25 +03:00
Vadim Petrochenkov
c6c1c992e2 rustc_span: Optimize more hygiene operations using Span::map_ctxt 2024-06-16 13:30:43 +03:00
Guillaume Gomez
ac751b3049 Migrate run-make/duplicate-output-flavors to rmake.rs 2024-06-16 11:46:02 +02:00
Slanterns
51d9546416
Apply suggestion.
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2024-06-16 17:19:25 +08:00
bors
12b33d36f3 Auto merge of #126540 - jhpratt:rollup-fzzz8j3, r=jhpratt
Rollup of 4 pull requests

Successful merges:

 - #125112 (Document behavior of `create_dir_all` wrt. empty path)
 - #126127 (Spell out other trait diagnostic)
 - #126309 (unify git command preperation)
 - #126539 (Update `Arc::try_unwrap()` docs)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-06-16 07:44:33 +00:00
Jacob Pratt
623cf23621
Rollup merge of #126539 - lukaslueg:patch-1, r=jhpratt
Update `Arc::try_unwrap()` docs

Clarify the language wrt "race condition" not meaning "memory unsafety".

The docs make an important point about a 'logical' race condition that can occur if the `Err`-case in `Arc::try_unwrap()` is not handled properly. The language as is uses the term "race condition", which the reader may associate with "memory unsafety". This PR tries to clarify the scenario and qualify "race condition without memory unsafety".
2024-06-16 03:41:58 -04:00
Jacob Pratt
e345ddb2d1
Rollup merge of #126309 - onur-ozkan:unify-git-utilization, r=Kobzol
unify git command preperation

Due to https://github.com/rust-lang/rust/issues/125954, we had to modify git invocations with certain flags in https://github.com/rust-lang/rust/pull/126255. However, because there are so many instances of `Command::new("git")` in bootstrap, it is difficult to apply these solutions to all of them.

This PR creates a helper function that unifies the git usage in bootstrap. Meaning, whenever special flags or hacks are needed, we can apply them to this single function which makes things much simpler for the bootstrap team.
2024-06-16 03:41:58 -04:00
Jacob Pratt
936d76009b
Rollup merge of #126127 - Alexendoo:other-trait-diag, r=pnkfelix
Spell out other trait diagnostic

I recently saw somebody confused about the diagnostic thinking it was suggesting to add an `as` cast. This change is longer but I think it's clearer
2024-06-16 03:41:57 -04:00
Jacob Pratt
e4bc7deb78
Rollup merge of #125112 - tbu-:pr_create_dir_all_empty, r=dtolnay
Document behavior of `create_dir_all` wrt. empty path

The behavior makes sense because `Path::new("one_component").parent() == Some(Path::new(""))`, so if one naively wants to create the parent directory for a file to be written, it simply works.

Closes #105108 by documenting the current behavior.
2024-06-16 03:41:57 -04:00
lukaslueg
893f95f1f7
Update Arc::try_unwrap() docs
Clarify the language wrt `race condition` not meaning `memory unsafety`.
2024-06-16 09:07:08 +02:00
Zalathar
e5b43c33d8 coverage: Prefer Iterator::copied 2024-06-16 16:03:26 +10:00
Zalathar
dca6b5eead coverage: Flatten some graph code with let-else 2024-06-16 16:01:43 +10:00
Zalathar
917b455a87 coverage: Reduce/simplify visibility in coverage::graph
Using `pub(super)` makes it harder to move code between modules, and doesn't
provide much privacy benefit over `pub(crate)`.
2024-06-16 16:01:02 +10:00
Zalathar
5eb30f0699 coverage: Remove some old low-value unit tests for graph traversal
These tests might have originally been useful as an implementation aid, but now
they don't provide enough value to justify the burden of updating them as the
underlying code changes.

The code they test is still exercised by the main end-to-end coverage tests.
2024-06-16 15:55:19 +10:00
bors
5639c21fb3 Auto merge of #126505 - compiler-errors:no-vtable, r=lcnr
Only compute vtable information during codegen

This PR removes vtable information from the `Object` and `TraitUpcasting` candidate sources in the trait solvers, and defers the computation of relevant information to `Instance::resolve`. This is because vtables really aren't a thing in the trait world -- they're an implementation detail in codegen.

Previously it was just easiest to tangle this information together since we were already doing the work of looking at all the supertraits in the trait solver, and specifically because we use traits to represent when it's possible to call a method via a vtable (`Object` candidate) and do upcasting (`Unsize` candidate). but I am somewhat suspicious we're doing a *lot* of extra work, especially in polymorphic contexts, so let's see what perf says.
2024-06-16 05:33:49 +00:00
Zalathar
2d3e6c8804 coverage: Split span refinement into two separate steps 2024-06-16 13:47:32 +10:00
Zalathar
118f66c237 coverage: Split out a function for dividing coverage spans into buckets 2024-06-16 13:47:32 +10:00
bors
cd0c944b07 Auto merge of #126299 - scottmcm:tune-sliceindex-ubchecks, r=saethlin
Remove superfluous UbChecks from `SliceIndex` methods

The current implementation calls the unsafe ones from the safe ones, but that means they end up emitting UbChecks that are impossible to hit, since we just checked those things.

This PR adds some new module-local helpers for the code shared between them, so the safe methods can be small enough to inline by avoiding those extra checks, while the unsafe methods still help catch length mistakes.

r? `@saethlin`
2024-06-16 03:22:02 +00:00
Jerry Wang
eb0bad4635
Add drop bombs to llvm.rs 2024-06-15 23:10:42 -04:00
Jerry Wang
89df41636b
Remove run-make-support/src/llvm_readobj.rs 2024-06-15 22:58:58 -04:00
Zalathar
88ade9c740 coverage: Eagerly convert coverage spans to a simpler form 2024-06-16 12:21:41 +10:00
Zalathar
bf74fb1d2f coverage: Move most span processing back into coverage::spans 2024-06-16 12:21:41 +10:00
Zalathar
e102d2dbd6 coverage: More consistent variable names for span processing 2024-06-16 12:21:41 +10:00
bors
bc3618f31e Auto merge of #126479 - Kobzol:disable-llvm-linker-by-default, r=onur-ozkan
Disable `llvm-bitcode-linker` in the default bootstrap profiles

I don't think that we really need to enable `llvm-bitcode-linker` in the default bootstrap profiles, since it seems that it is only useful for running `nvptx` tests. It should be enabled on CI, which it is, and that should be enough. People can enable it easily locally, if they want.

The linker causes occasionally some rebuild issues (https://github.com/rust-lang/rust/issues/122491, https://github.com/rust-lang/rust/issues/126464), but more importantly it is just needless work to build it locally.

I kept it enabled for `dist`, because it is distributed as a `rustup` component (for some reason it's not included in `extended`? not sure).

Fixes: https://github.com/rust-lang/rust/issues/126464
2024-06-16 01:07:45 +00:00
Scott McMurray
33c4817d98 Redo SliceIndex implementations 2024-06-15 17:39:25 -07:00
github-actions
729ed8194f cargo update
Locking 18 packages to latest compatible versions
    Updating annotate-snippets v0.11.3 -> v0.11.4
    Updating clap v4.5.6 -> v4.5.7
    Updating clap_builder v4.5.6 -> v4.5.7
    Updating derive_more v0.99.17 -> v0.99.18
      Adding icu_collections v1.5.0
      Adding icu_normalizer v1.5.0
      Adding icu_normalizer_data v1.5.0
      Adding icu_properties v1.5.0
      Adding icu_properties_data v1.5.0
    Updating idna v0.5.0 -> v1.0.0
    Updating mdbook-i18n-helpers v0.3.3 -> v0.3.4
    Updating redox_syscall v0.5.1 -> v0.5.2
    Updating regex-lite v0.1.5 -> v0.1.6
    Updating regex-syntax v0.8.3 -> v0.8.4
    Removing unicode-bidi v0.3.15
    Updating url v2.5.0 -> v2.5.1
      Adding utf16_iter v1.0.5
      Adding utf8_iter v1.0.4
      Adding write16 v1.0.0
note: pass `--verbose` to see 88 unchanged dependencies behind latest
2024-06-16 00:18:06 +00:00
Slanterns
240478383b
add codegen test for Error::provide 2024-06-16 07:43:08 +08:00
bors
d5b34a28cf Auto merge of #126352 - cuviper:centos7-vault, r=Kobzol
ci: Update centos:7 to use vault repos

CentOS 7 is going EOL on June 30, after which its package repos will no
longer exist on the regular mirrors. We'll still be able to access
packages from the vault server though, and can start doing so now. This
affects `dist-i686-linux` and `dist-x86_64-linux`.

I also removed `epel-release` because we were only using that for its
`cmake3`, but we've been building our own version for a while.

try-job: dist-i686-linux
try-job: dist-x86_64-linux
2024-06-15 22:54:07 +00:00
Slanterns
6cce48838b
update comment 2024-06-16 06:31:37 +08:00
bors
3cf924b934 Auto merge of #126528 - GuillaumeGomez:rollup-6zjs70e, r=GuillaumeGomez
Rollup of 9 pull requests

Successful merges:

 - #126229 (Bump windows-bindgen to 0.57)
 - #126404 (Check that alias-relate terms are WF if reporting an error in alias-relate)
 - #126410 (smir: merge identical Constant and ConstOperand types)
 - #126478 (Migrate `run-make/codegen-options-parsing` to `rmake.rs`)
 - #126496 (Make proof tree probing and `Candidate`/`CandidateSource` generic over interner)
 - #126508 (Make uninitialized_error_reported a set of locals)
 - #126517 (Migrate `run-make/dep-graph` to `rmake.rs`)
 - #126525 (trait_selection: remove extra words)
 - #126526 (tests/ui/lint: Move 19 tests to new `non-snake-case` subdir)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-06-15 18:52:57 +00:00
Guillaume Gomez
f788ea47f9
Rollup merge of #126526 - Enselic:non-snake-case, r=jieyouxu
tests/ui/lint: Move 19 tests to new `non-snake-case` subdir

Mainly so that it is easier to only run all `non_snake_case`-lint-specific tests with:

    ./x test tests/ui/lint/non-snake-case

But also to reduce the size of the large `tests/ui/lint` directory. And rename some tests to pass tidy, and remove them from `src/tools/tidy/src/issues.txt`.
2024-06-15 19:51:38 +02:00
Guillaume Gomez
b6311b3a33
Rollup merge of #126525 - jieyouxu:traitsel-docs, r=compiler-errors
trait_selection: remove extra words

Tiny doc cleanup.

Fixes https://github.com/rust-lang/rust/issues/88231.
2024-06-15 19:51:38 +02:00
Guillaume Gomez
38b3c9acd4
Rollup merge of #126517 - GuillaumeGomez:migrate-run-make-dep-graph, r=Kobzol
Migrate `run-make/dep-graph` to `rmake.rs`

Part of https://github.com/rust-lang/rust/issues/121876.

r? `@jieyouxu`
2024-06-15 19:51:37 +02:00
Guillaume Gomez
53364c3e07
Rollup merge of #126508 - beepster4096:minor_borrowck_cherrypick, r=compiler-errors
Make uninitialized_error_reported a set of locals

Another artifact of how places used to be able to be based on statics and not just locals. This set is exclusively filled with PlaceRefs that are just locals, so it should just contain locals directly.
2024-06-15 19:51:37 +02:00
Guillaume Gomez
aa6fb1cfcb
Rollup merge of #126496 - compiler-errors:more-generics, r=lcnr
Make proof tree probing and `Candidate`/`CandidateSource` generic over interner

`<TyCtxt<'tcx>>` is ugly, but will become `<I>` when things actually become generic.

r? lcnr
2024-06-15 19:51:36 +02:00
Guillaume Gomez
1f076c273b
Rollup merge of #126478 - GuillaumeGomez:migrate-run-make-codegen-options-parsing, r=jieyouxu
Migrate `run-make/codegen-options-parsing` to `rmake.rs`

Part of https://github.com/rust-lang/rust/issues/121876.

r? `@jieyouxu`
2024-06-15 19:51:36 +02:00
Guillaume Gomez
be1d42776d
Rollup merge of #126410 - RalfJung:smir-const-operand, r=oli-obk
smir: merge identical Constant and ConstOperand types

The first commit renames the const operand visitor functions on regular MIR to match the type name, that was forgotten in the original rename.

The second commit changes stable MIR, fixing https://github.com/rust-lang/project-stable-mir/issues/71. Previously there were two different smir types for the MIR type `ConstOperand`, one used in `Operand` and one in `VarDebugInfoContents`.

Maybe we should have done this with https://github.com/rust-lang/rust/pull/125967, so there's only a single breaking change... but I saw that PR too late.

Fixes https://github.com/rust-lang/project-stable-mir/issues/71
2024-06-15 19:51:35 +02:00
Guillaume Gomez
709d862308
Rollup merge of #126404 - compiler-errors:alias-relate-terms, r=lcnr
Check that alias-relate terms are WF if reporting an error in alias-relate

Check that each of the left/right term is WF when deriving a best error obligation for an alias-relate goal. This will make sure that given `<i32 as NotImplemented>::Assoc = ()` will drill down into `i32: NotImplemented` since we currently treat the projection as rigid.

r? lcnr
2024-06-15 19:51:35 +02:00
Guillaume Gomez
4f83c1d967
Rollup merge of #126229 - ChrisDenton:bindgen, r=Mark-Simulacrum
Bump windows-bindgen to 0.57

This PR updates our generated Windows API bindings using the latest version of `windows-bindgen`.

The only change to the generated code is that `derive` is used for `Copy` and `Clone` instead of `impl`.
2024-06-15 19:51:34 +02:00
klensy
d69f088538 fix build with html5ever bump 2024-06-15 20:36:54 +03:00