| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
More restrictive 2 phase borrows - take 2
Signal lint diagnostic `mutable_borrow_reservation_conflict` when borrow-check finds a 2-phase borrow's reservation overlapping with a shared borrow.
(pnkfelix updated description)
cc #56254 , #59159
blocks PR #59114
r? @pnkfelix
cc @RalfJung @nikomatsakis
|
|
Move match_path from DefId to lint::LateContext
cc https://github.com/rust-lang/rust/pull/59316#discussion_r272351353
r? @eddyb
|
|
Remove no_force from coherent_trait
r? @michaelwoerister
|
|
|
|
|
|
Get us back below 100 characters per line to placate tidy.
|
|
We aren't sure if this will become an error or not yet.
|
|
Convert the new 2-phase reservation errors into instances of the lint
so that they will be controlled by that attribute.
|
|
|
|
Move query definitions over to the proc macro
r? @oli-obk
|
|
Reduce repetition in librustc(_lint) wrt. impl LintPass by using macros
r? @oli-obk
cc @Zoxc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shrink `mir::Statement`.
The `InlineAsm` variant is extremely rare, and `mir::Statement` often
contributes significantly to peak memory usage.
|
|
Remove adt_def from projections and downcasts in MIR
As part of optimizing generator layouts in MIR, we'd like to allow downcasting generators to variants which do not have a corresponding `def_id`, since they are created by the compiler.
This refactor hopes to allow that, without regressing perf.
r? @eddyb
|
|
The `InlineAsm` variant is extremely rare, and `mir::Statement` often
contributes significantly to peak memory usage.
|
|
|
|
|
|
r=oli-obk
Renames `EvalErrorKind` to `InterpError`
This PR renames `EvalErrorKind` to `InterpError`.
This is related to #54395.
|
|
async fn now lowers directly to an existential type declaration
rather than reusing the `impl Trait` return type lowering.
As part of this, it lowers all argument-position elided lifetimes
using the in-band-lifetimes machinery, creating fresh parameter
names for each of them, using each lifetime parameter as a generic
argument to the generated existential type.
This doesn't currently successfully allow multiple
argument-position elided lifetimes since `existential type`
doesn't yet support multiple lifetimes where neither outlive
the other. This requires a separate fix.
|
|
|
|
Suggest using anonymous lifetime in `impl Trait` return
Fix #48467.
r? @nikomatsakis
|
|
Add a -Z time option which prints only passes which runs once
This ensures `-Z time-passes` fits on my screen =P
r? @michaelwoerister
|
|
Stabilize refcell_replace_swap feature
Please be kind, this is my first time contributing. :smile:
I noticed #43570 only needs stabilizing (and I need it for a side project I'm working on), so I followed the [guide](https://rust-lang.github.io/rustc-guide/stabilization_guide.html#stabilization-pr) to move things forward.
I'm happy to amend things if needed, let me know!
|
|
Allow closure to unsafe fn coercion
Closes #57883
|
|
rustc_target: factor out common fields of non-Single Variants.
@tmandry and I were discussing ways to generalize the current variants/discriminant layout to allow more fields in the "`enum`" (or another multi-variant types, such as potentially generator state, in the future), shared by all variants, than just the tag/niche discriminant.
This refactor should make it easier to extend multi-variant layouts, as nothing is duplicating anymore between "tagged enums" and "niche-filling enums".
r? @oli-obk
|
|
Fallback to `static_impl_trait` for nice error message by peeking at the
return type and the lifetime type. Point at the return type instead of
the return expr/stmt in NLL mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-authored-by: Stephan Schauerte <stephan.schauerte@gmail.com>
|
|
|
|
rustc(codegen): uncache `def_symbol_name` prefix from `symbol_name`.
The `def_symbol_name` query was an optimization to avoid recomputing the common part of a symbol name, as only the hash needs to be added to it for each symbol.
However, #57967 will add a new mangling scheme, which doesn't readily support this kind of reuse - while it's plausible, it requires a lot more effort, since you'd have to "symbolically evaluate" mangling, and keep it in a form where the backreference positions can be computed correctly in the final step.
So I want to see how much time we're actually saving with this `def_symbol_name` optimization, nowadays.
cc @michaelwoerister
|
|
r=petrochenkov,QuietMisdreavus
RFC 2008: Enum Variants
Part of #44109. See [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/rfc-2008/near/132663140) for previous discussion.
r? @petrochenkov
cc @nikomatsakis
|
|
|
|
Rename `type_parameters` to `generics` and so on
Some old variable names had fallen through the generics generalisation pull requests.
|