about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/traits/solve.rs
AgeCommit message (Collapse)AuthorLines
2025-09-26predefined opaques use `List`lcnr-43/+2
2025-06-13Don't fold ExternalConstraintsData when it's emptyMichael Goulet-0/+14
2025-03-15Fold visit into tyMichael Goulet-1/+1
2025-02-19Make fewer crates depend on rustc_ast_irMichael Goulet-1/+1
2024-07-12enable fuzzing of `SearchGraph`lcnr-4/+0
fully move it into `rustc_type_ir` and make it independent of `Interner`.
2024-06-21Rename a bunch of thingsMichael Goulet-12/+10
2024-06-18Uplift PredefinedOpaquesDataMichael Goulet-9/+3
2024-06-18Make SearchGraph fully genericMichael Goulet-1/+1
2024-06-16Uplift ExternalConstraintDataMichael Goulet-24/+5
2024-06-16Make ExternalConstraints just carry outlivesMichael Goulet-2/+1
2024-06-06Make middle not rely on next_trait_solverMichael Goulet-2/+2
2024-05-18Uplift inspect into rustc_type_irMichael Goulet-154/+7
2024-05-18Uplift GenericArgKind, CanonicalVarValues, QueryInputMichael Goulet-31/+5
and make NestedGoals generic
2024-05-16Uplift Goal to rustc_type_irMichael Goulet-27/+2
2024-05-16Rename ToPredicate for UpcastMichael Goulet-6/+6
2024-05-02Higher ranked goal source, do overflow handling less badlyMichael Goulet-0/+2
2024-04-30Rollup merge of #124511 - nnethercote:rm-extern-crates, r=fee1-deadMatthias Krüger-0/+1
Remove many `#[macro_use] extern crate foo` items This requires the addition of more `use` items, which often make the code more verbose. But they also make the code easier to read, because `#[macro_use]` obscures where macros are defined. r? `@fee1-dead`
2024-04-29Actually use probes when needed and stop relying on existing outer probesMichael Goulet-0/+5
2024-04-29Remove `extern crate rustc_macros` from `rustc_middle`.Nicholas Nethercote-0/+1
2024-04-08Pass list of defineable opaque types into canonical queriesOli Scherer-2/+1
2024-03-18cleanup + reviewlcnr-6/+0
2024-03-18`NormalizesTo` return nested goalslcnr-2/+21
2024-03-11Make `DefiningAnchor::Bind` only store the opaque types that may be ↵Oli Scherer-1/+1
constrained, instead of the current infcx root item. This makes `Bind` almost always be empty, so we can start forwarding it to queries, allowing us to remove `Bubble` entirely
2024-03-05Convert `TypeVisitor` and `DefIdVisitor` to use `VisitorResult`Jason Newcomb-14/+6
2024-02-29distinguish recursion limit based overflow for diagnosticslcnr-10/+20
also change the number of allowed fixpoint steps to be fixed instead of using the `log` of the total recursion depth.
2023-12-18dont discard overflow from normalizes-to goalslcnr-0/+3
2023-12-18track the source of nested goalslcnr-0/+18
2023-09-11inspect: strongly typed CandidateKindlcnr-0/+63
2023-08-04Rollup merge of #114287 - lcnr:overflow, r=compiler-errorsMichael Goulet-2/+2
update overflow handling in the new trait solver implements https://hackmd.io/QY0dfEOgSNWwU4oiGnVRLw?view. I want to clean up this doc and add it to the rustc-dev-guide, but I think this PR is ready for merge as is, even without the dev-guide entry. r? `@compiler-errors`
2023-08-03resolve before canonicalization, ICE if unresolvedMichael Goulet-1/+1
2023-08-03rewrite stack dependent overflow handlinglcnr-2/+2
2023-07-28refactor builtin unsize handling, extend commentslcnr-1/+2
2023-06-20cleanup importslcnr-0/+6
2023-06-19initial info dumpBoxy-9/+11
2023-05-25Prepopulate opaques in canonical inputMichael Goulet-3/+64
2023-05-10Use OpaqueTypeKey in query responseMichael Goulet-1/+1
2023-04-26Remove unused `TypeFoldable`/`TypeVisitable` impls.Nicholas Nethercote-1/+1
2023-04-10Rollup merge of #110124 - Nilstrieb:📎-told-me-so, r=compiler-errorsDylan DPC-1/+1
Some clippy fixes in the compiler Best reviewed commit-by-commit 📎.
2023-04-10review + some small stufflcnr-3/+13
2023-04-09Fix some clippy::complexityNilstrieb-1/+1
2023-04-05Tweak debug outputs to make debugging new solver easierMichael Goulet-2/+2
2023-03-21woopslcnr-1/+1
2023-03-21new solver cleanup + coherencelcnr-6/+5
2023-03-10Move some solver stuff to middleMichael Goulet-2/+94
2023-03-03canonicalizationlcnr-5/+11
2023-02-24Rename many interner functions.Nicholas Nethercote-11/+9
(This is a large commit. The changes to `compiler/rustc_middle/src/ty/context.rs` are the most important ones.) The current naming scheme is a mess, with a mix of `_intern_`, `intern_` and `mk_` prefixes, with little consistency. In particular, in many cases it's easy to use an iterator interner when a (preferable) slice interner is available. The guiding principles of the new naming system: - No `_intern_` prefixes. - The `intern_` prefix is for internal operations. - The `mk_` prefix is for external operations. - For cases where there is a slice interner and an iterator interner, the former is `mk_foo` and the latter is `mk_foo_from_iter`. Also, `slice_interners!` and `direct_interners!` can now be `pub` or non-`pub`, which helps enforce the internal/external operations division. It's not perfect, but I think it's a clear improvement. The following lists show everything that was renamed. slice_interners - const_list - mk_const_list -> mk_const_list_from_iter - intern_const_list -> mk_const_list - substs - mk_substs -> mk_substs_from_iter - intern_substs -> mk_substs - check_substs -> check_and_mk_substs (this is a weird one) - canonical_var_infos - intern_canonical_var_infos -> mk_canonical_var_infos - poly_existential_predicates - mk_poly_existential_predicates -> mk_poly_existential_predicates_from_iter - intern_poly_existential_predicates -> mk_poly_existential_predicates - _intern_poly_existential_predicates -> intern_poly_existential_predicates - predicates - mk_predicates -> mk_predicates_from_iter - intern_predicates -> mk_predicates - _intern_predicates -> intern_predicates - projs - intern_projs -> mk_projs - place_elems - mk_place_elems -> mk_place_elems_from_iter - intern_place_elems -> mk_place_elems - bound_variable_kinds - mk_bound_variable_kinds -> mk_bound_variable_kinds_from_iter - intern_bound_variable_kinds -> mk_bound_variable_kinds direct_interners - region - intern_region (unchanged) - const - mk_const_internal -> intern_const - const_allocation - intern_const_alloc -> mk_const_alloc - layout - intern_layout -> mk_layout - adt_def - intern_adt_def -> mk_adt_def_from_data (unusual case, hard to avoid) - alloc_adt_def(!) -> mk_adt_def - external_constraints - intern_external_constraints -> mk_external_constraints Other - type_list - mk_type_list -> mk_type_list_from_iter - intern_type_list -> mk_type_list - tup - mk_tup -> mk_tup_from_iter - intern_tup -> mk_tup
2023-02-22Remove type-traversal trait aliasesAlan Egerton-7/+9
2023-02-13Rename folder traits' `tcx` method to `interner`Alan Egerton-2/+2
2023-02-13Make folding traits generic over the InternerAlan Egerton-1/+1
2023-02-13Make visiting traits generic over the InternerAlan Egerton-2/+2