Expand description
Code shared by trait and projection goals for candidate assembly.
Re-exportsΒ§
use std::cell::Cell;πuse std::ops::ControlFlow;πuse derive_where::derive_where;πuse rustc_type_ir::lang_items::SolverTraitLangItem;πuse rustc_type_ir::search_graph::CandidateHeadUsages;πuse rustc_type_ir::solve::AliasBoundKind;πuse rustc_type_ir::solve::MaybeInfo;πuse rustc_type_ir::solve::NoSolutionOrRerunNonErased;πuse rustc_type_ir::solve::QueryResultOrRerunNonErased;πuse rustc_type_ir::solve::RerunNonErased;πuse rustc_type_ir::solve::RerunReason;πuse rustc_type_ir::solve::RerunResultExt;πuse rustc_type_ir::solve::SizedTraitKind;πuse rustc_type_ir::solve::StalledOnCoroutines;πuse rustc_type_ir as ty;πuse rustc_type_ir::AliasTy;πuse rustc_type_ir::Const;πuse rustc_type_ir::Interner;πuse rustc_type_ir::MayBeErased;πuse rustc_type_ir::Region;πuse rustc_type_ir::TypeFlags;πuse rustc_type_ir::TypeFoldable;πuse rustc_type_ir::TypeFolder;πuse rustc_type_ir::TypeSuperFoldable;πuse rustc_type_ir::TypeSuperVisitable;πuse rustc_type_ir::TypeVisitable;πuse rustc_type_ir::TypeVisitableExt;πuse rustc_type_ir::TypeVisitor;πuse rustc_type_ir::TypingMode;πuse rustc_type_ir::Unnormalized;πuse rustc_type_ir::Upcast;πuse rustc_type_ir::elaborate;πuse tracing::debug;πuse tracing::instrument;πuse tracing::instrument;πuse super::trait_goals::TraitGoalProvenVia;πuse super::has_only_region_constraints;πuse super::inspect;πuse crate::delegate::SolverDelegate;πuse crate::solve::assembly::structural_traits::AmbiguousOrRerunNonErased;πuse crate::solve::inspect::ProbeKind;πuse crate::solve::BuiltinImplSource;πuse crate::solve::CandidateSource;πuse crate::solve::CanonicalResponse;πuse crate::solve::Certainty;πuse crate::solve::EvalCtxt;πuse crate::solve::Goal;πuse crate::solve::GoalSource;πuse crate::solve::MaybeCause;πuse crate::solve::NoSolution;πuse crate::solve::OpaqueTypesJank;πuse crate::solve::ParamEnvSource;πuse crate::solve::QueryResult;πuse crate::solve::has_no_inference_or_external_constraints;πuse rustc_type_ir::inherent::*;π
ModulesΒ§
- structural_
traits π - Code which is used by built-in goals that match βstructurallyβ, such a auto
traits,
Copy/Clone.
StructsΒ§
- Candidate π
- A candidate is a possible way to prove a goal.
- Failed
Candidate πInfo - This is currently used to track the CandidateHeadUsages of all failed
ParamEnvcandidates. This is then used to ignore their head usages in case thereβs another always applicableParamEnvcandidate. Look at howparam_env_head_usagesis used in the code for more details. - Find
Param πInClause
EnumsΒ§
- Allow
Inference πConstraints - Assemble
Candidates πFrom - Allows callers of
assemble_and_evaluate_candidatesto choose whether to limit candidate assembly to param-env and alias-bound candidates.
TraitsΒ§
- Goal
Kind π - Methods used to assemble candidates for either trait or projection goals.