lisette_semantics/checker/infer/
context.rs1use std::ops::{Deref, DerefMut};
2
3use crate::checker::TaskState;
4use crate::store::Store;
5
6pub struct InferCtx<'a, 's> {
7 state: &'a mut TaskState<'s>,
8 pub(crate) store: &'a Store,
9}
10
11impl<'a, 's> InferCtx<'a, 's> {
12 pub fn new(state: &'a mut TaskState<'s>, store: &'a Store) -> Self {
13 Self { state, store }
14 }
15}
16
17impl<'s> Deref for InferCtx<'_, 's> {
18 type Target = TaskState<'s>;
19
20 fn deref(&self) -> &Self::Target {
21 self.state
22 }
23}
24
25impl DerefMut for InferCtx<'_, '_> {
26 fn deref_mut(&mut self) -> &mut Self::Target {
27 self.state
28 }
29}