about summary refs log tree commit diff
path: root/compiler
AgeCommit message (Collapse)AuthorLines
2025-09-08change end to lastJeremy Smart-6/+56
2025-09-09Auto merge of #146188 - dpaoliello:tracing, r=Kobzolbors-3/+2
Update tracing and fix binary regression Previous attempts (rust-lang/rust#127316, rust-lang/rust#134770) saw binary size regressions, this was root caused to <https://github.com/tokio-rs/tracing/pull/2553> which changed the behavior of the `max_level_info` feature flag to match the docs (i.e., that flag only applies for debug builds and `release_max_level_info` applies for release builds). This change bumps the `tracing` version and sets both `max_level_info` and `release_max_level_info` when to match rustc's own `max_level_info`.
2025-09-08fixup limit handling codeJana Dönszelmann-225/+167
2025-09-08port `#[pattern_complexity_limit]` to the new attribute parsing infrastructureJana Dönszelmann-1/+35
2025-09-08port `#[type_length_limit]` to the new attribute parsing infrastructureJana Dönszelmann-1/+36
2025-09-08port `#[move_size_limit]` to the new attribute parsing infrastructureJana Dönszelmann-1/+33
2025-09-08port `#[recursion_limit]` to the new attribute parsing infrastructureJana Dönszelmann-4/+84
2025-09-08Auto merge of #140375 - lcnr:subrelations-infcx, r=BoxyUwUbors-300/+401
eagerly compute `sub_unification_table` again Previously called `sub_relations`. We still only using them for diagnostics right now. This mostly reverts rust-lang/rust#119989. Necessary for type inference guidance due to not-yet defined opaque types, cc https://github.com/rust-lang/trait-system-refactor-initiative/issues/182. We could use them for cycle detection in generalization and it seems desirable to do so in the future. However, this is unsound with the old trait solver as its cache does not track these `sub_unification_table` in any way. We now properly track the `sub_unification_table` when canonicalizing so using them in the new solver is totally sound and the performance impact is far more manageable than I thought back in rust-lang/rust#119989. r? `@compiler-errors`
2025-09-08report duplicate symbol added by the driverFolkert de Vries-6/+15
2025-09-08Apply requested changesIoaNNUwU-29/+15
2025-09-08Refactor how to get the span of a function headerFolkert de Vries-37/+32
2025-09-08c-variadic: reject non-extern functionsFolkert de Vries-1/+11
2025-09-08clarify control flow of `check_c_variadic_type`Folkert de Vries-7/+16
2025-09-08disallow c-variadic associated functions (for now)Folkert de Vries-5/+18
there is no reason this should not work, really, we're just cutting some scope for now
2025-09-08disallow c-variadic coroutinesFolkert de Vries-0/+25
2025-09-08Auto merge of #146333 - matthiaskrgr:rollup-ib80jyw, r=matthiaskrgrbors-166/+216
Rollup of 7 pull requests Successful merges: - rust-lang/rust#146111 (Migrate more things in the new solver to specific `DefId`s) - rust-lang/rust#146298 (GVN: Ensure indirect is first projection in try_as_place.) - rust-lang/rust#146299 (docs(std): add error docs for path canonicalize) - rust-lang/rust#146310 (Allow static regions in `type_name`.) - rust-lang/rust#146313 (Some `rustc_middle` cleanups) - rust-lang/rust#146319 (Fix typo in default.rs) - rust-lang/rust#146320 (rustc-dev-guide subtree update) r? `@ghost` `@rustbot` modify labels: rollup
2025-09-08Update tracing, againDaniel Paoliello-3/+2
2025-09-08Implement better suggestions based on additional tests and other code pathsIoaNNUwU-20/+38
2025-09-08Suggest examples of format specifiers in error messagesIoaNNUwU-2/+25
2025-09-08Rollup merge of #146313 - nnethercote:rustc_middle-ty-cleanups-2, r=lcnrMatthias Krüger-84/+54
Some `rustc_middle` cleanups Minor improvements I found while looking through this code. r? `@BoxyUwU`
2025-09-08Rollup merge of #146310 - nnethercote:fix-146249, r=lcnrMatthias Krüger-2/+3
Allow static regions in `type_name`. Fixes rust-lang/rust#146249. r? `@lcnr`
2025-09-08Rollup merge of #146298 - cjgillot:gvn-derefer, r=nnethercoteMatthias Krüger-0/+5
GVN: Ensure indirect is first projection in try_as_place. I haven't found any report for this bug on existing code, but managed to trigger it with rust-lang/rust#143333
2025-09-08Rollup merge of #146111 - ChayimFriedman2:more-ns-specific-defid, r=lcnrMatthias Krüger-80/+154
Migrate more things in the new solver to specific `DefId`s Continuation of https://github.com/rust-lang/rust/pull/145377. I migrated the rest of the types, except aliases. Aliases are problematic because opaques and associated types share the same type in the new solver. `@jackh726,` `@lcnr,` `@ShoyuVanilla` I'd like to hear ideas here. Anyway, even if we do nothing with them we already got a substantial improvement. r? types
2025-09-08Auto merge of #146165 - folkertdev:c-variadic-errors-take-2, r=lcnrbors-25/+21
improve c-variadic error reporting tracking issue: https://github.com/rust-lang/rust/issues/44930 The parts of https://github.com/rust-lang/rust/pull/143546 that don't require any particular knowledge about c-variadic functions. This prepares the way for rejecting c-variadic functions that are also coroutines, safe functions, or associated functions.
2025-09-08fix APITIT being treated as a normal generic parameter in suggestionsJeremy Smart-27/+46
2025-09-08Make `is_typeck_child` match exhaustiveDaria Sukhonina-1/+31
2025-09-08reviewlcnr-40/+57
2025-09-08optimize `CanonicalVarValues::instantiate`lcnr-56/+62
2025-09-08pass `sub_relations` into canonical querieslcnr-97/+159
2025-09-08inline `CanonicalTyVarKind`lcnr-74/+49
2025-09-08eagerly compute `sub_relations` againlcnr-111/+152
2025-09-08Skip typeck for items w/o their own typeck contextDaria Sukhonina-5/+10
More details on about this fix: https://rust-lang.zulipchat.com/#narrow/channel/187679-t-compiler.2Fparallel-rustc/topic/ICE.3A.20typecks.20AnonConst.20under.20parallel.20rustc.28.23141951.29/with/538200980 Co-authored-by: ywxt <ywxtcwh@gmail.com>
2025-09-08implement `va_arg` for arm in rustc itselfFolkert de Vries-0/+15
2025-09-08const-eval: disable pointer fragment supportRalf Jung-4/+23
2025-09-08Allow static regions in `type_name`.Nicholas Nethercote-2/+3
Fixes #146249.
2025-09-08Auto merge of #145910 - saethlin:ignore-intrinsic-calls, r=cjgillotbors-1/+10
Ignore intrinsic calls in cross-crate-inlining cost model I noticed in a side project that a function which just compares to `[u64; 2]` for equality is not cross-crate-inlinable. That was surprising to me because I didn't think that code contained a function call, but of course our array comparisons are lowered to an intrinsic. Intrinsic calls don't make a function no longer a leaf, so it makes sense to add this as an exception to the "only leaves" cross-crate-inline heuristic. This is the useful compare link: https://perf.rust-lang.org/compare.html?start=7cb1a81145a739c4fd858abe3c624ce8e6e5f9cd&end=c3f0a64dbf9fba4722dacf8e39d2fe00069c995e&stat=instructions%3Au because it disables CGU merging in both commits, so effects that cause changes in the sysroot to perturb partitioning downstream are excluded. Perturbations to what is and isn't cross-crate-inlinable in the sysroot has chaotic effects on what items are in which CGUs after merging. It looks like before this PR by sheer luck some of the CGUs dirtied by the patch in eza incr-unchanged happened to be merged together, and with this PR they are not. The perf runs on this PR point to a nice runtime performance improvement.
2025-09-07Auto merge of #145541 - cjgillot:dest-prop-live-range, r=Amanieubors-586/+370
Reimplement DestinationPropagation according to live ranges. This PR reimplements DestinationPropagation as a problem of merging live-ranges of locals. We merge locals that have disjoint live-ranges. This allows merging several locals in the same round by updating live range information. Live ranges are mainly computed using the `MaybeLiveLocals` analysis. The subtlety is that we split each statement and terminator in 2 positions. The first position is the regular statement. The second position is a shadow, which is always more live. It encodes partial writes and dead writes as a local being live for half a statement. This half statement ensures that writes conflict with another local's writes and regular liveness. r? `@Amanieu`
2025-09-08Move `describe_as_module` from `rustc_middle::print` to `rustc:middle::query`.Nicholas Nethercote-12/+11
That way it doesn't need to be exported.
2025-09-08Move `rustc_middle::MaxUniverse` to `rustc_infer`.Nicholas Nethercote-42/+41
Because `rust_infer` is the only crate that uses it.
2025-09-08Make some matches non-exhaustive.Nicholas Nethercote-30/+2
Exhaustive match isn't necessary for these trivial cases, and some similar nearby methods are non-exhaustive.
2025-09-07support integer literals in `${concat()}`cyrgani-1/+17
2025-09-08Minor symbol comment fixes.Nicholas Nethercote-7/+6
- The empty symbol is no longer a keyword. - I don't think any of the special reserved identifiers are used for error recovery.
2025-09-07Rollup merge of #146297 - cjgillot:may-observe-address, r=saethlinMatthias Krüger-8/+23
Introduce PlaceContext::may_observe_address. A small utility method to avoid open-coding the logic in several MIR opts.
2025-09-07Rollup merge of #146209 - bjorn3:lto_refactors5, r=dianqkMatthias Krüger-77/+44
Misc LTO cleanups Follow up to https://github.com/rust-lang/rust/pull/145955. * Remove want_summary argument from `prepare_thin`. Since https://github.com/rust-lang/rust/pull/133250 ThinLTO summary writing is instead done by `llvm_optimize`. * Two minor cleanups
2025-09-07Use rustc_data_structures::union_find.Camille Gillot-28/+14
2025-09-07Simplify candidate collection.Camille Gillot-55/+43
2025-09-07Unify a source with all possible destinations.Camille Gillot-59/+39
2025-09-07Do not use prepend to avoid quadratic behaviour.Camille Gillot-58/+37
2025-09-07Simplify VisitPlacesWith.Camille Gillot-18/+7
2025-09-07Use regular MaybeLiveLocals.Camille Gillot-135/+53