about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-07-08Add `f16` and `f128` as SIMD types in LLVMTrevor Gross-0/+2
2024-07-08Auto merge of #127199 - Zalathar:hir-holes, r=oli-obkbors-150/+348
coverage: Extract hole spans from HIR instead of MIR This makes it possible to treat more kinds of nested item/code as holes, instead of being restricted to closures. (It also potentially opens up the possibility of using HIR holes to modify branch or MC/DC spans, though we currently don't actually do this.) Thus, this new implementation treats the following as holes: - Closures (as before, including `async` and coroutines) - All nested items - Inline `const` (because why not) This gives more accurate coverage reports, because lines occupied by holes don't show the execution count from the enclosing function. Fixes #126626.
2024-07-08coverage: Extract hole spans from HIR instead of MIRZalathar-181/+200
This makes it possible to treat more kinds of nested item/code as holes, instead of being restricted to closures.
2024-07-08Auto merge of #127438 - compiler-errors:compute-outlives-visitor, r=lcnrbors-247/+127
Make `push_outlives_components` into a `TypeVisitor` This involves removing the `visited: &mut SsoHashSet<GenericArg<'tcx>>` that is being passed around the `VerifyBoundCx`. The fact that we were using it when decomposing different type tests seems sketchy, so I don't think, though it may technically result in us registering more redundant outlives components 🤷 I did end up deleting some of the comments that referred back to RFC 1214 during this refactor. I can add them back if you think they were useful. r? lcnr
2024-07-08coverage: Test for handling of nested item spansZalathar-0/+179
2024-07-08Auto merge of #127476 - jieyouxu:rollup-16wyb0b, r=jieyouxubors-1570/+1989
Rollup of 10 pull requests Successful merges: - #126841 ([`macro_metavar_expr_concat`] Add support for literals) - #126881 (Make `NEVER_TYPE_FALLBACK_FLOWING_INTO_UNSAFE` a deny-by-default lint in edition 2024) - #126921 (Give VaList its own home) - #127367 (Run alloc sync tests) - #127431 (Use field ident spans directly instead of the full field span in diagnostics on local fields) - #127437 (Uplift trait ref is knowable into `rustc_next_trait_solver`) - #127439 (Uplift elaboration into `rustc_type_ir`) - #127451 (Improve `run-make/output-type-permutations` code and improve `filename_not_in_denylist` API) - #127452 (Fix intrinsic const parameter counting with `effects`) - #127459 (rustdoc-json: add type/trait alias tests) r? `@ghost` `@rustbot` modify labels: rollup
2024-07-08Rollup merge of #127459 - its-the-shrimp:rustdocjson_add_alias_tests, ↵许杰友 Jieyou Xu (Joe)-0/+33
r=aDotInTheVoid rustdoc-json: add type/trait alias tests Not sure if this tests everything there is to test in them though. Updates #81359
2024-07-08Rollup merge of #127452 - fee1-dead-contrib:fx-intrinsic-counting, r=fmease许杰友 Jieyou Xu (Joe)-31/+126
Fix intrinsic const parameter counting with `effects` r? project-const-traits
2024-07-08Rollup merge of #127451 - GuillaumeGomez:improve-output-type-permutations, ↵许杰友 Jieyou Xu (Joe)-4/+4
r=kobzol Improve `run-make/output-type-permutations` code and improve `filename_not_in_denylist` API r? ``@Kobzol``
2024-07-08Rollup merge of #127439 - compiler-errors:uplift-elaborate, r=lcnr许杰友 Jieyou Xu (Joe)-522/+506
Uplift elaboration into `rustc_type_ir` Allows us to deduplicate and consolidate elaboration (including these stupid elaboration duplicate fns i added for pretty printing like 3 years ago) so I'm pretty hyped about this change :3 r? lcnr
2024-07-08Rollup merge of #127437 - compiler-errors:uplift-trait-ref-is-knowable, r=lcnr许杰友 Jieyou Xu (Joe)-480/+520
Uplift trait ref is knowable into `rustc_next_trait_solver` Self-explanatory. Eliminates one more delegate method. r? lcnr cc ``@fmease``
2024-07-08Rollup merge of #127431 - oli-obk:feed_item_attrs, r=compiler-errors许杰友 Jieyou Xu (Joe)-45/+49
Use field ident spans directly instead of the full field span in diagnostics on local fields This improves diagnostics and avoids having to store the `DefId`s of fields
2024-07-08Rollup merge of #127367 - ChrisDenton:run-sync, r=Nilstrieb许杰友 Jieyou Xu (Joe)-6/+2
Run alloc sync tests I was browsing the code and this struck me as weird. We're not running some doc tests because, the comment says, Windows builders deadlock. That should absolutely not happen, at least with our current implementation. And if it does happen I'd like to know. Just to be sure though I'll do some try builds. try-job: x86_64-msvc try-job: i686-msvc try-job: i686-mingw try-job: x86_64-mingw
2024-07-08Rollup merge of #126921 - workingjubilee:outline-va-list, r=Nilstrieb许杰友 Jieyou Xu (Joe)-400/+317
Give VaList its own home Just rearranging things internally and reexporting.
2024-07-08Rollup merge of #126881 - ↵许杰友 Jieyou Xu (Joe)-23/+160
WaffleLapkin:unsafe-code-affected-by-fallback-hard-in-2024, r=compiler-errors Make `NEVER_TYPE_FALLBACK_FLOWING_INTO_UNSAFE` a deny-by-default lint in edition 2024 I don't actually really care about this, but ``@traviscross`` asked me to do this, because lang team briefly discussed this before. (TC here:) Specifically, our original FCPed plan included this step: - Add a lint against fallback affecting a generic that is passed to an `unsafe` function. - Perhaps make this lint `deny-by-default` or a hard error in Rust 2024. That is, we had left as an open question strengthening this in Rust 2024, and had marked it as an open question on the tracking issue. We're nominating here to address the open question. (Closing the remaining open question helps us to fully mark this off for Rust 2024.) r? ``@compiler-errors`` Tracking: - https://github.com/rust-lang/rust/issues/123748
2024-07-08Rollup merge of #126841 - c410-f3r:concat-again, r=petrochenkov许杰友 Jieyou Xu (Joe)-59/+272
[`macro_metavar_expr_concat`] Add support for literals Adds support for things like `${concat($variable, 123)}` or `${concat("hello", "_world")}` . cc #124225
2024-07-08Auto merge of #113128 - WaffleLapkin:become_trully_unuwuable, r=oli-obk,RalfJungbors-174/+2386
Support tail calls in mir via `TerminatorKind::TailCall` This is one of the interesting bits in tail call implementation — MIR support. This adds a new `TerminatorKind` which represents a tail call: ```rust TailCall { func: Operand<'tcx>, args: Vec<Operand<'tcx>>, fn_span: Span, }, ``` *Structurally* this is very similar to a normal `Call` but is missing a few fields: - `destination` — tail calls don't write to destination, instead they pass caller's destination to the callee (such that eventual `return` will write to the caller of the function that used tail call) - `target` — similarly to `destination` tail calls pass the caller's return address to the callee, so there is nothing to do - `unwind` — I _think_ this is applicable too, although it's a bit confusing - `call_source` — `become` forbids operators and is not created as a lowering of something else; tail calls always come from HIR (at least for now) It might be helpful to read the interpreter implementation to understand what `TailCall` means exactly, although I've tried documenting it too. ----- There are a few `FIXME`-questions still left, ideally we'd be able to answer them during review ':) ----- r? `@oli-obk` cc `@scottmcm` `@DrMeepster` `@JakobDegen`
2024-07-08Auto merge of #127421 - cjgillot:cache-iter, r=fmeasebors-8/+26
Cache hir_owner_nodes in ParentHirIterator. Lint level computation may traverse deep HIR trees using that iterator. This calls `hir_owner_nodes` many times for the same HIR owner, which is wasterful. This PR caches the value to allow a more efficient iteration scheme. r? ghost for perf
2024-07-07Auto merge of #127172 - compiler-errors:full-can_eq-everywhere, r=lcnrbors-154/+133
Make `can_eq` process obligations (almost) everywhere Move `can_eq` to an extension trait on `InferCtxt` in `rustc_trait_selection`, and change it so that it processes obligations. This should strengthen it to be more accurate in some cases, but is most important for the new trait solver which delays relating aliases to `AliasRelate` goals. Without this, we always basically just return true when passing aliases to `can_eq`, which can lead to weird errors, for example #127149. I'm not actually certain if we should *have* `can_eq` be called on the good path. In cases where we need `can_eq`, we probably should just be using a regular probe. Fixes #127149 r? lcnr
2024-07-07Auto merge of #127385 - weihanglo:update-cargo, r=weihanglobors-0/+0
Update cargo 20 commits in a515d463427b3912ec0365d106791f88c1c14e1b..154fdac39ae9629954e19e9986fd2cf2cdd8d964 2024-07-02 20:53:36 +0000 to 2024-07-07 01:28:23 +0000 - test: relax redactions for rust-lang/rust (rust-lang/cargo#14203) - use "bootstrap" instead of "rustbuild" (rust-lang/cargo#14207) - test: migrate serveral files to snapbox (rust-lang/cargo#14180) - Add rustdocflags to Unit's Debug impl (rust-lang/cargo#14201) - Allow enabling `config-include` feature in config (rust-lang/cargo#14196) - fix(test): Restore `does_not_contain` for check (rust-lang/cargo#14198) - test: migrate patch, pkgid, proc_macro and progress to snapbox (rust-lang/cargo#14181) - test: Migrate jobserver to snapbox (rust-lang/cargo#14191) - chore(deps): update msrv (3 versions) to v1.77 (rust-lang/cargo#14186) - test: migrate build_plan and build_script to snapbox (rust-lang/cargo#14193) - test: migrate cfg and check to snapbox (rust-lang/cargo#14185) - test: migrate install* and inheritable_workspace_fields to snapbox (rust-lang/cargo#14170) - Pass rustflags to artifacts built with implicit targets when using target-applies-to-host (rust-lang/cargo#13900) - test: Migrate network tests to snapbox (rust-lang/cargo#14187) - test: migrate some files to snapbox (rust-lang/cargo#14113) - test: Auto-redact `... after last build at ...`; Migrate `freshness` to Snapbox (rust-lang/cargo#14161) - chore: fix some typos (rust-lang/cargo#14182) - fix: improve message for inactive weak optional feature with edition2024 through unused dep collection (rust-lang/cargo#14026) - test:migrate `doc/directory/docscrape` to snapbox (rust-lang/cargo#14171) - test: Migrate git_auth to snapbox (rust-lang/cargo#14172)
2024-07-07Fixup a typo in a comment in a testMaybe Lapkin-1/+1
2024-07-07Fixup conflict with r-l/r/126567Maybe Lapkin-1/+1
2024-07-07Auto merge of #127454 - matthiaskrgr:rollup-k3vfen2, r=matthiaskrgrbors-134/+190
Rollup of 8 pull requests Successful merges: - #127179 (Print `TypeId` as hex for debugging) - #127189 (LinkedList's Cursor: method to get a ref to the cursor's list) - #127236 (doc: update config file path in platform-support/wasm32-wasip1-threads.md) - #127297 (Improve std::Path's Hash quality by avoiding prefix collisions) - #127308 (Attribute cleanups) - #127354 (Describe Sized requirements for mem::offset_of) - #127409 (Emit a wrap expr span_bug only if context is not tainted) - #127447 (once_lock: make test not take as long in Miri) r? `@ghost` `@rustbot` modify labels: rollup
2024-07-07Fix conflicts after rebaseMaybe Lapkin-5/+10
- r-l/r 126784 - r-l/r 127113 - r-l/miri 3562
2024-07-07add an assertion that machine hook doesn't return NoCleanupMaybe Lapkin-3/+5
2024-07-07Do renames proposed by reviewMaybe Waffle-9/+9
2024-07-07make `StackPop` field names less confusingMaybe Waffle-31/+39
2024-07-07doc fixups from reviewMaybe Waffle-9/+7
2024-07-07add miri tests and a fixmeMaybe Waffle-0/+112
2024-07-07Refactor & fixup interpreter implementation of tail callsMaybe Waffle-70/+162
2024-07-07Finish uplifting supertraitsMichael Goulet-16/+3
2024-07-07Get rid of the redundant elaboration in middleMichael Goulet-100/+40
2024-07-07Uplift elaborationMichael Goulet-369/+437
2024-07-07Make push_outlives_components into a visitorMichael Goulet-231/+119
2024-07-07Add support for `mir::TerminatorKind::TailCall` in clippyMaybe Waffle-1/+2
2024-07-07Fix unconditional recursion lint wrt tail callsMaybe Waffle-2/+58
2024-07-07Refactor common part of evaluating `Call`&`TailCall` in the interpreterMaybe Waffle-63/+56
2024-07-07Support tail calls in the interpreterMaybe Waffle-1/+281
2024-07-07Properly handle drops for tail callsDrMeepster-18/+1443
2024-07-07Support tail calls in mir via `TerminatorKind::TailCall`Maybe Waffle-88/+328
2024-07-07Get rid of trait_ref_is_knowable from delegateMichael Goulet-21/+4
2024-07-07Uplift trait_ref_is_knowable and friendsMichael Goulet-458/+508
2024-07-07Add fundamental to trait defMichael Goulet-2/+9
2024-07-07Update cargoWeihang Lo-0/+0
2024-07-07Auto merge of #127455 - Nilstrieb:blazing-tidy, r=jieyouxubors-27/+31
Make tidy problematic const checking fast again fixes pathological tidy performance described in #127453 by reverting #127428 i think anyone can approve this ASAP, it makes working on this repo significantly worse.
2024-07-07rustdoc-json: add trait/type alias testsschvv31n-0/+33
2024-07-07Add note about performance of tidy problematic constsNilstrieb-0/+3
2024-07-07Revert "remove regexes"Nilstrieb-27/+28
This reverts commit 8d8504300fe7ad9b20a7690cce8025290847f155. The regexes are important for performance.
2024-07-07Rollup merge of #127447 - RalfJung:once_lock_miri, r=joboetMatthias Krüger-6/+13
once_lock: make test not take as long in Miri Allocating 1000 list elements takes a while (`@zachs18` reported >5min), so let's reduce the iteration count when running in Miri. Unfortunately due to this clever `while let i @ 0..LEN =` thing, the count needs to be a constants, and constants cannot be shadowed, so we need to use another trick to hide the `cfg!(miri)` from the docs. (I think this loop condition may be a bit too clever, it took me a bit to decipher. Ideally this would be `while let i = ... && i < LEN`, but that is not stable yet.)
2024-07-07Rollup merge of #127409 - gurry:127332-ice-with-expr-not-struct, r=oli-obkMatthias Krüger-10/+27
Emit a wrap expr span_bug only if context is not tainted Fixes #127332 The ICE occurs because of this `span_bug`: https://github.com/rust-lang/rust/blob/51917e2e69702e5752bce6a4f3bfd285d0f4ae39/compiler/rustc_hir_typeck/src/expr_use_visitor.rs#L732-L738 which is triggered by the fact that we're trying to use an `enum` in a `with` expression instead of a `struct`. The issue originates in commit https://github.com/rust-lang/rust/pull/127202/commits/814bfe9335fd7c941169e0ef15ae2cffeacc78eb from PR #127202. As per the title of that commit the ICEing code should not be reachable any more, but looks like it still is. This PR changes the code so that the `span_bug` will be emitted only if the context is not tainted by a previous error.