Trait rupta::graph::pag::PAGPath

source ·
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§

source

fn new_parameter(func: Self::FuncTy, ordinal: usize) -> Self

source

fn new_return_value(func: Self::FuncTy) -> Self

source

fn new_aux_local_path<'tcx>( acx: &mut AnalysisContext<'tcx, '_>, func: Self::FuncTy, ty: Ty<'tcx> ) -> Self

source

fn value(&self) -> &PathEnum

source

fn append_projection(&self, projection_elems: &ProjectionElems) -> Self

source

fn add_offset(&self, offset: usize) -> Self

source

fn dyn_ptr_metadata(&self) -> Self

source

fn remove_cast(&self) -> Self

source

fn cast_to<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>

source

fn type_variant<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>

source

fn regularize(&self, acx: &mut AnalysisContext<'_, '_>) -> Self

source

fn try_eval_path_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_> ) -> Ty<'tcx>

source

fn set_path_rustc_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> )

source

fn has_been_cast(&self, acx: &AnalysisContext<'_, '_>) -> bool

source

fn concretized_heap_type<'tcx>( &self, acx: &AnalysisContext<'tcx, '_> ) -> Option<Ty<'tcx>>

source

fn flatten_fields<'tcx>( self, acx: &mut AnalysisContext<'tcx, '_> ) -> Vec<(usize, Self, Ty<'tcx>)>

source

fn get_containing_func(&self) -> Option<Self::FuncTy>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl PAGPath for Rc<CSPath>

§

type FuncTy = CSFuncId

source§

fn new_parameter(func: CSFuncId, ordinal: usize) -> Self

source§

fn new_return_value(func: CSFuncId) -> Self

source§

fn new_aux_local_path<'tcx>( acx: &mut AnalysisContext<'tcx, '_>, func: CSFuncId, ty: Ty<'tcx> ) -> Self

source§

fn value(&self) -> &PathEnum

source§

fn append_projection(&self, projection_elems: &ProjectionElems) -> Self

source§

fn add_offset(&self, offset: usize) -> Self

source§

fn dyn_ptr_metadata(&self) -> Self

source§

fn remove_cast(&self) -> Self

source§

fn cast_to<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>

source§

fn type_variant<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>

source§

fn regularize(&self, acx: &mut AnalysisContext<'_, '_>) -> Self

source§

fn try_eval_path_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_> ) -> Ty<'tcx>

source§

fn set_path_rustc_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> )

source§

fn has_been_cast(&self, acx: &AnalysisContext<'_, '_>) -> bool

source§

fn concretized_heap_type<'tcx>( &self, acx: &AnalysisContext<'tcx, '_> ) -> Option<Ty<'tcx>>

source§

fn flatten_fields<'tcx>( self, acx: &mut AnalysisContext<'tcx, '_> ) -> Vec<(usize, Self, Ty<'tcx>)>

source§

fn get_containing_func(&self) -> Option<CSFuncId>

source§

impl PAGPath for Rc<Path>

§

type FuncTy = FuncId

source§

fn new_parameter(func: FuncId, ordinal: usize) -> Self

source§

fn new_return_value(func: FuncId) -> Self

source§

fn new_aux_local_path<'tcx>( acx: &mut AnalysisContext<'tcx, '_>, func: FuncId, ty: Ty<'tcx> ) -> Self

source§

fn value(&self) -> &PathEnum

source§

fn append_projection(&self, projection_elems: &ProjectionElems) -> Self

source§

fn add_offset(&self, offset: usize) -> Self

source§

fn dyn_ptr_metadata(&self) -> Self

source§

fn remove_cast(&self) -> Self

source§

fn cast_to<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>

source§

fn type_variant<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> ) -> Option<Self>

source§

fn regularize(&self, acx: &mut AnalysisContext<'_, '_>) -> Self

source§

fn try_eval_path_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_> ) -> Ty<'tcx>

source§

fn set_path_rustc_type<'tcx>( &self, acx: &mut AnalysisContext<'tcx, '_>, ty: Ty<'tcx> )

source§

fn has_been_cast(&self, acx: &AnalysisContext<'_, '_>) -> bool

source§

fn concretized_heap_type<'tcx>( &self, acx: &AnalysisContext<'tcx, '_> ) -> Option<Ty<'tcx>>

source§

fn flatten_fields<'tcx>( self, acx: &mut AnalysisContext<'tcx, '_> ) -> Vec<(usize, Self, Ty<'tcx>)>

source§

fn get_containing_func(&self) -> Option<FuncId>

Implementors§