Skip to main content

Module expr

Module expr 

Source

Modules§

pretty 🔒

Macros§

impl_ops 🔒

Structs§

AliasReft
BoundReft
ESpan
EVid
Existential variable id
EarlyReftParam
Expr
FieldBind
KVar
In theory a kvar is just an unknown predicate that can use some variables in scope. In practice, fixpoint distinguishes a list of leading arguments, the kvar’s self arguments, from the rest, which we call the scope. Fixpoint only instantiates qualifiers whose first parameter is a self argument, so a kvar without self arguments can only be solved to true or false. The number of self arguments is passed to fixpoint with the :self annotation.
KVid
Lambda
A lambda abstraction with an elaborated output sort. We need the output sort of lambdas for encoding into fixpoint
Name
Path
PrettyMap
RawPtrFieldData 🔒
Real
WKVar
A weak kvar is like a kvar with the exception that it infers the weakest condition necessary instead of the strongest condition. Due to the way we generate these kvars (on fn_sigs, rather than during constraint generation), they also in theory are global.
WKVid

Enums§

AggregateKind
BinOp
Constant
Ctor
ExprKind
FieldProj
HoleKind
The position where a hole appears. This determines how it will be inferred. This is related to, but not the same as, an InferMode.
InternalFuncKind
Primitive Properties
Loc
NameProvenance
PrettyVar
QuantDom
RawPtrField
SpecFuncKind
UnOp
Var