put TypeEnvironment on TypeContext
This commit is contained in:
parent
3156c31dfc
commit
cea7427847
@ -15,7 +15,7 @@ use itertools::Itertools;
|
|||||||
use parsing;
|
use parsing;
|
||||||
|
|
||||||
pub struct TypeContext {
|
pub struct TypeContext {
|
||||||
bindings: HashMap<Rc<String>, Type>,
|
environment: TypeEnvironment,
|
||||||
pub symbol_table: SymbolTable
|
pub symbol_table: SymbolTable
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,7 +214,7 @@ pub type TypeResult<T> = Result<T, String>;
|
|||||||
|
|
||||||
impl TypeContext {
|
impl TypeContext {
|
||||||
pub fn new() -> TypeContext {
|
pub fn new() -> TypeContext {
|
||||||
TypeContext { bindings: HashMap::new(), /*type_var_count: 0*/ symbol_table: SymbolTable::new() }
|
TypeContext { environment: TypeEnvironment::default(), /*type_var_count: 0*/ symbol_table: SymbolTable::new() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* note: this adds names for *forward reference* but doesn't actually create any types. solve that problem
|
/* note: this adds names for *forward reference* but doesn't actually create any types. solve that problem
|
||||||
@ -255,8 +255,8 @@ impl TypeContext {
|
|||||||
for (sym, ty) in &self.symbol_table.values {
|
for (sym, ty) in &self.symbol_table.values {
|
||||||
write!(output, "{} -> {:?}\n", sym, ty).unwrap();
|
write!(output, "{} -> {:?}\n", sym, ty).unwrap();
|
||||||
}
|
}
|
||||||
write!(output, "\nBindings\n").unwrap();
|
write!(output, "\nType Env\n").unwrap();
|
||||||
for (sym, ty) in &self.bindings {
|
for (sym, ty) in &self.environment.map {
|
||||||
write!(output, "{} : {:?}\n", sym, ty).unwrap();
|
write!(output, "{} : {:?}\n", sym, ty).unwrap();
|
||||||
}
|
}
|
||||||
output
|
output
|
||||||
|
Loading…
Reference in New Issue
Block a user