Commit graph

284228 commits

Author SHA1 Message Date
Scott McMurray
2b15dd1ddd Add more comments to discriminant calculations. 2025-03-13 00:39:18 -07:00
许杰友 Jieyou Xu (Joe)
7bde176305 Merge from rustc 2025-03-13 15:20:11 +08:00
许杰友 Jieyou Xu (Joe)
d4c5e752c5 Preparing for merge from rustc 2025-03-13 15:19:22 +08:00
Ralf Jung
88b206d582 atomic intrinsics: clarify which types are supported and (if applicable) what happens with provenance 2025-03-13 08:14:34 +01:00
Scott McMurray
91af4aa2e2 Allow more top-down inlining for single-BB callees
This means that things like `<usize as Step>::forward_unchecked` and `<PartialOrd for f32>::le` will inline even if we've already done a bunch of inlining to find the calls to them.
2025-03-12 22:39:43 -07:00
bors
961351c76c Auto merge of #138249 - compiler-errors:auto-self, r=lcnr
Do not register `Self: AutoTrait` when confirming auto trait (in old solver)

Every built-in auto impl for a trait goal like `Ty: Auto` immediately registers another obligation of `Ty: Auto` as one of its nested obligations, leading to us stressing the cycle detection machinery a lot more than we need to. This is because all traits have a `Self: Trait` predicate.

To fix this, remove the call to `impl_or_trait_obligations` in `vtable_auto_impl`, since auto traits do not have where clauses.

