pub struct SortEncodingCtxt {
    tuples: UnordSet<usize>,
    adt_sorts: FxIndexSet<DefId>,
    user_sorts: FxIndexSet<FluxDefId>,
}Expand description
Keep track of all the data sorts that we need to define in fixpoint to encode the constraint.
Fields§
§tuples: UnordSet<usize>Set of all the tuple arities that need to be defined
adt_sorts: FxIndexSet<DefId>Set of all the AdtDefSortDef that need to be declared as
Fixpoint data-decls
user_sorts: FxIndexSet<FluxDefId>Set of all opaque types that need to be defined
Implementations§
Source§impl SortEncodingCtxt
 
impl SortEncodingCtxt
pub fn sort_to_fixpoint(&mut self, sort: &Sort) -> Sort
fn func_sort_to_fixpoint(&mut self, fsort: &PolyFuncSort) -> Sort
fn declare_tuple(&mut self, arity: usize)
pub fn declare_opaque_sort(&mut self, def_id: FluxDefId)
pub fn declare_adt(&mut self, did: DefId) -> AdtId
pub fn user_sorts_to_fixpoint( &mut self, genv: GlobalEnv<'_, '_>, ) -> Vec<SortDecl> ⓘ
fn append_adt_decls( &mut self, genv: GlobalEnv<'_, '_>, decls: &mut Vec<DataDecl>, ) -> QueryResult
fn append_tuple_decls(tuples: &UnordSet<usize>, decls: &mut Vec<DataDecl>)
pub fn encode_data_decls( &mut self, genv: GlobalEnv<'_, '_>, ) -> QueryResult<Vec<DataDecl>>
Trait Implementations§
Source§impl Default for SortEncodingCtxt
 
impl Default for SortEncodingCtxt
Source§fn default() -> SortEncodingCtxt
 
fn default() -> SortEncodingCtxt
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for SortEncodingCtxt
impl RefUnwindSafe for SortEncodingCtxt
impl Send for SortEncodingCtxt
impl Sync for SortEncodingCtxt
impl Unpin for SortEncodingCtxt
impl UnwindSafe for SortEncodingCtxt
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more