spade_typeinference/
traits.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use crate::equation::TypeVar;
use spade_hir::{ImplBlock, ImplTarget, TraitName};
use std::collections::HashMap;

#[derive(Clone)]
pub struct TraitImpl {
    pub name: TraitName,
    pub type_params: Vec<TypeVar>,
    pub impl_block: ImplBlock,
}

#[derive(Clone)]
pub struct TraitImplList {
    pub inner: HashMap<ImplTarget, Vec<TraitImpl>>,
}

impl TraitImplList {
    pub fn new() -> Self {
        Self {
            inner: HashMap::new(),
        }
    }
}