[−][src]Crate chalk_ir
Re-exports
pub use crate::debug::SeparatorTraitRef; |
Modules
cast | |
could_match | |
debug | |
debug_macros | |
fold | Traits for transforming bits of IR. |
interner | |
visit | Traits for visiting bits of IR. |
zip |
Macros
const_visit | |
copy_fold | |
debug | |
debug_heading | |
id_fold | |
id_visit | |
info | |
info_heading |
Structs
AdtId | |
AliasEq | Proves equality between an alias and a type. |
AnswerSubst | |
ApplicationTy | |
AssocTypeId | The id for the associated type member of a trait. The details of the type
can be found by invoking the |
Binders | Indicates that the |
BindersIntoIterator | |
BoundVar | Identifies a particular bound variable within a binder.
Variables are identified by the combination of a |
Canonical | Wraps a "canonicalized item". Items are canonicalized as follows: |
CanonicalVarKinds | |
ClauseId | |
ConcreteConst | |
Const | |
ConstData | |
ConstrainedSubst | Combines a substitution ( |
DebruijnIndex | References the binder at the given depth. The index is a de
Bruijn index, so it counts back through the in-scope binders,
with 0 being the innermost binder. This is used in impls and
the like. For example, if we had a rule like |
DynTy | A "DynTy" could be either a |
Environment | The set of assumptions we've made so far, and the current number of universal (forall) quantifiers we're within. |
EqGoal | |
Floundered | Error type for the |
Fn | for<'a...'z> X -- all binders are instantiated at once,
and we use deBruijn indices within |
FnDefId | |
GenericArg | |
Goal | A general goal; this is the full range of questions you can pose to Chalk. |
Goals | A list of goals. |
ImplId | |
InEnvironment | |
InferenceVar | |
Lifetime | |
LifetimeOutlives | |
NoSolution | Indicates that the attempted operation has "no solution" -- i.e., cannot be performed. |
Normalize | Proves that the given type alias normalizes to the given
type. A projection |
OpaqueTy | |
OpaqueTyId | |
PlaceholderIndex | Index of an universally quantified parameter in the environment. Two indexes are required, the one of the universe itself and the relative index inside the universe. |
ProgramClause | |
ProgramClauseImplication | Represents one clause of the form |
ProgramClauses | |
ProjectionTy | |
QuantifiedWhereClauses | |
Substitution | A mapping of inference variables to instantiations thereof. |
TraitId | The id of a trait definition; could be used to load the trait datum by
invoking the |
TraitRef | |
Ty | |
UCanonical | A "universe canonical" value. This is a wrapper around a
|
UniverseIndex | An universe index is how a universally quantified parameter is
represented when it's binder is moved into the environment.
An example chain of transformations would be:
|
UniverseMap | Maps the universes found in the |
VariableKinds | |
WithKind |
Enums
AliasTy | |
ClausePriority | |
ConstValue | |
Constraint | A constraint on lifetimes. |
DomainGoal | A "domain goal" is a goal that is directly about Rust, rather than a pure logical statement. As much as possible, the Chalk solver should avoid decomposing this enum, and instead treat its values opaquely. |
FloatTy | |
FromEnv | |
GenericArgData | |
GoalData | A general goal; this is the full range of questions you can pose to Chalk. |
IntTy | |
LifetimeData | |
Mutability | |
ProgramClauseData | |
QuantifierKind | |
Scalar | |
TyData | |
TyKind | Represents some extra knowledge we may have about the type variable. |
TypeName | |
UintTy | |
VariableKind | |
Void | |
WellFormed | |
WhereClause | Where clauses that can be written by a Rust programmer. |
Traits
AsParameters | |
ToGenericArg |
Type Definitions
CanonicalVarKind | |
Fallible | Many of our internal operations (e.g., unification) are an attempt to perform some operation which may not complete. |
QuantifiedWhereClause |