r? lcnr
2025-03-13 05:37:55 +00:00
ClearLove
2f824ea429
Update library/core/src/intrinsics/mod.rs
Co-authored-by: Thom Chiovoloni <thom@shift.click>
2025-03-13 11:34:18 +08:00
ClearLove
6a01990215
Update library/core/src/intrinsics/mod.rs
Co-authored-by: Thom Chiovoloni <thom@shift.click>
2025-03-13 11:34:06 +08:00
ClearLove
d2ff65807c
Update library/core/src/intrinsics/mod.rs
Co-authored-by: Thom Chiovoloni <thom@shift.click>
2025-03-13 11:33:55 +08:00
Tshepang Mbambo
231627b138
update error message
[`compile-pass` has since been renamed to `build-pass`](https://github.com/rust-lang/rust/issues/62277)
2025-03-13 04:48:46 +02:00
Tshepang Mbambo
d0a3160374
Merge pull request #2281 from rust-lang/tshepang-patch-1
less text for same effect
2025-03-13 03:52:43 +02:00
Tshepang Mbambo
26176b017e
less text for same effect 2025-03-13 03:51:51 +02:00
bors
8536f201ff Auto merge of #138416 - Manishearth:rollup-fejor9p, r=Manishearth
Rollup of 12 pull requests

Successful merges:

 - #134076 (Stabilize `std::io::ErrorKind::InvalidFilename`)
 - #137504 (Move methods from Map to TyCtxt, part 4.)
 - #138175 (Support rmeta inputs for --crate-type=bin --emit=obj)
 - #138259 (Disentangle `ForwardGenericParamBan` and `ConstParamTy` ribs)
 - #138280 (fix ICE in pretty-printing `global_asm!`)
 - #138318 (Rustdoc: remove a bunch of `@ts-expect-error` from main.js)
 - #138331 (Use `RUSTC_LINT_FLAGS` more)
 - #138357 (merge `TypeChecker` and `TypeVerifier`)
 - #138394 (remove unnecessary variant)
 - #138403 (Delegation: one more ICE fix for `MethodCall` generation)
 - #138407 (Delegation: reject C-variadics)
 - #138409 (Use sa_sigaction instead of sa_union.__su_sigaction for AIX)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-03-13 01:37:26 +00:00
Michael Goulet
8bf33c213f Visit PatField when collecting lint levels 2025-03-13 00:22:30 +00:00
Weihang Lo
c8a6fcc3c8
fix: remove the check of lld not supporting @response-file
In LLVM v9, lld has supported @response-file
LLVM v9 was released on 2019-09-19.
And the check was added back to 2018-03-14 (1.26.0) via 04442af18b.
It has been more than five years, and we ship our own lld regardlessly.
This should be happily removed.

See also:

* <bb12396f91>
* <https://reviews.llvm.org/D63024>
2025-03-12 18:36:21 -04:00
bors
0e76f8b7e0 Auto merge of #138076 - tmiasko:pred-count, r=matthewjasper
Calculate predecessor count directly

Avoid allocating a vector of small vectors merely to determine how many
predecessors each basic block has.

Additionally use u8 and saturating operations. The pass only needs to
distinguish between [0..1] and [2..].
2025-03-12 22:33:54 +00:00
Alona Enraght-Moony
a05d6ab8b7 rustdoc-json: Clean up & Document id handling
Alot of the current id handling is weird and unnecessary. e.g:

1. The fully uninterned id type was (FullItemId, Option<FullItemId>)
   meaning it wasn't actually full!
2. None of the extra fields in Option<FullItemId> would ever be used
3. imported_item_id was a rustdoc_json_types::Id instead of a simpler
   DefId

This commit removes the unnessessary complexity, and documents where the
remaining complexity comes from.

Co-authored-by: León Orell Valerian Liehr <me@fmease.dev>
2025-03-12 22:10:27 +00:00
Mads Marquart
0434013a6e Fix RISC-V VxWorks LLVM target triples
The targets used the plain `$ARCH` triple, which LLVM normalizes to
`$ARCH-unknown-unknown`, which is inconsistent with the the other
VxWorks targets which all use `$ARCH-unknown-linux-gnu$ABI`.
2025-03-12 22:42:17 +01:00
Alona Enraght-Moony
0a477921a8 rustdoc-json: Extract Id handling into its own module
I want to work on this in a followup commit, so in this commit I make it
self-contained. Contains no code changes, all functions are defined
exactly as they were in conversions.rs.
2025-03-12 21:35:00 +00:00
Josh Stone
2c0ad9d967 Remove feature = "hash_raw_entry" 2025-03-12 13:32:50 -07:00
Michael Goulet
7a08d0368f Add an opt-out in pretty printing for RTN rendering 2025-03-12 19:42:18 +00:00
Michael Goulet
5ec462e8e7 Don't emit error within cast function, propagate it as a CastError 2025-03-12 19:33:27 +00:00
Hans Wennborg
eb2e421e36 Adapt to LLVM dropping CfiFunctionIndex::begin()/end()
After https://github.com/llvm/llvm-project/pull/130382, RustWrapper
needs to call CfiFunctionIndex::symbols() instead.
2025-03-12 20:03:29 +01:00
Ralf Jung
03c1b43d9e minor interpret cleanups 2025-03-12 18:35:40 +01:00
bors
249cb84316 Auto merge of #138414 - matthiaskrgr:rollup-9ablqdb, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #137314 (change definitely unproductive cycles to error)
 - #137701 (Convert `ShardedHashMap` to use `hashbrown::HashTable`)
 - #138269 (uefi: fs: Implement FileType, FilePermissions and FileAttr)
 - #138331 (Use `RUSTC_LINT_FLAGS` more)
 - #138345 (Some autodiff cleanups)
 - #138387 (intrinsics: remove unnecessary leading underscore from argument names)
 - #138390 (fix incorrect tracing log)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-03-12 17:27:43 +00:00
onur-ozkan
675ae1afd0 use expect instead of allow
This is more useful than `allow` as compiler will force us to remove rules
that are no longer valid (we already got 2 of them in this change).

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-12 17:27:26 +00:00
Manish Goregaokar
c756251076
Rollup merge of #138409 - xingxue-ibm:use-sigaction, r=compiler-errors
Use sa_sigaction instead of sa_union.__su_sigaction for AIX

Revert test cases to use `sa_sigaction` instead of `sa_union.__su_sigaction`, now that the `libc` crate implementation for AIX defines `sa_sigaction` as a direct member of `struct sigaction`, aligning it with implementations on other similar platforms. ([[AIX] Use sa_sigaction instead of the union](https://github.com/rust-lang/libc/pull/4250)).
2025-03-12 10:19:35 -07:00
Manish Goregaokar
9d1b62c109
Rollup merge of #138407 - Bryanskiy:delegation-variadic, r=petrochenkov
Delegation: reject C-variadics

The explanation is contained in attached issues.

Fixes https://github.com/rust-lang/rust/issues/127443
Fixes https://github.com/rust-lang/rust/issues/127413

r? `@petrochenkov`
2025-03-12 10:19:34 -07:00
Manish Goregaokar
8d28328049
Rollup merge of #138403 - Bryanskiy:delegation-ice-2, r=petrochenkov
Delegation: one more ICE fix for `MethodCall` generation

self-explanatory

Fixes https://github.com/rust-lang/rust/issues/138362

r? `@petrochenkov`
2025-03-12 10:19:33 -07:00
Manish Goregaokar
84a2b689ac
Rollup merge of #138394 - lcnr:yeet-variant, r=compiler-errors
remove unnecessary variant
2025-03-12 10:19:32 -07:00
Manish Goregaokar
74c3794ece
Rollup merge of #138357 - lcnr:goodbye-TypeVerifier-rarw, r=compiler-errors
merge `TypeChecker` and `TypeVerifier`

Stacked on top of #138354. Best reviewed commit by commit.

r? `@compiler-errors`
2025-03-12 10:19:31 -07:00
Manish Goregaokar
245d3a90ca
Rollup merge of #138331 - nnethercote:use-RUSTC_LINT_FLAGS-more, r=onur-ozkan,jieyouxu
Use `RUSTC_LINT_FLAGS` more

An alternative to the failed #138084.

Fixes #138106.

r? `````@jieyouxu`````
2025-03-12 10:19:30 -07:00
Manish Goregaokar
277d05e857
Rollup merge of #138318 - lolbinarycat:rustdoc-js-less-expect-error-part2, r=notriddle
Rustdoc: remove a bunch of @ts-expect-error from main.js

r? ```````@notriddle```````

Most remaining instances of ````````@ts-expect-error```````` in `search.js` and `main.js` are some sort of unchecked assertion, most of them involving nullibility, and we have yet to decide on how to handle these.
2025-03-12 10:19:29 -07:00
Manish Goregaokar
f5eb296c5a
Rollup merge of #138280 - folkertdev:mir-dump-asm-const, r=compiler-errors
fix ICE in pretty-printing `global_asm!`

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

since https://github.com/rust-lang/rust/pull/137180, `global_asm!` gets a fake body, that the pretty printing logic did not know what to do with.

based on [#t-compiler/help > tests for MIR pretty printing](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/tests.20for.20MIR.20pretty.20printing) I created `tests/ui/unpretty/mir` which seemed as good a place as any for a test. If there is a better place, let me know.

try-job: test-various
try-job: x86_64-apple-2
2025-03-12 10:19:28 -07:00
Manish Goregaokar
2d7a592c62
Rollup merge of #138259 - compiler-errors:disentangle-ribs, r=BoxyUwU
Disentangle `ForwardGenericParamBan` and `ConstParamTy` ribs

In #137617, the `ConstParamTy` rib was adjusted to act kinda like the `ForwardGenericParamBan`. However, this means that it no longer served its purpose banning generics from *parent items*. Although we still are checking for param type validity using the `ConstParamTy_` trait, which means that we weren't accepting code we shouldn't, I think it's a bit strange for us not to be rejecting code like this during *resolution* and instead letting these malformed const generics leak into the type system:

```rust
trait Foo<T> {
  fn bar<const N: T>() {}
}
```

This PR does a few things:
1. Introduce a `ForwardGenericParamBanReason` enum, and start using the `ForwardGenericParamBan` rib to ban forward-declared params in const tys when `generic_const_parameter_types` is enabled.
2. Start using the `ConstParamTy` rib to ban *all* generics when `generic_const_parameter_types` is disabled.
3. Improve the diagnostics for both of the cases above, and for forward-declared params in parameter defaults too :3

r? `@BoxyUwU` or reassign
2025-03-12 10:19:28 -07:00
Manish Goregaokar
40c7a9014e
Rollup merge of #138175 - sam-mccall:binobj, r=nnethercote
Support rmeta inputs for --crate-type=bin --emit=obj

This already works for --emit=metadata, but is possible anytime we're not linking.

Tests:
- `rmeta_bin` checks we're not changing --emit=link (already passes)
- `rmeta_bin-pass` tests the new behavior for --emit=obj (would fail today) and also --emit=metadata which isn't changing
2025-03-12 10:19:27 -07:00
Manish Goregaokar
f88f27aff0
Rollup merge of #137504 - nnethercote:remove-Map-4, r=Zalathar
Move methods from Map to TyCtxt, part 4.

A follow-up to https://github.com/rust-lang/rust/pull/137350.

r? ```@Zalathar```
2025-03-12 10:19:26 -07:00
Manish Goregaokar
185dd2d01b
Rollup merge of #134076 - GrigorenkoPV:InvalidFilename, r=joboet
Stabilize `std::io::ErrorKind::InvalidFilename`

FCP complete: https://github.com/rust-lang/rust/issues/130192#issuecomment-2674989358

Tracking issues: #86442 & #130192

This PR:
- Stabilizes `InvalidFilename` without changing its name to `InvalidFileName`.
- Fixes the doc comment (https://github.com/rust-lang/rust/issues/130192#issuecomment-2429534640)
- Does not separate "the name is too long" case into a separate `ErrorKind`. That case is currently documented to be covered by `InvalidFilename` in the doc. I'm not sure if it would be possible to change this later or if that would be an unacceptable breaking change.
- Does not map more raw OS errors to this `ErrorKind` (as suggested in https://github.com/rust-lang/rust/issues/86442#issuecomment-1441709738). This can presumably be addressed later.
2025-03-12 10:19:25 -07:00
Matthias Krüger
579d0587a2
Rollup merge of #138390 - onur-ozkan:fix-invalid-tracing-log, r=jieyouxu
fix incorrect tracing log

Previous information is not correct.
2025-03-12 17:59:10 +01:00
Matthias Krüger
0c4415cdd6
Rollup merge of #138387 - RalfJung:intrinsic-arg-names, r=oli-obk
intrinsics: remove unnecessary leading underscore from argument names

This is unnecessary since https://github.com/rust-lang/rust/pull/135840.
2025-03-12 17:59:10 +01:00
Matthias Krüger
de7e5e96be
Rollup merge of #138345 - oli-obk:autodiff-cleanup, r=compiler-errors
Some autodiff cleanups

cc ````@ZuseZ4````

just some things I noticed
2025-03-12 17:59:09 +01:00
Matthias Krüger
d93ef397ce
Rollup merge of #138331 - nnethercote:use-RUSTC_LINT_FLAGS-more, r=onur-ozkan,jieyouxu
Use `RUSTC_LINT_FLAGS` more

An alternative to the failed #138084.

Fixes #138106.

r? ````@jieyouxu````
2025-03-12 17:59:08 +01:00
Matthias Krüger
a21d41a22d
Rollup merge of #138269 - Ayush1325:uefi-fs-permission, r=joboet
uefi: fs: Implement FileType, FilePermissions and FileAttr

- In UEFI, both FileType and FilePermissions are represented by the attr bitfield.
- Using simple bools here since both are represented by a single bit.
- Add `FILE_PERMISSION` mask for constructing attribute while change permissions.

cc ````@nicholasbishop````
2025-03-12 17:59:07 +01:00
Matthias Krüger
4ffbc32f17
Rollup merge of #137701 - cuviper:sharded-hashtable, r=fmease
Convert `ShardedHashMap` to use `hashbrown::HashTable`

The `hash_raw_entry` feature (#56167) has finished fcp-close, so the compiler
should stop using it to allow its removal. Several `Sharded` maps were
using raw entries to avoid re-hashing between shard and map lookup, and
we can do that with `hashbrown::HashTable` instead.
2025-03-12 17:59:07 +01:00
Matthias Krüger
d55e2e4333
Rollup merge of #137314 - lcnr:cycles-with-unknown-kind, r=compiler-errors
change definitely unproductive cycles to error

builds on top of #136824 by adding a third variant to `PathKind` for paths which may change to be coinductive in the future but must not be so right now. Most notably, impl where-clauses of not yet coinductive traits.

With this, we can change cycles which are definitely unproductive to a proper error. This fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/114. This does not affect stable as we keep these cycles as ambiguous during coherence.

r? ````````@compiler-errors```````` ````````@nikomatsakis````````
2025-03-12 17:59:06 +01:00
Michael Goulet
42773bfcac Disentangle ForwardGenericParamBan and ConstParamTy ribs 2025-03-12 16:56:26 +00:00
Jakub Beránek
7d141dc12e Remove sccache-plus-cl MSVC hack 2025-03-12 16:13:13 +01:00
Jakub Beránek
36719a90f7 Update sccache to 0.10.0
This time, does it also for Windows and macOS.
2025-03-12 16:11:24 +01:00
bjorn3
1543256e6f Remove unused host_tlib_path field 2025-03-12 15:05:25 +00:00
bjorn3
f51d1d29f7 Rename user_provided_sysroot argument of fluent_bundle 2025-03-12 15:05:25 +00:00