pub trait PAGPath: Clone + PartialEq + Eq + Hash + Debug {
type FuncTy;
Show 17 methods
// Required methods
fn new_parameter(func: Self::FuncTy, ordinal: usize) -> Self;
fn new_return_value(func: Self::FuncTy) -> Self;
fn new_aux_local_path<'tcx>(
acx: &mut AnalysisContext<'tcx, '_>,
func: Self::FuncTy,
ty: Ty<'tcx>
) -> Self;
fn value(&self) -> &PathEnum;
fn append_projection(&self, projection_elems: &ProjectionElems) -> Self;
fn add_offset(&self, offset: usize) -> Self;
fn dyn_ptr_metadata(&self) -> Self;
fn remove_cast(&self) -> Self;
fn cast_to<'tcx>(
&self,
acx: &mut AnalysisContext<'tcx, '_>,
ty: Ty<'tcx>
) -> Option<Self>;
fn type_variant<'tcx>(
&self,
acx: &mut AnalysisContext<'tcx, '_>,
ty: Ty<'tcx>
) -> Option<Self>;
fn regularize(&self, acx: &mut AnalysisContext<'_, '_>) -> Self;
fn try_eval_path_type<'tcx>(
&self,
acx: &mut AnalysisContext<'tcx, '_>
) -> Ty<'tcx>;
fn set_path_rustc_type<'tcx>(
&self,
acx: &mut AnalysisContext<'tcx, '_>,
ty: Ty<'tcx>
);
fn has_been_cast(&self, acx: &AnalysisContext<'_, '_>) -> bool;
fn concretized_heap_type<'tcx>(
&self,
acx: &AnalysisContext<'tcx, '_>
) -> Option<Ty<'tcx>>;
fn flatten_fields<'tcx>(
self,
acx: &mut AnalysisContext<'tcx, '_>
) -> Vec<(usize, Self, Ty<'tcx>)>;
fn get_containing_func(&self) -> Option<Self::FuncTy>;
}Required Associated Types§
Required Methods§
fn new_parameter(func: Self::FuncTy, ordinal: usize) -> Self
fn new_return_value(func: Self::FuncTy) -> Self
fn new_aux_local_path<'tcx>( acx: &mut AnalysisContext<'tcx, '_>, func: Self::FuncTy, ty: Ty<'tcx> ) -> Self
fn value(&self) -> &PathEnum
fn append_projection(&self, projection_elems: &ProjectionElems) -> Self
fn add_offset(&self, offset: usize) -> Self
fn dyn_ptr_metadata(&self) -> Self
fn remove_cast(&self) -> Self
fn cast_to<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>
fn type_variant<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>
fn regularize(&self, acx: &mut AnalysisContext<'_, '_>) -> Self
fn try_eval_path_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_> ) -> Ty<'tcx>
fn set_path_rustc_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> )
fn has_been_cast(&self, acx: &AnalysisContext<'_, '_>) -> bool
fn concretized_heap_type<'tcx>( &self, acx: &AnalysisContext<'tcx, '_> ) -> Option<Ty<'tcx>>
fn flatten_fields<'tcx>( self, acx: &mut AnalysisContext<'tcx, '_> ) -> Vec<(usize, Self, Ty<'tcx>)>
fn get_containing_func(&self) -> Option<Self::FuncTy>
Object Safety§
This trait is not object safe.