Commit Graph

11642 Commits

Author SHA1 Message Date
Eric Huss
590b277d25 Add a test for new 2024 standard library behavior
When migrating the standard library to 2024, there will be some behavior
changes that users will be able to observe. This test should cover that
(I cannot think of any other observable differences).
2025-03-11 09:46:30 -07:00
Michael Goulet
c170d0f12f Elaborate param-env built for checking DispatchFromDyn for dyn compat 2025-03-11 16:32:56 +00:00
lcnr
a5eb387d61 merge TypeChecker and TypeVerifier 2025-03-11 16:34:15 +01:00
lcnr
2f6aca8206 change TypeChecker to a MIR visitor 2025-03-11 16:08:53 +01:00
Jakub Beránek
07f33e22bf Rollup merge of #138300 - RalfJung:unqualified-local-imports, r=jieyouxu
add tracking issue for unqualified_local_imports

Tracking issue: https://github.com/rust-lang/rust/issues/138299

r? ``````@jieyouxu``````
2025-03-11 13:30:53 +01:00
Jakub Beránek
79fa56a026 Rollup merge of #138288 - jyn514:crate-attr, r=Noratrieb
Document -Z crate-attr

and also add a bunch of tests
2025-03-11 13:30:53 +01:00
Jakub Beránek
c054bac89a Rollup merge of #138063 - compiler-errors:improve-attr-unpretty, r=jdonszelmann
Improve `-Zunpretty=hir` for parsed attrs

0. Rename `print_something` to `should_render` to make it distinct from `print_attribute` in that it doesn't print anything, it's just a way to probe if a type renders anything.
1. Fixes a few bugs in the `PrintAttribute` derive. Namely, the `__printed_anything` variable was entangled with the `should_render` call, leading us to always render field names but never render commas.
2. Remove the outermost `""` from the attr.
3. Debug print `Symbol`s. I know that this is redundant for some parsed attributes, but there's no good way to distinguish symbols that are ident-like and symbols which are cooked string literals. We could perhaps *conditionally* to fall back to a debug printing if the symbol doesn't match an ident? But seems like overkill.

Based on #138060, only review the commits not in that one.
2025-03-11 13:30:51 +01:00
Jakub Beránek
95d9ade39d Rollup merge of #137967 - mustartt:fix-aix-test-hangs, r=workingjubilee
[AIX] Fix hangs during testing

Fixes all current test hangs experienced during CI runs.
1. ipv6 link-local (the loopback device) gets assigned an automatic zone id of 1, causing the assert to fail and hang in `library/std/src/net/udp/tests.rs`
2. Const alloc does not fail gracefully
3. Debuginfo test has problem with gdb auto load safe path
2025-03-11 13:30:50 +01:00
Oli Scherer
69a1bb8bdb Error on define_opaques entries without any opaques actually referenced 2025-03-11 12:05:02 +00:00
Oli Scherer
43e39260f9 Keep items around even if builtin macros on them fail to parse 2025-03-11 12:05:02 +00:00
Oli Scherer
3e4e65ee8b Test invalid define_opaques attributes 2025-03-11 12:05:02 +00:00
Oli Scherer
cb4751d4b8 Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
Marcelo Domínguez
cf8e1f5e0f Fix ICE for invalid return activity and proper error handling 2025-03-11 09:36:57 +01:00
jyn
512ebed59a add more -Z crate-attr tests 2025-03-11 00:13:17 -04:00
bors
90384941aa Auto merge of #138302 - matthiaskrgr:rollup-an2up80, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #136395 (Update to rand 0.9.0)
 - #137279 (Make some invalid codegen attr errors structured/translatable)
 - #137585 (Update documentation to consistently use 'm' in atomic synchronization example)
 - #137926 (Add a test for `-znostart-stop-gc` usage with LLD)
 - #138074 (Support `File::seek` for Hermit)
 - #138238 (Fix dyn -> param suggestion in struct ICEs)
 - #138270 (chore: Fix some comments)
 - #138286 (triagebot.toml: Don't label `test/rustdoc-json` as A-rustdoc-search (…)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-03-11 00:55:25 +00:00
Matthias Krüger
0d6311931b Rollup merge of #138278 - Bryanskiy:delegation-ice-1, r=petrochenkov
Delegation: fix ICE with invalid `MethodCall` generation

`ExprKind::MethodCall` is now generated instead of `ExprKind::Call` if
- the resolved function has a `&self` argument
- the resolved function is an associated item <- was missed before

Fixes https://github.com/rust-lang/rust/issues/128190
Fixes https://github.com/rust-lang/rust/issues/128119
Fixes https://github.com/rust-lang/rust/issues/127916

