about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2025-04-15Rollup merge of #139660 - Zalathar:new-executor, r=jieyouxuStuart Cook-117/+574
compiletest: Add an experimental new executor to replace libtest This PR adds a new "executor" to compiletest for running the list of collected tests, to eventually replace the current dependency on unstable libtest internals. The new executor is currently inactive by default. It must be activated explicitly by passing `-n` or `--new-executor` to compiletest, e.g. `./x test ui -- -n`. (After some amount of wider manual testing, the new executor will hopefully be made the default, and the libtest dependency can be removed. Contributors should not notice any change.) The new executor is a stripped-down rewrite of the subset of libtest needed by compiletest. # Supported functionality - Specifying the number of concurrent tests with `RUST_TEST_THREADS` - Filtering and skipping tests by name (substring or exact-match) - Forcibly running ignored tests with `--ignored` - Optional fail-fast with `--fail-fast` - JSON output, compatible with bootstrap's parser for libtest output - Running each test in its own thread - Short backtraces that ignore the executor itself - Slow test detection, with a hard-coded timeout of 60 seconds - Capturing stdout/stderr, via `#![feature(internal_output_capture)]` - Suppressing output capture with `--no-capture` # Unsupported functionality - Non-JSON output, as this is handled by bootstrap instead - Separate code path for concurrency=1, as the concurrent path should handle this case naturally - Fallback to running tests synchronously if new threads can't be spawned - Special handling of hosts that don't support basic functionality like threads or timers - Our ability to test *targets* should be unaffected - Graceful handling of some edge cases that could occur in arbitrary user-written unit tests, but would represent bugs in compiletest - Due to the current need for output capture, the new executor is still not entirely written in stable Rust --- r? jieyouxu
2025-04-15Avoid using `kw::Empty` for param names in rustdoc.Nicholas Nethercote-8/+11
2025-04-15Avoid using `kw::Empty` when comparing names.Nicholas Nethercote-4/+7
2025-04-15Avoid another `kw::Empty` use.Nicholas Nethercote-1/+1
`sym::dummy` also appears to work.
2025-04-15Remove another `kw::Empty` use in rustdoc.Nicholas Nethercote-23/+31
Again by using `Option<Symbol>` to represent "no name".
2025-04-15feat: Add `pub(crate) mod` option for unlinked filesroifewu-0/+18
2025-04-15feat: highlight tail expression in labeled blockroifewu-0/+29
2025-04-15compiletest: Add an experimental new executor to replace libtestZalathar-12/+452
The new executor can be enabled by passing `--new-executor` or `-n` to compiletest. For example: `./x test ui -- -n`
2025-04-15compiletest: Extract libtest-specific executor code to a submoduleZalathar-103/+113
2025-04-15Use a constant for unstable features needed by compiletestZalathar-7/+14
2025-04-14Stabilize `-Zdwarf-version` as `-Cdwarf-version`Wesley Wiser-13/+13
2025-04-15Remove some `kw::Empty` uses in rustdoc.Nicholas Nethercote-16/+19
Some `unwrap` uses here, but they are on paths involving item kinds that are known to have an identifier.
2025-04-15fix: `Extract into function include inline variable in fmt macroHayashi Mikihiro-14/+71
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-04-14Remove incorrect doc commentTyler Breisacher-1/+0
2025-04-14ci: add runners for vanilla LLVM 20Josh Stone-0/+94
Ubuntu 25.04 has `llvm-20` packages that we can start testing with. The `Dockerfile` is otherwise the same as the `llvm-18`/`19` runners.
2025-04-15Move `name` field from `AssocItem` to `AssocKind` variants.Nicholas Nethercote-13/+13
To accurately reflect that RPITIT assoc items don't have a name. This avoids the use of `kw::Empty` to mean "no name", which is error prone. Helps with #137978.
2025-04-15Move two methods from `AssocKind` to `AssocItem`.Nicholas Nethercote-2/+2
Because all the other similar methods are on `AssocItem`.
2025-04-15Move `opt_rpitit_info` field to `hir::AssocKind::Type`.Nicholas Nethercote-2/+2
From `hir::AssocItem`.
2025-04-14Fix grammar of --test-runtool-arg help textEric Huss-1/+1
2025-04-14Rollup merge of #139813 - RalfJung:miri-sync, r=RalfJungMatthias Krüger-14/+42
Miri subtree update r? `@ghost` Fixes build failures on macOS
2025-04-14Rollup merge of #139757 - ognevny:opt-dist-hostllvm, r=KobzolMatthias Krüger-1/+3
opt-dist: use executable-extension for host llvm-profdata because it's used for target llvm-profdata too r? Kobzol
2025-04-14Rollup merge of #139807 - Kobzol:post-merge-report-wording, r=marcoieniMatthias Krüger-11/+15
Improve wording of post-merge report Slight changes to improve the rendered output e.g. [here](https://github.com/rust-lang/rust/pull/139241#issuecomment-2801733750) if only doctest changes were found. r? `@marcoieni`
2025-04-14Rollup merge of #139804 - WaffleLapkin:real, r=jieyouxuMatthias Krüger-1/+1
use `realpath` in `bootstrap.py` when creating build-dir Fixes #139800 r? `@jieyouxu` My use case for `./build` being a symlink is this: my "default" ~~partition~~ btrfs subvolume is snapshotted/backed up. I don't want to backup target-likes, so I move them to a special subvolume which isn't backed up. `./build` is a symlink into that subvolume. (`build.build-dir` configuration is not fully sufficient, it is still nice to be able to check build files with `ls ./build` or call tools from there)
2025-04-14Merge pull request #19583 from Kobzol/revert-19582-ci-pgoLukas Wirth-2/+0
Do not perform PGO on Linux CI
2025-04-14Do not enable PGO in combination with zigbuildJakub Beránek-2/+0
2025-04-14Merge pull request #19568 from snprajwal/destructure-struct-editorLukas Wirth-99/+76
refactor: editor for `destructure_struct_binding`
2025-04-14Disable some r-a tests in bootstrap.Mara Bos-0/+2
2025-04-14Merge pull request #19572 from snprajwal/expand-rest-patternLukas Wirth-53/+66
refactor: migrate `expand_rest_pattern` to editor
2025-04-14Merge pull request #19582 from Kobzol/ci-pgoLukas Wirth-9/+104
Distribute x64 and aarch64 Linux builds with PGO optimizations
2025-04-14Improve wording of post-merge reportJakub Beránek-11/+15
2025-04-14use `realpath` in `bootstrap.py` when creating build-dirWaffle Lapkin-1/+1
this avoids crashes when `./build` is a symlink to a non-existent directory.
2025-04-14Expose Pointer to/from AllocId conversion functions, make some arguments ↵Patrick-6-49/+62
optional
2025-04-14Merge pull request #19569 from snprajwal/fixmesLukas Wirth-75/+79
fix(ast): return correct types for `make::expr_*` methods
2025-04-14Merge pull request #19578 from clouds56-contrib/drive-letterLukas Wirth-12/+35
add normalizeDriveLetter
2025-04-14Merge pull request #19521 from snprajwal/ciLukas Wirth-4/+16
ci: cancel parallel jobs if test fails
2025-04-14Merge pull request #19579 from ChayimFriedman2/cyclic-closureLukas Wirth-7/+65
fix: Prevent panics when there is a cyclic dependency between closures
2025-04-14Use PGO for x64 and aarch64 Linux builds on CIJakub Beránek-3/+6
2025-04-14Add `xdist dist --pgo` command to build Rust Analyzer with PGO optimizationsJakub Beránek-6/+98
2025-04-14Auto merge of #139781 - jhpratt:rollup-qadsjvb, r=jhprattbors-434/+410
Rollup of 9 pull requests Successful merges: - #138336 (Improve `-Z crate-attr` diagnostics) - #139636 (Encode dep node edge count as u32 instead of usize) - #139666 (cleanup `mir_borrowck`) - #139695 (compiletest: consistently use `camino::{Utf8Path,Utf8PathBuf}` throughout) - #139699 (Proactively update coroutine drop shim's phase to account for later passes applied during shim query) - #139718 (enforce unsafe attributes in pre-2024 editions by default) - #139722 (Move some things to rustc_type_ir) - #139760 (UI tests: migrate remaining compile time `error-pattern`s to line annotations when possible) - #139776 (Switch attrs to `diagnostic::on_unimplemented`) r? `@ghost` `@rustbot` modify labels: rollup
2025-04-14Merge pull request #2333 from rust-lang/convetions-chapt-cleaningTshepang Mbambo-32/+33
Coding conventions chapter cleaning
2025-04-14clean "Coding conventions" chapterTshepang Mbambo-32/+33
- use correct code block markers - add missing title - rustfmt can now use edition setting in its config ... and this is set in Rust repo - reduce visual noise - needless repetition - convention is to start sentence with upper case - sembr - whitespace - semi-heading not adding much value - fix grammar
2025-04-14Move `has_self` field to `hir::AssocKind::Fn`.Nicholas Nethercote-27/+25
`hir::AssocItem` currently has a boolean `fn_has_self_parameter` field, which is misplaced, because it's only relevant for associated fns, not for associated consts or types. This commit moves it (and renames it) to the `AssocKind::Fn` variant, where it belongs. This requires introducing a new C-style enum, `AssocTag`, which is like `AssocKind` but without the fields. This is because `AssocKind` values are passed to various functions like `find_by_ident_and_kind` to indicate what kind of associated item should be searched for, and having to specify `has_self` isn't relevant there. New methods: - Predicates `AssocItem::is_fn` and `AssocItem::is_method`. - `AssocItem::as_tag` which converts `AssocItem::kind` to `AssocTag`. Removed `find_by_name_and_kinds`, which is unused. `AssocItem::descr` can now distinguish between methods and associated functions, which slightly improves some error messages.
2025-04-14Use `Symbol` in `LateContext::get_associated_type`.Nicholas Nethercote-8/+8
To avoid unnecessary interning.
2025-04-14Prevent panics when there is a cyclic dependency between closuresChayim Refael Friedman-7/+65
We didn't include them in the sorted closures list, therefore didn't analyze them, then failed to find them.
2025-04-13Rollup merge of #139695 - jieyouxu:compiletest-utf8path, r=KobzolJacob Pratt-434/+410
compiletest: consistently use `camino::{Utf8Path,Utf8PathBuf}` throughout compiletest already practically assumes UTF-8 paths everywhere. Use `camino`'s `{Utf8Path,Utf8PathBuf}` consistently throughout compiletest to enforce UTF-8 path assumptions. r? ```@Kobzol``` (or compiler/bootstrap)
2025-04-14Auto merge of #124141 - ↵bors-7/+7
nnethercote:rm-Nonterminal-and-TokenKind-Interpolated, r=petrochenkov Remove `Nonterminal` and `TokenKind::Interpolated` A third attempt at this; the first attempt was #96724 and the second was #114647. r? `@ghost`
2025-04-14fix formatClouds Flowing-2/+8
2025-04-14add normalizeDriveLetterClouds Flowing-12/+29
2025-04-14Ignore errors from rustfmt which may trigger error notificationyukang-1/+5
2025-04-14Documentation fixes.Nicholas Nethercote-25/+19
Remove old references to the HIR map.