summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src/solve
AgeCommit message (Collapse)AuthorLines
2025-03-23Obligation::as_goalMichael Goulet-7/+7
2025-03-15Fold visit into tyMichael Goulet-2/+1
2025-03-15Squash fold into tyMichael Goulet-2/+1
2025-03-05change definitely non-productive cycles to errorlcnr-1/+1
2025-03-01Rollup merge of #137776 - nnethercote:rustc_transmute-cleanups, r=jswrennMatthias Krüger-8/+4
Some `rustc_transmute` cleanups A number of small things that can be removed. r? ``@jswrenn``
2025-02-28normalizing where-clauses is also coinductive, add testslcnr-1/+4
2025-02-28Remove `allow(unused_variables)` for `rustc_transmute`.Nicholas Nethercote-8/+4
This was hiding some genuine sins, including unused arguments in numerous functions/methods (incl. trait methods), and some unnecessary computation.
2025-02-28Remove `rustc_transmute`'s dependence on `rustc_infer`.Nicholas Nethercote-1/+1
`TransmuteTypeEnv` only needs a `TyCtxt`, not an `InferCtxt`.
2025-02-22Greatly simplify lifetime captures in edition 2024Michael Goulet-3/+1
2025-02-22Fix binding mode problemsMichael Goulet-1/+3
2025-02-19Make fewer crates depend on rustc_ast_irMichael Goulet-2/+1
2025-02-13adjust derive_errorlcnr-25/+103
2025-02-13normalizes-to rework rigid alias handlinglcnr-4/+1
2025-02-08Rustfmtbjorn3-19/+20
2025-02-05Pass spans around new solverMichael Goulet-12/+22
2025-02-05Remove span from delegateMichael Goulet-2/+0
2025-01-31Manually walk into WF obligations in BestObligation proof tree visitorMichael Goulet-56/+95
2025-01-31Move fulfillment error derivation into new moduleMichael Goulet-490/+505
2025-01-30introduce `ty::Value`Lukas Markeffsky-1/+1
Co-authored-by: FedericoBruzzone <federico.bruzzone.i@gmail.com>
2025-01-22Don't pick `T: FnPtr` nested goalsBoxy-2/+21
2025-01-15Rollup merge of #135498 - compiler-errors:dyn-upcasting-completeness, r=lcnrGuillaume Gomez-0/+4
Prefer lower `TraitUpcasting` candidates in selection Fixes #135463. The underlying cause is this ambiguity, but it's more clear (and manifests as a coercion error, rather than a MIR validation error) when it's written the way I did in the UI test. Sorry this is cursed r? lcnr
2025-01-14Make sure we can produce ConstArgHasWrongType errors for valtree constsMichael Goulet-2/+3
2025-01-14Prefer lower TraitUpcasting candidatesMichael Goulet-0/+4
2025-01-06Rollup merge of #132345 - compiler-errors:fx-diag, r=lcnrJacob Pratt-4/+75
Improve diagnostics for `HostEffectPredicate` in the new solver Adds derived cause for host effect predicates. Some diagnostics regress, but that's connected to the fact that our predicate visitor doesn't play well with aliases just yet.
2025-01-06Rollup merge of #134771 - compiler-errors:const-arg-has-type-err, r=lcnrMatthias Krüger-1/+18
Report correct `SelectionError` for `ConstArgHasType` in new solver fulfill r? ``@BoxyUwU``
2025-01-06Recurse on GAT where clauses in fulfillment error proof tree visitorMichael Goulet-5/+9
2025-01-06Add derived causes for host effect predicatesMichael Goulet-3/+70
2025-01-03Also in the new solverMichael Goulet-3/+2
2024-12-25Report correct SelectionError for ConstArgHasType in new solver fulfillMichael Goulet-1/+18
2024-12-20remove non-borrowck member constraintslcnr-2/+0
2024-12-02Assert that obligations are empty before deeply normalizingMichael Goulet-0/+4
2024-11-28support revealing defined opaque post borrowcklcnr-1/+3
2024-11-26do not constrain infer vars in `find_best_leaf_obligation`lcnr-4/+13
2024-11-23Auto merge of #133242 - lcnr:questionable-uwu, r=compiler-errors,BoxyUwUbors-1/+1
finish `Reveal` removal After #133212 changed the `TypingMode` to be the only source of truth, this entirely rips out `Reveal`. cc #132279 r? `@compiler-errors`
2024-11-23no more Reveal :(lcnr-1/+1
2024-11-23Remove unnecessary bool from ExpectedFoundMichael Goulet-2/+2
2024-11-12Consolidate type system const evaluation under `traits::evaluate_const`Boxy-12/+11
mew
2024-10-29TypingMode :thinking:lcnr-15/+9
2024-10-22remove unused fieldlcnr-1/+1
2024-10-17Rollup merge of #131825 - lcnr:probe-no-more-leak-2, r=compiler-errorsMatthias Krüger-0/+1
SolverDelegate add assoc type for Infcx makes writing trait bounds on it a lot nicer going forward. r? `@compiler-errors`
2024-10-17SolverDelegate add assoc type for Infcxlcnr-0/+1
2024-10-17move `defining_opaque_types` out of `Canonical`lcnr-2/+2
2024-10-16Rollup merge of #131699 - compiler-errors:better-errors-for-projections, r=lcnrMatthias Krüger-12/+22
Try to improve error messages involving aliases in the solver 1. Treat aliases as rigid only if it may not be defined and it's well formed (i.e. for projections, its trait goal is satisfied). 2. Record goals that are related to alias normalization under a new `GoalKind`, so we can look into them in the `BestObligation` visitor. 3. Try to deduplicate errors due to self types of goals that are un-normalizable aliases. r? lcnr
2024-10-15Be better at reporting alias errorsMichael Goulet-5/+21
2024-10-15Always recurse on predicates in BestObligationMichael Goulet-7/+1
2024-10-12Swap PredicateObligation to ThinVecGnomedDev-1/+3
2024-10-12Swap Vec<PredicateObligation> to type aliasGnomedDev-10/+7
2024-10-11remove outdated FIXMEslcnr-0/+2
2024-10-10impossible obligations check fast pathlcnr-7/+8
2024-09-25Compiler: Rename "object safe" to "dyn compatible"León Orell Valerian Liehr-1/+1