r? `@petrochenkov`
2025-03-10 15:57:14 +01:00
Michael Goulet
bc4f0bb486 Pass InferCtxt to InlineAsmCtxt to properly taint on error
Split up some of the tests bc tainting causes some errors to become
suppressed
2025-03-10 14:28:09 +00:00
Bryanskiy
61122d1829 Delegation: fix ICE with invalid MethodCall generation 2025-03-10 17:08:29 +03:00
Oli Scherer
f87e58f194 Allow int literals for pattern types with int base types 2025-03-10 09:33:33 +00:00
Oli Scherer
9d87d4e4f5 Add tests for pattern type literals 2025-03-10 09:27:13 +00:00
Oli Scherer
916f9552e9 Reject wrapping ranges of pattern types 2025-03-10 09:27:13 +00:00
Oli Scherer
f38819ce17 Add some layout tests for pattern type edge cases 2025-03-10 09:27:13 +00:00
Thalia Archibald
523b9d9428 Implement default methods for io::Empty and io::Sink
Eliminate any redundant, unobservable logic from the their default
method implementations.

The observable changes are that `Write::write_fmt` for both types now
ignores the formatting arguments, so a user fmt impl which has side
effects is not invoked, and `Write::write_all_vectored` for both types
does not advance the borrowed buffers. Neither behavior is guaranteed by
the docs and the latter is documented as unspecified.

`Empty` is not marked as vectored, so that `Chain<Empty, _>` and
`Chain<_, Empty>` are not forced to be vectored.
2025-03-10 01:38:20 -07:00
Matthias Krüger
86065acbc3 Rollup merge of #138270 - StevenMia:master, r=compiler-errors
chore: Fix some comments

 Fix some comments
2025-03-10 09:32:15 +01:00
Matthias Krüger
1ae083ddd5 Rollup merge of #138238 - compiler-errors:dyn-suggestion-in-struct, r=nnethercote
Fix dyn -> param suggestion in struct ICEs

Makes the logic from #138042 a bit less ICEy and more clean. Also fixes an incorrect suggestion when the struct already has generics. I'll point out the major changes and observations in the code.

Fixes #138229
Fixes #138211

r? nnethercote since you reviewed the original pr, or re-roll if you don't want to review this
2025-03-10 09:32:14 +01:00
Matthias Krüger
cbde8b9dcf Rollup merge of #137926 - Kobzol:lld-no-start-stop-test, r=lqd
Add a test for `-znostart-stop-gc` usage with LLD

This test replicates the behavior of https://github.com/dtolnay/linkme, to test that it still works even with LLD. Without `-znostart-stop-gc` the test fails.

r? ``@lqd``

try-job: x86_64-gnu
try-job: x86_64-msvc-1
2025-03-10 09:32:12 +01:00
Matthias Krüger
c8194f1da3 Rollup merge of #137279 - estebank:codegen-structured-errors, r=nnethercote
Make some invalid codegen attr errors structured/translatable
2025-03-10 09:32:11 +01:00
Ralf Jung
b827087a41 add tracking issue for unqualified_local_imports 2025-03-10 08:51:19 +01:00
Michael Goulet
279377f87a Fix pretty printing of parsed attrs in hir_pretty 2025-03-10 02:04:26 +00:00
Michael Goulet
ed6dfddfeb Do not feed anon const a type that references generics that it does not have 2025-03-09 20:03:13 +00:00
Michael Goulet
8ab05adc37 Do not write user type annotation for const param value path 2025-03-09 19:50:50 +00:00
Matthias Krüger
469f48db7f Rollup merge of #138253 - mu001999-contrib:fix-138241, r=jdonszelmann
Continue to check attr if meet empty repr for adt

Fixes #138241

Returning while checking ReprEmpty results in missing the check for the next repr
2025-03-09 16:41:53 +01:00
StevenMia
3583554405 chore: Fix some comments
Signed-off-by: StevenMia <flite@foxmail.com>
2025-03-09 18:31:14 +08:00
Matthias Krüger
bfa1a62fd4 Rollup merge of #138158 - moulins:move-layout-to-rustc_abi, r=workingjubilee
Move more layouting logic to `rustc_abi`

Move all `LayoutData`-constructing code to `rustc_abi`:
- Infaillible operations get a new `LayoutData` constructor method;
- Faillible ones get a new method on `LayoutCalculator`.
2025-03-09 10:34:51 +01:00
Matthias Krüger
eade7e9947 Rollup merge of #137319 - Kixunil:stabilize-const-vec-string-slice, r=dtolnay
Stabilize `const_vec_string_slice`

This feature was approved for stabilization in
https://github.com/rust-lang/rust/issues/129041#issuecomment-2508940661 so this change stabilizes it.
2025-03-09 10:34:47 +01:00
Matthias Krüger
5a46f82d7e Rollup merge of #136968 - oli-obk:bye-bye, r=compiler-errors
Turn order dependent trait objects future incompat warning into a hard error

fixes #56484

r? ``@ghost``

