Struct rustc_const_eval::transform::validate::TypeChecker
source · [−]struct TypeChecker<'a, 'tcx> {
when: &'a str,
body: &'a Body<'tcx>,
tcx: TyCtxt<'tcx>,
param_env: ParamEnv<'tcx>,
mir_phase: MirPhase,
reachable_blocks: BitSet<BasicBlock>,
storage_liveness: ResultsCursor<'a, 'tcx, MaybeStorageLive>,
place_cache: Vec<PlaceRef<'tcx>>,
}Fields
when: &'a strbody: &'a Body<'tcx>tcx: TyCtxt<'tcx>param_env: ParamEnv<'tcx>mir_phase: MirPhasereachable_blocks: BitSet<BasicBlock>storage_liveness: ResultsCursor<'a, 'tcx, MaybeStorageLive>place_cache: Vec<PlaceRef<'tcx>>Implementations
Check if src can be assigned into dest. This is not precise, it will accept some incorrect assignments.
Trait Implementations
fn visit_projection_elem(
&mut self,
local: Local,
proj_base: &[PlaceElem<'tcx>],
elem: PlaceElem<'tcx>,
context: PlaceContext,
location: Location
)
fn visit_ascribe_user_ty(
&mut self,
place: &Place,
variance: &Variance,
user_ty: &UserTypeProjection,
location: Location
)
fn visit_projection(
&mut self,
place_ref: PlaceRef,
context: PlaceContext,
location: Location
)
fn super_projection(
&mut self,
place_ref: PlaceRef,
context: PlaceContext,
location: Location
)
fn super_projection_elem(
&mut self,
_local: Local,
_proj_base: &[ProjectionElem<Local, &TyS>],
elem: ProjectionElem<Local, &TyS>,
_context: PlaceContext,
location: Location
)
fn visit_user_type_annotation(
&mut self,
index: UserTypeAnnotationIndex,
ty: &CanonicalUserTypeAnnotation
)
fn super_ascribe_user_ty(
&mut self,
place: &Place,
_variance: &Variance,
user_ty: &UserTypeProjection,
location: Location
)
fn super_user_type_annotation(
&mut self,
_index: UserTypeAnnotationIndex,
ty: &CanonicalUserTypeAnnotation
)
Auto Trait Implementations
impl<'a, 'tcx> !RefUnwindSafe for TypeChecker
impl<'a, 'tcx> !Send for TypeChecker
impl<'a, 'tcx> !Sync for TypeChecker
impl<'a, 'tcx> Unpin for TypeChecker where
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for TypeChecker
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 232 bytes