Commit graph

298901 commits

Author SHA1 Message Date
dianne
4c7e866fc8 update unstable book to mention string/bytestring typing 2025-04-22 13:19:20 -07:00
dianne
32503440cd make [u8] and [u8;N] literal patterns usable in deref patterns
Specifically, this allows byte string literal patterns to be used where
a `[u8]` or `[u8;N]` is expected when `deref_patterns` is enabled.
2025-04-22 13:19:20 -07:00
dianne
61840254c5 make str literal patterns usable in deref patterns
Specifically, this allows string literal patterns to be used where a
`str` is expected when `deref_patterns` is enabled.
2025-04-22 13:19:17 -07:00
dianne
08baec4ebf add a test for byte string literal pattern mutability mismatches 2025-04-22 13:07:29 -07:00
Michael Goulet
7c1661f945 Consider Copy/Clone too 2025-04-22 17:05:15 +00:00
Michael Goulet
1727badf77 Don't compute query unless in new solver 2025-04-22 17:04:59 +00:00
Michael Goulet
a922983393 Eagerly instantiate coroutine witness in new solver 2025-04-22 16:50:38 +00:00
Michael Goulet
169955f3be Properly drain pending obligations for coroutines 2025-04-22 16:50:38 +00:00
Michael Goulet
67df5b9cfa Collect and resolve ambiguous obligations from normalizing in writeback 2025-04-22 16:50:38 +00:00
Lukas Wirth
521b8308c9
Merge pull request #19647 from roife/fix-issue-19646
fix: panics in inlay hints that produce empty text edits for closure return types
2025-04-22 16:27:28 +00:00
Philipp Krones
50a5793766
tidy: Remove rinja deps from proc_macro_deps 2025-04-22 18:24:44 +02:00
Philipp Krones
ff428d91c2 Merge commit '0621446356' into clippy-subtree-update 2025-04-22 18:24:43 +02:00
Philipp Krones
d98cbeadb4
Update Cargo.lock 2025-04-22 18:24:43 +02:00
Philipp Krones
52bb2bb461
Merge commit '0621446356' into clippy-subtree-update 2025-04-22 18:24:43 +02:00
Alex Macleod
2422f0b9ac
Restrict the cases where ptr_eq triggers (#14526)
`ptr_eq` was recently enhanced to lint on more cases of raw pointers
comparison:

- lint on all raw pointer comparison, by proposing to use
`[core|std]::ptr::eq(lhs, rhs)` instead of `lhs == rhs`;
- removing one symetric `as usize` on each size if needed
- peeling any level of `as *[const|mut] _` if the remaining expression
can still be coerced into the original one (i.e., is a ref or raw
pointer to the same type as before)

The current change restricts the lint to the cases where at least one
level of symetric `as usize`, or any conversion to a raw pointer, could
be removed. For example, a direct comparaison of two raw pointers will
not trigger the lint anymore.

changelog: [`ptr_eq`]: do not lint when comparing two raw pointers
directly with no casts involved

Fixes rust-lang/rust-clippy#14525
2025-04-22 16:05:34 +00:00
roifewu
68c03725c9 fix: panics in inlay hints that produce empty text edits for closure return types 2025-04-23 00:01:35 +08:00
Chris Denton
2d8264fb08
Rollup merge of #140149 - RalfJung:test_nan, r=tgross35
test_nan: ensure the NAN contant is quiet

Follow-up to https://github.com/rust-lang/rust/pull/139483

r? ``@tgross35``
2025-04-22 15:24:09 +00:00
Chris Denton
15f8847a25
Rollup merge of #140144 - nnethercote:fix-140098, r=petrochenkov
Handle another negated literal in `eat_token_lit`.

Extends the change from #139653, which was on expressions, to literals.

Fixes #140098.

r? ``@petrochenkov``
2025-04-22 15:24:08 +00:00
Chris Denton
9471811e20
Rollup merge of #140124 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/nomicon

1 commits in 0c10c30cc54736c5c194ce98c50e2de84eeb6e79..c76a20f0d987145dcedf05c5c073ce8d91f2e82a
2025-04-15 20:54:57 UTC to 2025-04-15 20:54:57 UTC

- Say that dereferencing a pointer to a ZST is no longer undefined (rust-lang/nomicon#467)

## rust-lang/reference

7 commits in 3340922df189bddcbaad17dc3927d51a76bcd5ed..3bf3402aea982b876eb56c87da17b0685c6461d5
2025-04-18 13:44:45 UTC to 2025-04-17 17:27:01 UTC

- Use `cfg(false)` instead of `cfg(FALSE)` (rust-lang/reference#1763)
-     Add `cfg(true)` and `cfg(false)` to conditional compilation (RFC 3695) (rust-lang/reference#1762)
- Refactor rendering with `RenderCtx` (rust-lang/reference#1796)
- attributes/codegen: update aarch64 features (rust-lang/reference#1791)
- Simplify GenericParams grammar (rust-lang/reference#1795)
- Add rule identifiers for the ABI chapter (rust-lang/reference#1793)
- Remove broken footnote links from grammar summary (rust-lang/reference#1794)
2025-04-22 15:24:08 +00:00
Chris Denton
264249fbe1
Rollup merge of #140104 - Shourya742:2025-04-21-auto-diff-fails-on-impl-block, r=ZuseZ4
Fix auto diff failing on inherent impl blocks

closes: #139557

r? ``@ZuseZ4``
2025-04-22 15:24:07 +00:00
Chris Denton
107f04daa8
Rollup merge of #140072 - folkertdev:miri-fn-align, r=RalfJung
handle function alignment in miri

tracking issue: https://github.com/rust-lang/rust/issues/82232
Fixes https://github.com/rust-lang/miri/issues/4282

The `#[repr(align(N))]` attribute on functions was ignored when using miri. For such a function, its address should be a multiple of `N`.

There is some further discussion in the thread [#t-compiler/const-eval > function address alignment](https://rust-lang.zulipchat.com/#narrow/channel/146212-t-compiler.2Fconst-eval/topic/function.20address.20alignment) on how `dyn Fn` should be handled. The behavior there appears to be consistent between miri and nightly, though both may be incorrect. In any case, that can be resolved separately.
2025-04-22 15:24:06 +00:00
Chris Denton
c046a430d4
Rollup merge of #140031 - Zalathar:deadline, r=jieyouxu
compiletest: Fix deadline bugs in new executor

The experimental new executor for compiletest (#139660) was found to have two major bugs in deadline handling for detecting slow tests:

- The comparison between `now` and test deadlines was reversed, causing no timeouts to ever be recognised.
- After fixing that bug, it was found that the existing code would issue timeouts for any test that had started more than 60 seconds ago, even if the test had finished long before its deadline was reached.

This PR fixes those bugs.

(The new executor is not yet enabled by default, so this PR has no immediate effect on contributors.)

---

I noted in https://github.com/rust-lang/rust/pull/139998#issuecomment-2815127046 that I hoped to have some unit tests to accompany these fixes. Unfortunately that turned out to be infeasible, because `DeadlineQueue` is tightly coupled to concrete `mpsc::Receiver` APIs (in addition to `Instant::now`), and trying to mock all of those would make the code much more complicated.

I did, however, add a few assertions that would have caught the failure to remove tests from the queue after their deadline.

r? jieyouxu
2025-04-22 15:24:06 +00:00
Chris Denton
8089e317b5
Rollup merge of #139921 - Kivooeo:master, r=WaffleLapkin
improve diagnostic for raw pointer field access with ->

This PR enhances the error messages emitted by the Rust compiler when users attempt to use the `->` operator for field access on raw pointers or when dereferencing is needed. The changes aim to provide clearer guidance, by suggesting the correct use of the `.` operator and explicit dereferencing.

**Before:**
```
help: `xs` is a raw pointer; try dereferencing it
   |
LL |         (*xs)->count += 1;
   |         ++  +
```

**Now:**
```
help: use `.` on a dereferenced raw pointer instead
   |
LL -         xs->count += 1;
LL +         (*xs).count += 1;
   |
```

I added extra clarification in the message. Since this error occurs in the parser, we can't be certain that the type is a raw pointer. That's why the message includes only a small note in brackets. (In contrast, the message above is emitted in HIR, where we *can* check whether it's a raw pointer.)

**Before:**
```
  --> main.rs:11:11
   |
11 |         xs->count += 1;
   |           ^^
   |
   = help: the . operator will dereference the value if needed
```
**After:**
```
--> main.rs:11:11
   |
11 |         xs->count += 1;
   |           ^^
   |
   = help: the `.` operator will automatically dereference the value, except if the value is a raw pointer
```
2025-04-22 15:24:05 +00:00
Chris Denton
1586660fb2
Rollup merge of #139617 - Berrysoft:cygwin-posix-spawn, r=joboet
Use posix_spawn on cygwin

r? ``@joboet``

Depends on:
- [x] https://github.com/rust-lang/libc/pull/4387
- [x] https://github.com/rust-lang/rust/pull/140081
2025-04-22 15:24:05 +00:00
John Kåre Alsaker
9a6e8b3807 Make sure there's no duplicate indices in the dep graph 2025-04-22 16:57:28 +02:00
John Kåre Alsaker
36fa327623 Tweak edges 2025-04-22 16:57:28 +02:00
John Kåre Alsaker
4ec74df81f Use IndexVec::from_elem_n 2025-04-22 16:57:28 +02:00
John Kåre Alsaker
c6735f92c1 Add index to the dep graph format and encode via MemEncoder 2025-04-22 16:57:28 +02:00
Philipp Krones
0621446356
Rustup (#14667)
Out of cycle sync, as the sync to Rust failed again and resolving
conflicts there is awkward.

r? @ghost

changelog: none
2025-04-22 14:01:53 +00:00
Philipp Krones
bdc432759d
Bump nightly version -> 2025-04-22 2025-04-22 15:56:20 +02:00
Philipp Krones
ac477dbde5
Merge remote-tracking branch 'upstream/master' into rustup 2025-04-22 15:55:19 +02:00
Lukas Wirth
b56765c735
Merge pull request #19657 from ChayimFriedman2/better-offset-of
feat: Better support `offset_of!()`
2025-04-22 13:28:34 +00:00
Jason Newcomb
c3fb102a41
Consider side effects when rewriting iterator behaviors (#14490)
Closes #9191
Closes #14444
Closes #8055

Adds a new helper to partly check for side effects by recursively
checking if the iterator type contains closures with mutable captures.

changelog: [`double_ended_iterator_last`] fix FP when iter has side
effects
changelog: [`needless_collect`] fix lint not consider side effects
2025-04-22 13:21:54 +00:00
yanglsh
a50e043d32 Expand mutable capture check for is_iter_with_side_effects() 2025-04-22 20:55:07 +08:00
Thalia Archibald
006b7e3a2b Validate extension in PathBuf::add_extension
The extension is validated in `PathBuf::set_extension`, but not
`add_extension`. Fix that. Check for both / and \ path separators on
Windows, even when the path is verbatim, since this is logically like
`PathBuf::push` which normalizes separators (i.e., keeping the current
behavior).
2025-04-22 05:34:25 -07:00
Lukas Wirth
7b249d24e7
Merge pull request #19661 from ChayimFriedman2/salsa-v20
internal: Upgrade to the next Salsa
2025-04-22 12:31:09 +00:00
Chayim Refael Friedman
a27da3141c Account for IngredientCache::get_or_create() taking &Zalsa and not &dyn Database 2025-04-22 15:20:07 +03:00
Chayim Refael Friedman
676f2121e6 Fix variance
This one does need fixpoint.
2025-04-22 15:20:07 +03:00
Chayim Refael Friedman
e2d14a2882 Adapt for new cycle handling changing in Salsa 2025-04-22 15:20:05 +03:00
Chayim Refael Friedman
f97d90f89e Adjust for salsa::Id::from_u32() being unsafe
This impacts our manual `salsa::Id` wrappers. I refactored them a bit to improve safety.
2025-04-22 15:19:35 +03:00
Chayim Refael Friedman
f0fa096213 Adjust for new Salsa not implementing Debug by default 2025-04-22 15:19:35 +03:00
Chayim Refael Friedman
6f01c7f3d0 Depend on Salsa v0.20.0 2025-04-22 15:19:35 +03:00
Lukas Wirth
c4e8514de1
Merge pull request #19479 from ChayimFriedman2/generic-mismatch
feat: Add two new diagnostics: one for mismatch in generic arguments count, and another for mismatch in their kind
2025-04-22 12:06:28 +00:00
Ralf Jung
e7efab9ec9 remove intrinsics::drop_in_place 2025-04-22 14:06:09 +02:00
Zalathar
f7b1e035a8 compiletest: Fix deadline bugs in new executor 2025-04-22 22:03:00 +10:00
Chayim Refael Friedman
f16cefb606 The new diagnostic has found a bug lurking in minicore
It's cute, isn't it?
2025-04-22 14:55:43 +03:00
Chayim Refael Friedman
5e49ce92fe Add two new diagnostics: one for mismatch in generic arguments count, and another for mismatch in their kind
Also known as E0747 and E0107.

And by the way, rewrite how we lower generic arguments and deduplicate it between paths and method calls. The new version is taken almost straight from rustc.

This commit also changes the binders of `generic_defaults()`, to only include the binders of the arguments up to (and not including) the current argument. This make it easier to handle it in the rewritten lowering of generic args. It's also how rustc does it.
2025-04-22 14:55:43 +03:00
Lukas Wirth
5db7548ad6
Merge pull request #19622 from A4-Tacks/raw-string-suffix
Fix ide-assists raw_string suffix fail
2025-04-22 11:43:17 +00:00
Lukas Wirth
e51e384fb0
Merge pull request #19662 from Veykril/push-lqqvmnonlwrx
minor: Fix outdated comment in hir-ty/generics.rs
2025-04-22 11:26:56 +00:00
Lukas Wirth
c1cad77ac6 minor: Fix outdated comment in hir-ty/generics.rs 2025-04-22 13:15:56 +02:00