Add more literals kill errors
This commit is contained in:
parent
cf91f74912
commit
0dff177e8f
@ -7,7 +7,7 @@ pub type TypeName = Rc<String>;
|
|||||||
|
|
||||||
pub struct TypeContext<'a> {
|
pub struct TypeContext<'a> {
|
||||||
variable_map: ScopeStack<'a, Rc<String>, ()>,
|
variable_map: ScopeStack<'a, Rc<String>, ()>,
|
||||||
evar_count: u32
|
//evar_count: u32
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `InferResult` is the monad in which type inference takes place.
|
/// `InferResult` is the monad in which type inference takes place.
|
||||||
@ -41,10 +41,6 @@ pub enum TypeConst {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Type {
|
impl Type {
|
||||||
fn arrow(a: Type, b: Type) -> Type {
|
|
||||||
Type::Arrow(Box::new(a), Box::new(b))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_string(&self) -> String {
|
fn to_string(&self) -> String {
|
||||||
use self::Type::*;
|
use self::Type::*;
|
||||||
use self::TypeConst::*;
|
use self::TypeConst::*;
|
||||||
@ -150,7 +146,7 @@ impl<'a> TypeContext<'a> {
|
|||||||
pub fn new() -> TypeContext<'a> {
|
pub fn new() -> TypeContext<'a> {
|
||||||
TypeContext {
|
TypeContext {
|
||||||
variable_map: ScopeStack::new(None),
|
variable_map: ScopeStack::new(None),
|
||||||
evar_count: 0
|
//evar_count: 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,6 +184,8 @@ impl<'a> TypeContext<'a> {
|
|||||||
Ok(match expr {
|
Ok(match expr {
|
||||||
NatLiteral(_) => Type::Const(TypeConst::Nat),
|
NatLiteral(_) => Type::Const(TypeConst::Nat),
|
||||||
BoolLiteral(_) => Type::Const(TypeConst::Bool),
|
BoolLiteral(_) => Type::Const(TypeConst::Bool),
|
||||||
|
FloatLiteral(_) => Type::Const(TypeConst::Float),
|
||||||
|
StringLiteral(_) => Type::Const(TypeConst::StringT),
|
||||||
_ => Type::Const(TypeConst::Unit)
|
_ => Type::Const(TypeConst::Unit)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user