pub(crate) struct MaybeTransmutableQuery<L, C>where
    C: QueryContext,{
    src: L,
    dst: L,
    scope: <C as QueryContext>::Scope,
    assume: Assume,
    context: C,
}

Fields§

§src: L§dst: L§scope: <C as QueryContext>::Scope§assume: Assume§context: C

Implementations§

source§

impl<'tcx> MaybeTransmutableQuery<Ty<'tcx>, TyCtxt<'tcx>>

source

pub fn answer(self) -> Answer<Ref<'tcx>>

This method begins by converting src and dst from Tys to Trees, then computes an answer using those trees.

source§

impl<L, C> MaybeTransmutableQuery<L, C>where C: QueryContext,

source

pub(crate) fn new( src: L, dst: L, scope: <C as QueryContext>::Scope, assume: Assume, context: C ) -> Self

source§

impl<C> MaybeTransmutableQuery<Tree<<C as QueryContext>::Def, <C as QueryContext>::Ref>, C>where C: QueryContext,

source

pub(crate) fn answer(self) -> Answer<<C as QueryContext>::Ref>

Answers whether a Tree is transmutable into another Tree.

This method begins by de-def’ing src and dst, and prunes private paths from dst, then converts src and dst to Nfas, and computes an answer using those NFAs.

source§

impl<C> MaybeTransmutableQuery<Nfa<<C as QueryContext>::Ref>, C>where C: QueryContext,

source

pub(crate) fn answer(self) -> Answer<<C as QueryContext>::Ref>

Answers whether a Nfa is transmutable into another Nfa.

This method converts src and dst to DFAs, then computes an answer using those DFAs.

source§

impl<C> MaybeTransmutableQuery<Dfa<<C as QueryContext>::Ref>, C>where C: QueryContext,

source

pub(crate) fn answer(self) -> Answer<<C as QueryContext>::Ref>

Answers whether a Dfa is transmutable into another Dfa.

source

fn answer_memo( &self, cache: &mut Map<(State, State), Answer<<C as QueryContext>::Ref>>, src_state: State, dst_state: State ) -> Answer<<C as QueryContext>::Ref>

Auto Trait Implementations§

§

impl<L, C> RefUnwindSafe for MaybeTransmutableQuery<L, C>where C: RefUnwindSafe, L: RefUnwindSafe, <C as QueryContext>::Scope: RefUnwindSafe,

§

impl<L, C> Send for MaybeTransmutableQuery<L, C>where C: Send, L: Send, <C as QueryContext>::Scope: Send,

§

impl<L, C> Sync for MaybeTransmutableQuery<L, C>where C: Sync, L: Sync, <C as QueryContext>::Scope: Sync,

§

impl<L, C> Unpin for MaybeTransmutableQuery<L, C>where C: Unpin, L: Unpin, <C as QueryContext>::Scope: Unpin,

§

impl<L, C> UnwindSafe for MaybeTransmutableQuery<L, C>where C: UnwindSafe, L: UnwindSafe, <C as QueryContext>::Scope: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.