Skip to main content

rapx/analysis/alias/default/
value.rs

1use crate::compat::FxHashMap;
2
3#[derive(Debug, Clone)]
4pub struct Value {
5    pub index: usize,
6    pub local: usize,
7    pub father: Option<FatherInfo>,
8    pub fields: FxHashMap<usize, usize>,
9    pub slot_idx: Option<usize>,
10}
11
12#[derive(Debug, Clone, PartialEq)]
13pub struct FatherInfo {
14    pub father_value_id: usize,
15    pub field_id: usize,
16}
17
18impl FatherInfo {
19    pub fn new(father_value_id: usize, field_id: usize) -> Self {
20        FatherInfo { father_value_id, field_id }
21    }
22}
23
24impl Value {
25    pub fn new(index: usize, local: usize) -> Self {
26        Value {
27            index, local,
28            father: None,
29            fields: FxHashMap::default(),
30            slot_idx: None,
31        }
32    }
33}