about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src/traits/chalk_fulfill.rs
AgeCommit message (Collapse)AuthorLines
2023-07-03Remove chalk from the compilerMichael Goulet-149/+0
2023-06-29change snapshot tracking in fulfillment contextslcnr-20/+18
2023-04-10Report overflows gracefully with new solverMichael Goulet-2/+5
2023-02-22Remove type-traversal trait aliasesAlan Egerton-1/+1
2023-01-27Compute generator saved locals on MIR.Camille GILLOT-0/+7
2023-01-27Separate trait selection from ambiguity reporting.Camille GILLOT-9/+1
2023-01-22Store relationships on InherentSantiago Pastorino-15/+3
2022-11-24Remove normalize_projection_typeSantiago Pastorino-13/+3
2022-11-10Use TraitEngine in more places, make FulfillmentCtxt constructor more privateMichael Goulet-1/+1
2022-11-08selection failure: recompute applicable implslcnr-2/+13
2022-10-07Remove TypeckResults from InferCtxtCameron Steffen-7/+4
2022-07-06Update TypeVisitor pathsAlan Egerton-1/+1
2022-05-20Remove `crate` visibility usage in compilerJacob Pratt-1/+1
2022-02-12Address review commentMatthew Jasper-1/+2
canonicalize_chalk_query -> canonicalize_query_preserving_universes
2022-02-11Renumber universes when canonicalizing for ChalkMatthew Jasper-2/+6
This is required to avoid creating large numbers of universes from each Chalk query, while still having enough universe information for lifetime errors.
2021-12-15Remove `in_band_lifetimes` from `rustc_trait_selection`Sylvan Bowdler-2/+2
2021-11-08fmtDeadbeef-6/+2
2021-11-08Make select_* methods return Vec for TraitEngineDeadbeef-20/+22
2021-09-17Add another case of fallback to () avoid breakageMark Rousskov-2/+13
This adds src/test/ui/never_type/fallback-closure-ret.rs as a test case which showcases the failure mode fixed by this commit.
2021-09-16Refactor `FulfillmentError` to track less dataEsteban Kuber-3/+0
Move the information about pointing at the call argument expression in an unmet obligation span from the `FulfillmentError` to a new `ObligationCauseCode`.
2021-07-16Add initial implementation of HIR-based WF checking for diagnosticsAaron Hill-2/+11
During well-formed checking, we walk through all types 'nested' in generic arguments. For example, WF-checking `Option<MyStruct<u8>>` will cause us to check `MyStruct<u8>` and `u8`. However, this is done on a `rustc_middle::ty::Ty`, which has no span information. As a result, any errors that occur will have a very general span (e.g. the definintion of an associated item). This becomes a problem when macros are involved. In general, an associated type like `type MyType = Option<MyStruct<u8>>;` may have completely different spans for each nested type in the HIR. Using the span of the entire associated item might end up pointing to a macro invocation, even though a user-provided span is available in one of the nested types. This PR adds a framework for HIR-based well formed checking. This check is only run during error reporting, and is used to obtain a more precise span for an existing error. This is accomplished by individually checking each 'nested' type in the HIR for the type, allowing us to find the most-specific type (and span) that produces a given error. The majority of the changes are to the error-reporting code. However, some of the general trait code is modified to pass through more information. Since this has no soundness implications, I've implemented a minimal version to begin with, which can be extended over time. In particular, this only works for HIR items with a corresponding `DefId` (e.g. it will not work for WF-checking performed within function bodies).
2020-11-16compiler: fold by valueBastian Kauschke-4/+4
2020-09-09Remove def_id field from ParamEnvBram van den Heuvel-133/+9
2020-08-30mv compiler to compiler/mark-0/+267