about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2025-07-01Auto merge of #143036 - compiler-errors:no-dyn-star, r=oli-obkbors-128/+0
Remove support for `dyn*` from the compiler This PR removes support for `dyn*` (https://github.com/rust-lang/rust/issues/102425), which are a currently un-RFC'd experiment that was opened a few years ago to explore a component that we thought was necessary for AFIDT (async fn in dyn trait). It doesn't seem like we are going to need `dyn*` types -- even in an not-exposed-to-the-user way[^1] -- for us to implement AFIDT. Given that AFIDT was the original motivating purpose of `dyn*` types, I don't really see a compelling reason to have to maintain their implementation in the compiler. [^1]: Compared to, e.g., generators whih are an unstable building block we use to implement stable syntax like `async {}`. We've learned quite a lot from `dyn*`, but I think at this point its current behavior leads to more questions than answers. For example, `dyn*` support today remains somewhat fragile; it ICEs in many cases where the current "normal" `dyn Trait` types rely on their unsizedness for their vtable-based implementation to be sound I wouldn't be surprised if it's unsound in other ways, though I didn't play around with it too much. See the examples below. ```rust #![feature(dyn_star)] trait Foo { fn hello(self); } impl Foo for usize { fn hello(self) { println!("hello, world"); } } fn main() { let x: dyn* Foo = 1usize; x.hello(); } ``` And: ```rust #![feature(dyn_star)] trait Trait { type Out where Self: Sized; } fn main() { let x: <dyn* Trait as Trait>::Out; } ``` ...and probably many more problems having to do with the intersection of dyn-compatibility and `Self: Sized` bounds that I was too lazy to look into like: * GATs * Methods with invalid signatures * Associated consts Generally, `dyn*` types also end up getting in the way of working with [normal `dyn` types](https://github.com/rust-lang/rust/issues/102425#issuecomment-1712604409) to an extent that IMO outweighs the benefit of experimentation. I recognize that there are probably other, more creative usages of `dyn*` that are orthogonal to AFIDT. However, I think any work along those lines should first have to think through some of the more fundamental interactions between `dyn*` and dyn-compatibility before we think about reimplementing them in the type system. --- I'm planning on removing the `DynKind` enum and the `PointerLike` built-in trait from the compiler after this PR lands. Closes rust-lang/rust#102425. cc `@eholk` `@rust-lang/lang` `@rust-lang/types` Closes rust-lang/rust#116979. Closes rust-lang/rust#119694. Closes rust-lang/rust#134591. Closes rust-lang/rust#104800.
2025-07-01Rename mingw-* CI jobs to pr-*Chris Denton-79/+78
2025-07-01Remove support for dyn*Michael Goulet-128/+0
2025-07-01Update `cfg(bootstrap)`Josh Stone-24/+2
2025-07-01Update `STAGE0_MISSING_TARGETS`Josh Stone-2/+0
2025-07-01Update stage0 to 1.89.0-beta.1Josh Stone-460/+480
2025-07-02Migrate `wrap_unwrap_cfg_attr` assist to use `SyntaxEditor`Hayashi Mikihiro-42/+85
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01Fix `x clean` with a fifoEric Huss-1/+1
`x clean` was failing when it encountered a special file like a fifo because it thought it was a directory.
2025-07-01Rollup merge of #143279 - GuillaumeGomez:rm-itemkind-descr, r=oli-obkGuillaume Gomez-6/+12
Remove `ItemKind::descr` method Follow-up of rust-lang/rust#143234. After this PR is merged, it will remain two `descr` methods: * `hir::GenericArg::descr` * `hir::AssocItemConstraintKind::descr` For both these enums, I don't think there is the right equivalent in `hir::DefKind` so unless I missed something, we can't remove these two methods because we can't convert these enums into `hir::DefKind`. r? `@oli-obk`
2025-07-01Rollup merge of #143269 - tshepang:patch-1, r=KobzolGuillaume Gomez-2/+2
bootstrap: make comment more clear Reading that at first made me think the code block ensures that the said artefacts are created
2025-07-01Rollup merge of #143255 - Kobzol:disable-lld-by-default, r=jieyouxuGuillaume Gomez-5/+8
Do not enable LLD by default in the dist profile History of us building & shipping LLD for `dist` builds: 1) We used to unconditionally build & ship LLD in bootstrap 2) This was causing problems for people doing custom `dist` builds (https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/MSVC.20Runtime.20mismatch.20when.20building.20LLD) 3) https://github.com/rust-lang/rust/pull/126701 made shipping of LLD optional, but to preserve previous behavior, it forcefully enabled `rust.lld = true` in the `dist` profile by default, and overwrote the default to `false` on our CI for external LLVM builds. - This also didn't match the documentation of `rust.lld` in `bootstrap.example.toml`, which I previously missed. 4) However, since the external LLVM opt-out was only implemented for our CI, and not for all `dist` users, this started causing issues for people `dist`ing with external LLVM (https://github.com/rust-lang/rust/issues/143076). The problem is that the default shouldn't be "true", but "LLD is enabled when LLVM isn't external", but this is not possible to do only in TOML. So this PR reverses the behavior. LLD is not enabled by default in `dist` anymore. We switch our CI to *opt into* disting LLD, unless an external LLVM is used. External `dist` users can still opt into enabling LLD, but if they do so while also using external LLVM, they will now get a [hard error](https://github.com/rust-lang/rust/pull/143175). r? `@jieyouxu` try-job: `x86_64-mingw*` try-job: dist-x86_64-linux
2025-07-01Rollup merge of #143230 - jieyouxu:compiletest-maintenance-2, r=KobzolGuillaume Gomez-38/+84
[COMPILETEST-UNTANGLE 2/N] Make some compiletest errors/warnings/help more visually obvious This PR makes some compiletest errors/warnings/help more visually obvious. Note that this is only intended to help visually -- the error handling in compiletest is still a mess. ![Screenshot 2025-06-30 170010](https://github.com/user-attachments/assets/a56b7857-1926-48f8-a309-9e7fcf84df7f) r? ghost
2025-07-01Update clippy source code to make use of `TyCtxt::def_descr` instead of ↵Guillaume Gomez-6/+12
`ItemKind::descr`
2025-07-01Improve CSS for source code block line numbersGuillaume Gomez-68/+30
2025-07-01Migrate `toggle_macro_delimiter` assist to `SyntaxEditor`Hayashi Mikihiro-12/+14
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01document optional jobsMarcoIeni-0/+7
2025-07-01Merge pull request #4411 from LorrensP-2158466/remove-leaky-syncobjRalf Jung-184/+148
Remove leaky synchronisation objects.
2025-07-01Remove leaky synchronisation objects.LorrensP-2158466-184/+148
2025-07-01Auto merge of #143013 - bjorn3:split_exported_symbols, r=oli-obkbors-4/+4
Split exported_symbols for generic and non-generic symbols This reduces metadata decoder overhead during the monomorphization collector.
2025-07-01Give some UI tests more apropriate namesTrevor Gross-4/+0
Prepare for rework done by the rest of RUST-142440. Co-authored-by: Kivooeo <Kivooeo123@gmail.com>
2025-07-01Migrate `promote_local_to_const` Assist to `SyntaxEditor`Hayashi Mikihiro-9/+13
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01Merge pull request #2483 from rust-lang/tshepang-patch-1许杰友 Jieyou Xu (Joe)-3/+3
2025-07-01remove `if-let` chainsHayashi Mikihiro-6/+7
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01ci: support optional jobsMarcoIeni-6/+43
2025-07-01Migrate `replace_is_method_with_if_let_method` Assist to use `SyntaxFactory`Hayashi Mikihiro-17/+17
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01Add AsMut Borrow BorrowMut to minicore and famous_defsA4-Tacks-0/+34
2025-07-01bootstrap: make comment more clearTshepang Mbambo-2/+2
Reading that at first made me think the code block ensures that the said artefacts are created
2025-07-01Do not enable LLD by default in the dist profileJakub Beránek-5/+8
2025-07-01Merge pull request #4433 from RalfJung/ci-balanceRalf Jung-4/+4
re-balance CI jobs
2025-07-01Merge pull request #4432 from RalfJung/no-metadataRalf Jung-5/+0
./miri toolchain: no need to run 'cargo metadata'
2025-07-01re-balance CI jobsRalf Jung-4/+4
2025-07-01Auto merge of #143267 - matthiaskrgr:rollup-suvzar6, r=matthiaskrgrbors-7/+6
Rollup of 8 pull requests Successful merges: - rust-lang/rust#143125 (Disable f16 on Aarch64 without neon for llvm < 20.1.1) - rust-lang/rust#143156 (inherit `#[align]` from trait method prototypes) - rust-lang/rust#143178 (rustdoc default faviocon) - rust-lang/rust#143234 (Replace `ItemCtxt::report_placeholder_type_error` match with a call to `TyCtxt::def_descr`) - rust-lang/rust#143245 (mbe: Add tests and restructure metavariable expressions) - rust-lang/rust#143257 (Upgrade dependencies in run-make-support) - rust-lang/rust#143263 (linkify CodeSuggestion in doc comments) - rust-lang/rust#143264 (fix: Emit suggestion filename if primary diagnostic span is dummy) Failed merges: - rust-lang/rust#143251 (bootstrap: add build.tidy-extra-checks option) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-01./miri toolchain: no need to run 'cargo metadata'Ralf Jung-5/+0
2025-07-01fmtThe Miri Cronjob Bot-2/+0
2025-07-01Make some compiletest errors/warnings/help more visually obviousJieyou Xu-38/+84
2025-07-01Merge from rustcThe Miri Cronjob Bot-1010/+2559
2025-07-01Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2025-07-01Rollup merge of #143257 - tgross35:run-make-deps, r=jieyouxuMatthias Krüger-5/+5
Upgrade dependencies in run-make-support The main purpose of this is to upgrade `object` and `gimli`, which will allow us to drop outdated versions once backtrace also updates. The only semver breakage in `object`'s is in `elf::R_RISCV_GNU_*` and `pe::IMAGE_WEAK_EXTERN_*` constants, as well as Mach-O dyld, which don't appear to be used here. `gimli` is similar, there is only minor breakage related to dyld. These version upgrades were also done in the library. `bstr`, `similar`, and `regex` are also upgraded to the latest minor version here to match what the lockfile already uses. The `regex` comment about `memchr` version hasn't been relevant to this lockfile since e95d15a11519 ("Pin memchr to 2.5.0 in the library rather than rustc_ast") and is no longer relevant in the library lockfile either. Object Changelog: https://github.com/gimli-rs/object/blob/master/CHANGELOG.md#0370 Gimli changelog: https://github.com/gimli-rs/gimli/blob/master/CHANGELOG.md#0320
2025-07-01Rollup merge of #143245 - tgross35:metavariable-expr-organization, ↵Matthias Krüger-1/+0
r=petrochenkov mbe: Add tests and restructure metavariable expressions Add tests that show better diagnostics, and factor `concat` handling to a separate function. Each commit message has further details. This performs the nonfunctional perparation for further changes such as https://github.com/rust-lang/rust/pull/142950 and https://github.com/rust-lang/rust/pull/142975 .
2025-07-01Rollup merge of #143178 - eeshvardasikcm:master, r=notriddleMatthias Krüger-1/+1
rustdoc default faviocon rust-lang/rust#143154 default favicon now appears to be the new behavior, instead of no favicon.
2025-07-01Auto merge of #141875 - nnethercote:ByteSymbol, r=petrochenkovbors-24/+28
Introduce `ByteSymbol` It's like `Symbol` but for byte strings. The interner is now used for both `Symbol` and `ByteSymbol`. E.g. if you intern `"dog"` and `b"dog"` you'll get a `Symbol` and a `ByteSymbol` with the same index and the characters will only be stored once. The motivation for this is to eliminate the `Arc`s in `ast::LitKind`, to make `ast::LitKind` impl `Copy`, and to avoid the need to arena-allocate `ast::LitKind` in HIR. The latter change reduces peak memory by a non-trivial amount on literal-heavy benchmarks such as `deep-vector` and `tuple-stress`. `Encoder`, `Decoder`, `SpanEncoder`, and `SpanDecoder` all get some changes so that they can handle normal strings and byte strings.
2025-06-30Upgrade dependencies in run-make-supportTrevor Gross-5/+5
The main purpose of this is to upgrade `object` and `gimli`, which will allow us to drop outdated versions once backtrace also updates. The only semver breakage in `object`'s is in `elf::R_RISCV_GNU_*` and `pe::IMAGE_WEAK_EXTERN_*` constants, as well as Mach-O dyld, which don't appear to be used here. `gimli` is similar, there is only minor breakage related to dyld. These version upgrades were also done in the library. `bstr`, `similar`, and `regex` are also upgraded to the latest minor version here to match what the lockfile already uses. The `regex` comment about `memchr` version hasn't been relevant to this lockfile since e95d15a11519 ("Pin memchr to 2.5.0 in the library rather than rustc_ast") and is no longer relevant in the library lockfile either. Object Changelog: https://github.com/gimli-rs/object/blob/master/CHANGELOG.md#0370 Gimli changelog: https://github.com/gimli-rs/gimli/blob/master/CHANGELOG.md#0320
2025-06-30Rollup merge of #143248 - rustbot:docs-update, r=ehussMatthias Krüger-0/+0
Update books ## rust-lang/book 2 commits in 8a6d44e45b7b564eeb6bae30507e1fbac439d72d..ef1ce8f87a8b18feb1b6a9cf9a4939a79bde6795 2025-06-28 18:06:08 UTC to 2025-06-26 23:08:19 UTC - Chapter 14 from tech review (rust-lang/book#4423) - Chapter 13 from tech review (rust-lang/book#4421) ## rust-embedded/book 1 commits in 10fa1e084365f23f24ad0000df541923385b73b6..41f688a598a5022b749e23d37f3c524f6a0b28e1 2025-06-27 07:21:31 UTC to 2025-06-27 07:21:31 UTC - Fix incorrect type for semihosted stdout stream rust-lang/rust#394 (rust-embedded/book#395) ## rust-lang/reference 4 commits in 50fc1628f36563958399123829c73755fa7a8421..e9fc99f107840813916f62e16b3f6d9556e1f2d8 2025-06-28 20:00:14 UTC to 2025-06-24 19:02:48 UTC - fix: swap places for 2 words in associated-items.md sentence. (rust-lang/reference#1871) - Add new temporary lifetime extension rule (rust-lang/reference#1813) - Fix smart punctuation inside grammar terminals (rust-lang/reference#1869) - Fix placement of codegen link definitions (rust-lang/reference#1868) ## rust-lang/rust-by-example 1 commits in 05c7d8bae65f23a1837430c5a19be129d414f5ec..288b4e4948add43f387cad35adc7b1c54ca6fe12 2025-06-25 12:35:59 UTC to 2025-06-25 12:35:59 UTC - allow easy fixes (rust-lang/rust-by-example#1941)
2025-06-30Rollup merge of #143246 - lnicola:sync-from-ra, r=lnicolaMatthias Krüger-848/+2252
Subtree update of `rust-analyzer` r? ``@ghost``
2025-06-30Rollup merge of #143229 - jieyouxu:compiletest-maintenance-1, r=KobzolMatthias Krüger-42/+50
[COMPILETEST-UNTANGLE 1/N] Move some some early config checks to the lib and move the compiletest binary This is part of a patch series to untangle `compiletest` to hopefully nudge it towards being more maintainable. This PR: - Moves some early config checks (some warnings) to the compiletest library. - Moves `src/main.rs` to `src/bin/main.rs` to make the separation (as in, compiletest's library component vs the tool binary component) more obvious. r? ``@Kobzol`` (or reroll)
2025-06-30Rollup merge of #143180 - jieyouxu:forest, r=KobzolMatthias Krüger-28/+49
Use `tracing-forest` instead of `tracing-tree` for bootstrap tracing I find the `tracing-forest` output easier to comprehend. Note that this is not a strict improvement -- `tracing-forest` output contains some emojis and redundant log levels, but customizing it seems to be... non-trivial. Despite this, I still find `tracing-forest` easier to follow than `tracing-tree`, even when I tried to tune `tracing-tree` output. ### Preview ```bash BOOTSTRAP_TRACING=debug ./x test library/std --dry-run ``` With `tracing-forest` (this PR), it looks like ![Screenshot 2025-06-29 174802](https://github.com/user-attachments/assets/1ab9150f-48f8-4fb3-b004-27bcf8bbc0f5) With `tracing-tree` (before this PR), it looked like ![Screenshot 2025-06-29 175227](https://github.com/user-attachments/assets/659e254d-15ab-47dd-af11-98e2331d4d7a) r? `@Kobzol`
2025-06-30Rollup merge of #143175 - Kobzol:bootstrap-lld-external-llvm-config, r=JieyouxuMatthias Krüger-4/+9
Make combining LLD with external LLVM config a hard error Younger me made this only a warning in https://github.com/rust-lang/rust/pull/139853, because our post-dist tests were relying on this. But that was not a good idea, because there are a bunch of places in bootstrap that outright try to build LLD/copy LLD to sysroot when `lld_enabled` is true (rightfully so), which is causing issues (https://github.com/rust-lang/rust/issues/143076). Instead of piling more hacks, I'd like to just disallow this, and if we need to use a hack, do it only for our CI. If this breaks the CI post-dist tests, I'll either add some special environment variable for it, or, as an alternative, make the error back into a warning, but also disable `lld_enabled` when this situation happens. try-job: dist-x86_64-linux Fixes: https://github.com/rust-lang/rust/pull/143175
2025-06-30Rollup merge of #143140 - RalfJung:ptr-into-parts, r=oli-obkMatthias Krüger-9/+7
give Pointer::into_parts a more scary name and offer a safer alternative `into_parts` is a bit too innocent of a name for a somewhat subtle operation. r? `@oli-obk`
2025-06-30Update booksrustbot-0/+0
2025-06-30Merge from rust-lang/rustLaurențiu Nicola-2581/+7289