summary refs log tree commit diff
path: root/src/tools
AgeCommit message (Collapse)AuthorLines
2025-01-02Move the `crate-loading` test to use `diff` outputEsteban Küber-0/+6
(cherry picked from commit 998ff2f0cd2902e86178d35b01ba78fe4633f80b)
2024-12-18Taking a raw ref of a deref is always safeLukas Wirth-4/+27
2024-11-27Revert r-a completions breakageKirill Bulatov-243/+74
Repeats the revert to `stable` https://github.com/rust-lang/rust/pull/133476 using https://patch-diff.githubusercontent.com/raw/rust-lang/rust/pull/133476.diff
2024-11-26Ignore the rustc_bootstrap test during post-opt-dist testsJieyou Xu-0/+6
2024-11-21Auto merge of #132629 - nnethercote:124141-preliminaries, r=petrochenkovbors-1/+1
#124141 preliminaries Preliminary changes required to start removing `Nonterminal` (https://github.com/rust-lang/rust/pull/124141). r? `@petrochenkov`
2024-11-21Introduce `InvisibleOrigin` on invisible delimiters.Nicholas Nethercote-1/+1
It's not used meaningfully yet, but will be needed to get rid of interpolated tokens.
2024-11-20Auto merge of #131326 - dingxiangfei2009:issue-130836-attempt-2, r=nikomatsakisbors-0/+1
Reduce false positives of tail-expr-drop-order from consumed values (attempt #2) r? `@nikomatsakis` Tracked by #123739. Related to #129864 but not replacing, yet. Related to #130836. This is an implementation of the approach suggested in the [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/temporary.20drop.20order.20changes). A new MIR statement `BackwardsIncompatibleDrop` is added to the MIR syntax. The lint now works by inspecting possibly live move paths before at the `BackwardsIncompatibleDrop` location and the actual drop under the current edition, which should be one before Edition 2024 in practice.
2024-11-20Auto merge of #133251 - matthiaskrgr:rollup-gjeis3q, r=matthiaskrgrbors-12/+15
Rollup of 3 pull requests Successful merges: - #131904 (Stabilize const_pin_2) - #133239 (Fix LLVM target triple for `x86_64-win7-windows-msvc`) - #133241 (interpret: make typing_env field private) r? `@ghost` `@rustbot` modify labels: rollup
2024-11-20reduce false positives of tail-expr-drop-order from consumed valuesDing Xiang Fei-0/+1
take 2 open up coroutines tweak the wordings the lint works up until 2021 We were missing one case, for ADTs, which was causing `Result` to yield incorrect results. only include field spans with significant types deduplicate and eliminate field spans switch to emit spans to impl Drops Co-authored-by: Niko Matsakis <nikomat@amazon.com> collect drops instead of taking liveness diff apply some suggestions and add explantory notes small fix on the cache let the query recurse through coroutine new suggestion format with extracted variable name fine-tune the drop span and messages bugfix on runtime borrows tweak message wording filter out ecosystem types earlier apply suggestions clippy check lint level at session level further restrict applicability of the lint translate bid into nop for stable mir detect cycle in type structure
2024-11-20Auto merge of #133227 - weihanglo:update-cargo, r=weihanglobors-0/+0
Update cargo 5 commits in 69e595908e2c420e7f0d1be34e6c5b984c8cfb84..66221abdeca2002d318fde6efff516aab091df0e 2024-11-16 01:26:11 +0000 to 2024-11-19 21:30:02 +0000 - Docs for optional registry JSON fields (rust-lang/cargo#14839) - Allow registries to omit empty/default fields in JSON (rust-lang/cargo#14838) - docs(unstable): Link to -Zwarnings issue, tracking issue (rust-lang/cargo#14836) - fix(): error context for git_fetch refspec not found (rust-lang/cargo#14806) - you we distinction (rust-lang/cargo#14829)
2024-11-20interpret: make typing_env field privateRalf Jung-12/+15
2024-11-20Auto merge of #133212 - lcnr:questionable-uwu, r=compiler-errorsbors-100/+107
continue `ParamEnv` to `TypingEnv` transition cc #132279 r? `@compiler-errors`
2024-11-19Update cargoWeihang Lo-0/+0
2024-11-19Rollup merge of #133201 - nnethercote:rm-TokenKind-InvalidPrefix, ↵Matthias Krüger-1/+1
r=compiler-errors Remove `TokenKind::InvalidPrefix` It's not needed. Best reviewed one commit at a time. r? `@estebank`
2024-11-19`InterpCx` store `TypingEnv` instead of a `ParamEnv`lcnr-13/+13
2024-11-19remove `TypingMode::from_param_env` in clippylcnr-68/+77
2024-11-19move `fn is_item_raw` to `TypingEnv`lcnr-27/+25
2024-11-19Rollup merge of #132577 - Urgau:check-cfg-report-extern-macro, r=petrochenkovMatthias Krüger-5/+5
Report the `unexpected_cfgs` lint in external macros This PR marks the `unexpected_cfgs` lint as being reportable in external macros, as it's probably not the intention of the macro author to leave ineffective cfgs in the users code. Fixes #132572 try-job: aarch64-gnu-debug
2024-11-19Remove `TokenKind::InvalidPrefix`.Nicholas Nethercote-1/+1
It was added in #123752 to handle some cases involving emoji, but it isn't necessary because it's always treated the same as `TokenKind::InvalidIdent`. This commit removes it, which makes things a little simpler.
2024-11-18Auto merge of #132460 - lcnr:questionable-uwu, r=compiler-errorsbors-89/+99
Use `TypingMode` throughout the compiler instead of `ParamEnv` Hopefully the biggest single PR as part of https://github.com/rust-lang/types-team/issues/128. ## `infcx.typing_env` while defining opaque types I don't know how'll be able to correctly handle opaque types when using something taking a `TypingEnv` while defining opaque types. To correctly handle the opaques we need to be able to pass in the current `opaque_type_storage` and return constraints, i.e. we need to use a proper canonical query. We should migrate all the queries used during HIR typeck and borrowck where this matters to proper canonical queries. This is ## `layout_of` and `Reveal::All` We convert the `ParamEnv` to `Reveal::All` right at the start of the `layout_of` query, so I've changed callers of `layout_of` to already use a post analysis `TypingEnv` when encountering it. https://github.com/rust-lang/rust/blob/ca87b535a05097df6abbe2a031b057de2cefac5b/compiler/rustc_ty_utils/src/layout.rs#L51 ## `Ty::is_[unpin|sized|whatever]` I haven't migrated `fn is_item_raw` to use `TypingEnv`, will do so in a followup PR, this should significantly reduce the amount of `typing_env.param_env`. At some point there will probably be zero such uses as using the type system while ignoring the `typing_mode` is incorrect. ## `MirPhase` and phase-transitions When inside of a MIR-body, we can mostly use its `MirPhase` to figure out the right `typing_mode`. This does not work during phase transitions, most notably when transitioning from `Analysis` to `Runtime`: https://github.com/rust-lang/rust/blob/dae7ac133b9eda152784c075facb31a6688c92b1/compiler/rustc_mir_transform/src/lib.rs#L606-L625 All these passes still run with `MirPhase::Analysis`, but we should only use `Reveal::All` once we're run the `RevealAll` pass. This required me to manually construct the right `TypingEnv` in all these passes. Given that it feels somewhat easy to accidentally miss this going forward, I would maybe like to change `Body::phase` to an `Option` and replace it at the start of phase transitions. This then makes it clear that the MIR is currently in a weird state. r? `@ghost`
2024-11-18Update `xshell` and `xshell-macros` to v0.2.7Urgau-5/+5
2024-11-18use `TypingEnv` when no `infcx` is availablelcnr-89/+99
the behavior of the type system not only depends on the current assumptions, but also the currentnphase of the compiler. This is mostly necessary as we need to decide whether and how to reveal opaque types. We track this via the `TypingMode`.
2024-11-18Rollup merge of #133158 - lnicola:sync-from-ra, r=lnicolaJacob Pratt-15/+32
Subtree update of `rust-analyzer` r? `@ghost`
2024-11-17Auto merge of #120370 - x17jiri:likely_unlikely_fix, r=saethlinbors-1/+1
Likely unlikely fix RFC 1131 ( https://github.com/rust-lang/rust/issues/26179 ) added likely/unlikely intrinsics, but they have been broken for a while: https://github.com/rust-lang/rust/issues/96276 , https://github.com/rust-lang/rust/issues/96275 , https://github.com/rust-lang/rust/issues/88767 . This PR tries to fix them. Changes: - added a new `cold_path()` intrinsic - `likely()` and `unlikely()` changed to regular functions implemented using `cold_path()`
2024-11-17Auto merge of #132646 - jieyouxu:liberate-aarch64-gnu-debug, r=Kobzolbors-101/+175
Liberate `aarch64-gnu-debug` from the shackles of `--test-args=clang` ### Changes - Drop `--test-args=clang` from `aarch64-gnu-debug` so run-make tests that are `//@ needs-force-clang-based-tests` no longer only run if their test name contains `clang` (which is a very cool footgun). - Reorganize run-make-suport library slightly to accommodate a raw gcc invocation. - Fix `tests/run-make/mte-ffi/rmake.rs` to use `gcc` instead of *a* c compiler. try-job: aarch64-gnu try-job: aarch64-gnu-debug
2024-11-17Likely unlikely fixJiri Bobek-1/+1
2024-11-17Auto merge of #125949 - erikdesjardins:nocomponent, r=jieyouxubors-34/+0
Revert "tidy: validate LLVM component names in tests" This reverts #125472. This has already caused a [bit](https://github.com/rust-lang/rust/pull/125702) of [trouble](https://github.com/rust-lang/rust/pull/125710), and I was mistaken about the original motivation--incorrect component names [_will_](https://github.com/rust-lang/rust/pull/125702#issuecomment-2137030731) be detected by a full CI run. I no longer think it pulls its weight. r? `@workingjubilee`
2024-11-17Auto merge of #133120 - matthiaskrgr:rollup-4actosy, r=matthiaskrgrbors-21/+7
Rollup of 7 pull requests Successful merges: - #131717 (Stabilize `const_atomic_from_ptr`) - #132134 (Remove `ResultsVisitable`) - #132449 (mark is_val_statically_known intrinsic as stably const-callable) - #132569 (rustdoc search: allow queries to end in an empty path segment) - #132787 (Unify FnKind between AST visitors and make WalkItemKind more straight forward) - #132832 (Deny capturing late-bound ty/const params in nested opaques) - #133097 (Opt out TaKO8Ki from review rotation for now) r? `@ghost` `@rustbot` modify labels: rollup
2024-11-16Rollup merge of #132787 - maxcabrajac:fnctxt, r=petrochenkovMatthias Krüger-21/+7
Unify FnKind between AST visitors and make WalkItemKind more straight forward Unifying `FnKind` requires a bunch of changes to `WalkItemKind::walk` signature so I'll change them in one go related to #128974 r? `@petrochenkov`
2024-11-16Fix related documents diagnosticsChayim Refael Friedman-3/+7
They were converted to LSP position using the current file's line index, which is obviously wrong.
2024-11-16Bump xshellLaurențiu Nicola-4/+4
2024-11-16Update cargoWeihang Lo-0/+0
2024-11-15Make Visitor::FnKind and MutVisitor::FnKind compatiblemaxcabrajac-21/+7
2024-11-14Merge commit '786fbd6d683933cd0e567fdcd25d449a69b4320c' into ↵Philipp Krones-286/+1149
clippy-subtree-update
2024-11-14Rollup merge of #133013 - matthiaskrgr:crash_aux, r=onur-ozkanGuillaume Gomez-2/+16
compiletest: known-bug / crashes: allow for an "auxiliary" directory to contain files that do not have a "known-bug" directive Fixes #133009 r? `@jieyouxu`
2024-11-14compiletest: add `max-llvm-major-version` directive许杰友 Jieyou Xu (Joe)-0/+24
There's already `min-llvm-version`, and contributors were using `ignore-llvm-version: 20 - 99` to emulate `max-llvm-major-version: 19`.
2024-11-13compiletest: known-bug / crashes: allow for an "auxiliary" directory to ↵Matthias Krüger-2/+16
contain files that do not have a "known-bug" directive Fixes #133009
2024-11-13Rollup merge of #132995 - Eclips4:issue-132348, r=jieyouxuMatthias Krüger-0/+29
compiletest: Add ``exact-llvm-major-version`` directive Now contributors don't need to use `min-llvm-version: X` + `ignore-llvm-version: X+1 - 99`, so they can simply use `exact-llvm-major-version: X` To be honest, I didn't find any usages of that hack other than the one mentioned in the issue. ( `tests/codegen/try_question_mark_nop.rs`) Closes #132348. rustc-dev-guide PR for `//@ exact-llvm-major-version`: https://github.com/rust-lang/rustc-dev-guide/pull/2135 r? jieyouxu
2024-11-13Address reviewKirill Podoprigora-3/+9
2024-11-13Add ``exact-llvm-major-version`` directiveKirill Podoprigora-0/+23
2024-11-13feat: migrate `reorder_fields` assist to use `SyntaxFactory`Tarek-8/+21
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-11-13Auto merge of #132556 - clubby789:cargo-update, r=Mark-Simulacrumbors-168/+102
Add licenses + run `cargo update` Replaces #131311 ``` compiler & tools dependencies: Locking 86 packages to latest compatible versions Updating anstream v0.6.15 -> v0.6.17 Updating anstyle v1.0.8 -> v1.0.10 Updating anstyle-lossy v1.1.2 -> v1.1.3 Updating anstyle-parse v0.2.5 -> v0.2.6 Updating anstyle-query v1.1.1 -> v1.1.2 Updating anstyle-svg v0.1.5 -> v0.1.7 Updating anstyle-wincon v3.0.4 -> v3.0.6 Updating anyhow v1.0.89 -> v1.0.92 Updating arrayref v0.3.7 -> v0.3.9 Updating blake3 v1.5.2 -> v1.5.4 Updating bytes v1.7.2 -> v1.8.0 Updating cc v1.1.23 -> v1.1.34 Updating clap v4.5.18 -> v4.5.20 Updating clap_builder v4.5.18 -> v4.5.20 Updating clap_complete v4.5.29 -> v4.5.36 Updating colorchoice v1.0.2 -> v1.0.3 Updating constant_time_eq v0.3.0 -> v0.3.1 Updating curl v0.4.46 -> v0.4.47 Updating curl-sys v0.4.76+curl-8.10.1 -> v0.4.77+curl-8.10.1 Updating derive_builder v0.20.1 -> v0.20.2 Updating derive_builder_core v0.20.1 -> v0.20.2 Updating derive_builder_macro v0.20.1 -> v0.20.2 Adding foldhash v0.1.3 Updating futures v0.3.30 -> v0.3.31 Updating futures-channel v0.3.30 -> v0.3.31 Updating futures-core v0.3.30 -> v0.3.31 Updating futures-executor v0.3.30 -> v0.3.31 Updating futures-io v0.3.30 -> v0.3.31 Updating futures-macro v0.3.30 -> v0.3.31 Updating futures-sink v0.3.30 -> v0.3.31 Updating futures-task v0.3.30 -> v0.3.31 Updating futures-util v0.3.30 -> v0.3.31 Updating gimli v0.31.0 -> v0.31.1 Adding hashbrown v0.15.0 Updating indexmap v2.5.0 -> v2.6.0 Updating js-sys v0.3.70 -> v0.3.72 Updating libc v0.2.159 -> v0.2.161 Updating libm v0.2.8 -> v0.2.11 Updating object v0.36.4 -> v0.36.5 Updating once_cell v1.19.0 -> v1.20.2 Removing once_map v0.4.19 Updating openssl-sys v0.9.103 -> v0.9.104 Updating pathdiff v0.2.1 -> v0.2.2 Updating pest v2.7.13 -> v2.7.14 Updating pest_derive v2.7.13 -> v2.7.14 Updating pest_generator v2.7.13 -> v2.7.14 Updating pest_meta v2.7.13 -> v2.7.14 Updating pin-project-lite v0.2.14 -> v0.2.15 Updating proc-macro2 v1.0.86 -> v1.0.89 Updating redox_syscall v0.5.6 -> v0.5.7 Updating regex v1.10.6 -> v1.11.1 Updating regex-automata v0.4.7 -> v0.4.8 Updating regex-syntax v0.8.4 -> v0.8.5 Updating rinja v0.3.4 -> v0.3.5 Updating rinja_derive v0.3.4 -> v0.3.5 Updating rinja_parser v0.3.4 -> v0.3.5 Updating rustix v0.38.37 -> v0.38.38 Updating rustversion v1.0.17 -> v1.0.18 Updating schannel v0.1.24 -> v0.1.26 Updating serde v1.0.210 -> v1.0.214 Updating serde_derive v1.0.210 -> v1.0.214 Updating serde_json v1.0.128 -> v1.0.132 Updating syn v2.0.79 -> v2.0.87 Updating tar v0.4.42 -> v0.4.43 Updating terminal_size v0.3.0 -> v0.4.0 Updating thiserror v1.0.64 -> v1.0.66 Updating thiserror-impl v1.0.64 -> v1.0.66 Updating tokio v1.40.0 -> v1.41.0 Updating ucd-trie v0.1.6 -> v0.1.7 Updating unicase v2.7.0 -> v2.8.0 Updating unicode-bidi v0.3.15 -> v0.3.17 Updating unicode-properties v0.1.2 -> v0.1.3 Updating uuid v1.10.0 -> v1.11.0 Updating wasi-preview1-component-adapter-provider v24.0.0 -> v24.0.1 (latest: v25.0.1) Updating wasm-bindgen v0.2.93 -> v0.2.95 Updating wasm-bindgen-backend v0.2.93 -> v0.2.95 Updating wasm-bindgen-macro v0.2.93 -> v0.2.95 Updating wasm-bindgen-macro-support v0.2.93 -> v0.2.95 Updating wasm-bindgen-shared v0.2.93 -> v0.2.95 Updating wasm-encoder v0.219.0 -> v0.219.1 Updating wasm-metadata v0.219.0 -> v0.219.1 Removing wasmparser v0.219.0 Adding wasmparser v0.218.0 (latest: v0.219.1) Adding wasmparser v0.219.1 Updating wast v219.0.0 -> v219.0.1 Updating wat v1.219.0 -> v1.219.1 Updating wit-component v0.219.0 -> v0.219.1 Updating wit-parser v0.219.0 -> v0.219.1 library dependencies: Locking 5 packages to latest compatible versions Updating compiler_builtins v0.1.136 -> v0.1.138 Updating dlmalloc v0.2.6 -> v0.2.7 Updating object v0.36.4 -> v0.36.5 Updating windows-sys v0.52.0 -> v0.59.0 rustbook dependencies: Updating anstream v0.6.15 -> v0.6.17 Updating anstyle v1.0.8 -> v1.0.10 Updating anstyle-parse v0.2.5 -> v0.2.6 Updating anstyle-query v1.1.1 -> v1.1.2 Updating anstyle-wincon v3.0.4 -> v3.0.6 Updating anyhow v1.0.89 -> v1.0.92 Updating cc v1.1.22 -> v1.1.34 Updating clap v4.5.18 -> v4.5.20 Updating clap_builder v4.5.18 -> v4.5.20 Updating clap_complete v4.5.29 -> v4.5.36 Updating colorchoice v1.0.2 -> v1.0.3 Updating hashbrown v0.14.5 -> v0.15.0 Updating indexmap v2.5.0 -> v2.6.0 Updating js-sys v0.3.70 -> v0.3.72 Updating libc v0.2.159 -> v0.2.161 Updating once_cell v1.19.0 -> v1.20.2 Updating pathdiff v0.2.1 -> v0.2.2 Updating pest v2.7.13 -> v2.7.14 Updating pest_derive v2.7.13 -> v2.7.14 Updating pest_generator v2.7.13 -> v2.7.14 Updating pest_meta v2.7.13 -> v2.7.14 Updating proc-macro2 v1.0.86 -> v1.0.89 Updating redox_syscall v0.5.6 -> v0.5.7 Updating regex v1.10.6 -> v1.11.1 Updating regex-automata v0.4.7 -> v0.4.8 Updating regex-syntax v0.8.4 -> v0.8.5 Updating rustix v0.38.37 -> v0.38.38 Updating serde v1.0.210 -> v1.0.214 Updating serde_derive v1.0.210 -> v1.0.214 Updating serde_json v1.0.128 -> v1.0.132 Updating syn v2.0.79 -> v2.0.87 Updating terminal_size v0.3.0 -> v0.4.0 Updating thiserror v1.0.64 -> v1.0.66 Updating thiserror-impl v1.0.64 -> v1.0.66 Updating ucd-trie v0.1.6 -> v0.1.7 Updating unicase v2.7.0 -> v2.8.0 Updating unicode-bidi v0.3.15 -> v0.3.17 Updating wasm-bindgen v0.2.93 -> v0.2.95 Updating wasm-bindgen-backend v0.2.93 -> v0.2.95 Updating wasm-bindgen-macro v0.2.93 -> v0.2.95 Updating wasm-bindgen-macro-support v0.2.93 -> v0.2.95 Updating wasm-bindgen-shared v0.2.93 -> v0.2.95 Removing windows-sys v0.48.0 Removing windows-targets v0.48.5 Removing windows_aarch64_gnullvm v0.48.5 Removing windows_aarch64_msvc v0.48.5 Removing windows_i686_gnu v0.48.5 Removing windows_i686_msvc v0.48.5 Removing windows_x86_64_gnu v0.48.5 Removing windows_x86_64_gnullvm v0.48.5 Removing windows_x86_64_msvc v0.48.5 ```
2024-11-13Run `cargo update` and update licensesclubby789-168/+102
2024-11-12Rollup merge of #132948 - RalfJung:const_unicode_case_lookup, r=NoratriebMatthias Krüger-0/+5
stabilize const_unicode_case_lookup Fixes https://github.com/rust-lang/rust/issues/101400 See there for t-libs-api FCP
2024-11-12Rollup merge of #132657 - mustartt:aix-run-make-support, r=jieyouxuMatthias Krüger-12/+20
AIX: add run-make support On AIX, we are required explicit link against `c++` and `c++abi` to support running the run-make test suite.
2024-11-12Rollup merge of #132541 - RalfJung:const-stable-extern-crate, r=compiler-errorsMatthias Krüger-6/+2
Proper support for cross-crate recursive const stability checks ~~Stacked on top of https://github.com/rust-lang/rust/pull/132492; only the last three commits are new.~~ In a crate without `staged_api` but with `-Zforce-unstable-if-unmarked`, we now subject all functions marked with `#[rustc_const_stable_indirect]` to recursive const stability checks. We require an opt-in so that by default, a crate can be built with `-Zforce-unstable-if-unmarked` and use nightly features as usual. This property is recorded in the crate metadata so when a `staged_api` crate calls such a function, it sees the `#[rustc_const_stable_indirect]` and allows it to be exposed on stable. This, finally, will let us expose `const fn` from hashbrown on stable. The second commit makes const stability more like regular stability: via `check_missing_const_stability`, we ensure that all publicly reachable functions have a const stability attribute -- both in `staged_api` crates and `-Zforce-unstable-if-unmarked` crates. To achieve this, we move around the stability computation so that const stability is computed after regular stability is done. This lets us access the final result of the regular stability computation, which we use so that `const fn` can inherit the regular stability (but only if that is "unstable"). Fortunately, this lets us get rid of an `Option` in `ConstStability`. This is the last PR that I have planned in this series. r? `@compiler-errors`
2024-11-12Rollup merge of #131831 - onur-ozkan:improve-rustc-if-unchanged-logic, ↵Matthias Krüger-664/+7
r=Mark-Simulacrum extend the "if-unchanged" logic for compiler builds Implements the first item from [this tracking issue](https://github.com/rust-lang/rust/issues/131744). In short, we want to make "if-unchanged" logic to check for changes outside of certain allowed directories, and this PR implements that. See https://github.com/rust-lang/rust/issues/131658 for more context.
2024-11-12stabilize const_unicode_case_lookupRalf Jung-0/+5
2024-11-12tests/run-make: update `mte-ffi` to use `gcc` as the c compiler explicitlyJieyou Xu-8/+3
2024-11-12run_make_support: add a `gcc` wrapper commandJieyou Xu-101/+180