| Age | Commit message (Collapse) | Author | Lines |
|
Make `unsizing_params_for_adt` into a query
Addresses a FIXME in confirmation.
r? ``@ghost``
|
|
Skip possible where_clause_object_safety lints when checking `multiple_supertrait_upcastable`
Fix #106247
To achieve this, I lifted the `WhereClauseReferencesSelf` out from `object_safety_violations` and move it into `is_object_safe` (which is changed to a new query).
cc `@dtolnay`
r? `@compiler-errors`
|
|
|
|
Remove HirId -> LocalDefId map from HIR.
Having this map in HIR prevents the creating of new definitions after HIR has been built.
Thankfully, we do not need it.
Based on https://github.com/rust-lang/rust/pull/103902
|
|
|
|
|
|
|
|
|
|
compiler-errors:correct-sugg-for-closure-arg-needs-borrow, r=oli-obk
Correct suggestions for closure arguments that need a borrow
Fixes #107301 by dealing with binders correctly
Fixes another issue where we were suggesting adding just `&` when we expected `&mut _` in a closure arg
|
|
Use new solver in `evaluate_obligation` query (when new solver is enabled)
(only when `-Ztrait-solver=next`, of course)
... Does this make sense? It seems to me like it should be reasonable, but maybe there's some reason why this is a bad idea.
r? ``@lcnr``
Needs a perf run because I guess this `solver == TraitSolver::Next` check is on a hot path.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Switch to `EarlyBinder` for `fn_sig` query
Part of the work to finish #105779 (also see https://github.com/rust-lang/types-team/issues/78).
Several queries `X` have a `bound_X` variant that wraps the output in [`EarlyBinder`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/subst/struct.EarlyBinder.html). This adds `EarlyBinder` to the return type of the `fn_sig` query and removes `bound_fn_sig`.
r? `@lcnr`
|
|
EarlyBinder to fn_sig in metadata
|
|
|
|
|
|
Implement ObjectSafe and WF in the new solver
r? ``@lcnr``
|
|
|
|
Tweak E0597
CC #99430
|
|
|
|
|
|
use `LocalDefId` instead of `HirId` in trait resolution to simplify the obligation clause resolution
This commit introduces a refactoring suggested by `@lcnr` to simplify the obligation clause resolution.
This is just the first PR that introduces a type of refactoring, but others PRs will follow this to introduce name changing to change from the variable name from `body_id` to something else.
Fixes https://github.com/rust-lang/rust/issues/104827
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
`@rustbot` r? `@lcnr`
|
|
|
|
use LocalDefId instead of HirId in trait resolution to simplify
the obligation clause resolution
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
|
|
Filter param-env predicates for errors before calling `to_opt_poly_trait_pred`
cc #106309 https://github.com/rust-lang/rust/pull/106757#issuecomment-1396616318
r? `@ghost`
|
|
|
|
Check ADT fields for copy implementations considering regions
Fixes #88901
r? `@ghost`
|
|
Rollup of 6 pull requests
Successful merges:
- #106699 ([drop tracking] Visit break expressions )
- #106738 (Fix known-bug annotations)
- #106891 (Tweak "borrow closure argument" suggestion)
- #106928 (add raw identifier for keyword in suggestion)
- #107065 (Clippy: Make sure to include in beta: Move `unchecked_duration_subtraction` to pedantic)
- #107068 (autoderive Subdiagnostic for AddtoExternBlockSuggestion)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Rollup of 8 pull requests
Successful merges:
- #106783 (Recover labels written as identifiers)
- #106973 (Don't treat closures from other crates as local)
- #106979 (Document how to get the type of a default associated type)
- #107053 (signal update string representation for haiku.)
- #107058 (Recognise double-equals homoglyph)
- #107067 (Custom MIR: Support storage statements)
- #107076 (Added const-generic ui test case for issue #106419)
- #107091 (Fix broken format strings in `infer.ftl`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Tweak "borrow closure argument" suggestion
Fix #45727.
|
|
Don't treat closures from other crates as local
fixes #104817
r? `@lcnr`
Specialization can prefer an impl for an opaque type over a blanket impls that also matches. If the blanket impl only applies if an auto-trait applies, we look at the hidden type of the opaque type to see if that implements the auto trait. The hidden type can be a closure or generator, and thus we will end up seeing these types in coherence and have to handle them properly.
|
|
Remove some `ref` patterns from the compiler
Previous PR: https://github.com/rust-lang/rust/pull/105368
r? `@Nilstrieb`
|
|
|
|
Fix #45727.
|
|
|
|
|
|
Switching them to `Break(())` and `Continue(())` instead.
libs-api would like to remove these constants, so stop using them in compiler to make the removal PR later smaller.
|
|
Switch to `EarlyBinder` for `item_bounds` query
Part of the work to finish #105779 (also see https://github.com/rust-lang/types-team/issues/78).
Several queries `X` have a `bound_X` variant that wraps the output in `EarlyBinder`. This adds `EarlyBinder` to the return type of the `item_bounds` query and removes `bound_item_bounds`.
r? `@lcnr`
|
|
Remove double spaces after dots in comments
Most of the comments do not have double spaces, so I assume these are typos.
|
|
|
|
|
|
|
|
|
|
|
|
CC #99430
|