[−][src]Struct c2rust_refactor::analysis::labeled_ty::LabeledTyS
The actual data for a labeled type.
This struct shouldn't be constructed directly - instead, use LabeledTyCtxt
methods to build
instances inside the tcx arena and return LabeledTy
references.
Labeled types have to mimic the tree structure of the underlying Ty
, so that each type
constructor in the tree can have its own label. But maintaining a custom copy of
TyKind
would be annoying, so instead, we let labeled types form arbitrary trees, and
make the LabeledTyCtxt
responsible for making those trees match the Ty
's structure.
Fields
ty: Ty<'tcx>
The underlying type.
args: &'lty [LabeledTy<'lty, 'tcx, L>]
The arguments of this type constructor. The number and meaning of these arguments depends
on which type constructor this is (specifically, which TyKind
variant is used for
self.ty.sty
).
label: L
The label for the current type constructor.
Methods
impl<'lty, 'tcx, L> LabeledTyS<'lty, 'tcx, L>
[src]
pub fn for_each_label<F: FnMut(&'lty L)>(&'lty self, callback: &mut F)
[src]
Trait Implementations
impl<'lty, 'tcx, L: Debug> Signature<&'lty LabeledTyS<'lty, 'tcx, L>> for FnSig<'lty, 'tcx, L>
[src]
fn num_inputs(&self) -> usize
[src]
fn input(&self, idx: usize) -> LabeledTy<'lty, 'tcx, L>
[src]
fn output(&self) -> LabeledTy<'lty, 'tcx, L>
[src]
impl<'lty, 'tcx: 'lty, L: Eq + 'lty> Eq for LabeledTyS<'lty, 'tcx, L>
[src]
impl<'lty, 'tcx: 'lty, L: PartialEq + 'lty> PartialEq<LabeledTyS<'lty, 'tcx, L>> for LabeledTyS<'lty, 'tcx, L>
[src]
fn eq(&self, other: &LabeledTyS<'lty, 'tcx, L>) -> bool
[src]
fn ne(&self, other: &LabeledTyS<'lty, 'tcx, L>) -> bool
[src]
impl<'lty, 'tcx: 'lty, L: Clone + 'lty> Clone for LabeledTyS<'lty, 'tcx, L>
[src]
fn clone(&self) -> LabeledTyS<'lty, 'tcx, L>
[src]
default fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<'lty, 'tcx, L: Debug> Debug for LabeledTyS<'lty, 'tcx, L>
[src]
Auto Trait Implementations
impl<'lty, 'tcx, L> !Send for LabeledTyS<'lty, 'tcx, L>
impl<'lty, 'tcx, L> !Sync for LabeledTyS<'lty, 'tcx, L>
Blanket Implementations
impl<T> Lone for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<E> SpecializationError for E
[src]
default fn not_found<S, T>(
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
[src]
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
impl<T> Erased for T
[src]
impl<T> Send for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Sync for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Same for T
type Output = T
Should always be Self
impl<Q, K> Equivalent for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
fn equivalent(&self, key: &K) -> bool
[src]
impl<T> MaybeResult for T
[src]
impl<'a, T> Captures for T where
T: ?Sized,
[src]
T: ?Sized,