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 {
21            father_value_id,
22            field_id,
23        }
24    }
25}
26
27impl Value {
28    pub fn new(index: usize, local: usize) -> Self {
29        Value {
30            index,
31            local,
32            father: None,
33            fields: FxHashMap::default(),
34            slot_idx: None,
35        }
36    }
37}