will FCP when we have a crater result
2025-03-09 10:34:47 +01:00
Matthias Krüger
84c2050bf6 Rollup merge of #136127 - WaffleLapkin:dyn_ptr_unwrap_cast, r=compiler-errors
Allow `*const W<dyn A> -> *const dyn A` ptr cast

Followup of https://github.com/rust-lang/rust/pull/120248#discussion_r1487936000.

This PR allows casting pointers from something wrapping a trait object, to the trait object, i.e. `*const W<dyn A> -> *const dyn A` where `W` is `struct W<T: ?Sized>(T);`.

r? compiler-errors

Fixes https://github.com/rust-lang/rust/issues/128625
2025-03-09 10:34:46 +01:00
Mu001999
86013e629b continue to check attr if meet empty repr for adt 2025-03-09 10:51:50 +08:00
Michael Goulet
3129802f90 Do not register Self: AutoTrait when confirming auto trait 2025-03-09 02:00:01 +00:00
bors
dea1661cdb Auto merge of #137502 - compiler-errors:global-asm-aint-mir-body, r=oli-obk
Don't include global asm in `mir_keys`, fix error body synthesis

r? oli-obk

Fixes #137470
Fixes #137471
Fixes #137472
Fixes #137473

try-job: test-various
try-job: x86_64-apple-2
2025-03-08 22:23:45 +00:00
Michael Goulet
ceb040135d Fix suggestion when there are generics, inline some things 2025-03-08 20:44:57 +00:00
Michael Goulet
bca0ab8d7a Rework maybe_suggest_add_generic_impl_trait 2025-03-08 20:40:59 +00:00
Jakub Beránek
7bf4e9977e Add test for garbage collection of encapsulation symbols 2025-03-08 19:03:49 +01:00
Martin Habovstiak
50ea503d9d Stabilize const_vec_string_slice
This feature was approved for stabilization in
https://github.com/rust-lang/rust/issues/129041#issuecomment-2508940661
so this change stabilizes it.
2025-03-08 17:03:52 +01:00
Waffle Lapkin
80157a560f bless tests
yay, I fixed the bug/missing feature :')
2025-03-08 14:53:56 +01:00
Waffle Lapkin
5712d2e956 add a test for pointer casts involving un/re/wrapping trait objects
the errors should not be there, this is a bug/missing feature.
2025-03-08 14:49:47 +01:00
Moulins
b8a217081d Refactor coroutine layout logic to precompute all sublayouts
Also properly attaches spans on layouts of non-promoted coroutine
locals, which slightly improves the error messages for some coroutine tests.
2025-03-08 12:36:45 +01:00
Jacob Pratt
2c374e3e21 Rollup merge of #137757 - estebank:trim-spans, r=davidtwco
On long spans, trim the middle of them to make them fit in the terminal width

When encountering a single line span that is wider than the terminal, we keep context at the start and end of the span but otherwise remove the code from the middle. This is somewhat independent from whether the left and right margins of the output have been trimmed as well.

```
error[E0308]: mismatched types
  --> $DIR/long-span.rs:6:15
   |
LL | ... = [0, 0, 0, 0, ..., 0, 0];
   |       ^^^^^^^^^^^^^...^^^^^^^ expected `u8`, found `[{integer}; 1681]`
```

Address part of https://github.com/rust-lang/rust/issues/137680 (missing handling of the long suggestion). Fix https://github.com/rust-lang/rust/issues/125581.

---

Change the way that underline positions are calculated by delaying using the "visual" column position until the last possible moment, instead using the "file"/byte position in the file, and then calculating visual positioning as late as possible. This should make the underlines more resilient to non-1-width unicode chars.

Unfortunately, as part of this change (which fixes some visual bugs) comes with the loss of some eager tab codepoint handling, but the output remains legible despite some minor regression on the "margin trimming" logic.

---

`-Zteach` is perma-unstable, barely used, the highlighting logic buggy and the flag being passed around is tech-debt. We should likely remove `-Zteach` in its entirely.
2025-03-08 01:27:22 -05:00
Amy Kwan
f86a71dfbf [AIX] Ignore linting on repr(C) structs with repr(packed) or repr(align(n))
This PR updates the lint added in 9b40bd7 to ignore repr(C) structs that also
have repr(packed) or repr(align(n)).

As these representations can be modifiers on repr(C), it is assumed that users
that add these should know what they are doing, and thus the the lint should not
warn on the respective structs. For example, for the time being, using
repr(packed) and manually padding a repr(C) struct can be done to correctly
align struct members on AIX.
2025-03-08 00:23:46 -05:00
Jacob Pratt
9aac24d68a Rollup merge of #138173 - compiler-errors:incoherent-negative-impl, r=oli-obk
Delay bug for negative auto trait rather than ICEing

Fixes #138149

r? oli-obk
2025-03-07 21:57:53 -05:00