Struct test_generation::transitions::Subst
source · [−]pub struct Subst {
pub subst: HashMap<usize, SignatureToken>,
}Expand description
A substitution is a mapping from type formal index to the SignatureToken representing the
type instantiation for that index.
Fields
subst: HashMap<usize, SignatureToken>Implementations
sourceimpl Subst
impl Subst
pub fn new() -> Self
sourcepub fn check_and_add(
&mut self,
state: &AbstractState,
stack_sig: SignatureToken,
instr_sig: SignatureToken
) -> bool
pub fn check_and_add(
&mut self,
state: &AbstractState,
stack_sig: SignatureToken,
instr_sig: SignatureToken
) -> bool
NB that the position of arguments here matters. We can build a substitution if the instr_sig
is a type parameter, and the stack_sig is a concrete type. But, if the instruction signature is a
concrete type, but the stack signature is a type parameter, they cannot unify and no
substitution is created.
sourcepub fn instantiation(self) -> Vec<SignatureToken>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn instantiation(self) -> Vec<SignatureToken>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Return the instantiation from the substitution that has been built.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Subst
impl Send for Subst
impl Sync for Subst
impl Unpin for Subst
impl UnwindSafe for Subst
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more