rapx/analysis/core/alias_analysis/default/
assign.rs

1use rustc_middle::mir::Place;
2use rustc_span::Span;
3
4#[derive(PartialEq, Debug, Copy, Clone)]
5pub enum AssignType {
6    Copy,
7    Move,
8    InitBox,
9    Variant,
10}
11
12//self-defined assignments structure.
13#[derive(Debug, Clone)]
14pub struct Assignment<'tcx> {
15    pub lv: Place<'tcx>,
16    pub rv: Place<'tcx>,
17    pub atype: AssignType,
18    pub span: Span,
19}
20
21impl<'tcx> Assignment<'tcx> {
22    pub fn new(
23        lv: Place<'tcx>,
24        rv: Place<'tcx>,
25        atype: AssignType,
26        span: Span,
27    ) -> Assignment<'tcx> {
28        Assignment {
29            lv,
30            rv,
31            atype,
32            span,
33        }
34    }
35}