pub struct FuncInfo {
pub inline: bool,
pub hide: bool,
pub rank: usize,
pub uif: bool,
}Expand description
This type represents what we know about a flux-def after normalization, i.e. after “inlining” all or some transitively called flux-defs.
- When
FLUX_SMT_DEFINE_FUN=1is set we inline all polymorphic flux-defs, since they cannot be represented asdefine-funin SMTLIB but leave all monomorphic flux-defs un-inlined. - When the above flag is not set, we replace every flux-def with its (transitively) inlined body
Fields§
§inline: boolWhether or not this function is inlined (i.e. NOT represented as define-fun).
This value is irrelevant of UIFs.
hide: boolWhether or not this function is uninterpreted by default This value is irrelevant of UIFs.
rank: usizeThe rank of this function in the topological sort of all the flux-defs, needed so
we can specify the define-fun in the correct order, without any “forward”
dependencies which the SMT solver cannot handle.
uif: boolWhether the function is a UIF
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FuncInfo
impl RefUnwindSafe for FuncInfo
impl Send for FuncInfo
impl Sync for FuncInfo
impl Unpin for FuncInfo
impl UnwindSafe for FuncInfo
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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