1
1
Fork 0
mirror of https://github.com/azur1s/bobbylisp.git synced 2024-10-16 02:37:40 -05:00

rename TypeEnv

This commit is contained in:
azur 2023-04-01 15:20:52 +07:00
parent 454a31e2e9
commit 4b805823e6

View file

@ -5,12 +5,12 @@ use crate::parse::parser::{
use super::{ty::Type, typed::TExpr}; use super::{ty::Type, typed::TExpr};
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
struct TypeEnv<'src> { struct TypeContext<'src> {
bindings: Vec<(&'src str, Type)>, bindings: Vec<(&'src str, Type)>,
funcs: Vec<(&'src str, Vec<Type>, Type)>, funcs: Vec<(&'src str, Vec<Type>, Type)>,
} }
impl<'src> TypeEnv<'src> { impl<'src> TypeContext<'src> {
fn new() -> Self { fn new() -> Self {
Self { Self {
bindings: Vec::new(), bindings: Vec::new(),
@ -73,7 +73,7 @@ impl TypeError {
} }
fn type_expr<'src>( fn type_expr<'src>(
env: &mut TypeEnv<'src>, expr: Spanned<Expr<'src>> env: &mut TypeContext<'src>, expr: Spanned<Expr<'src>>
) -> Result<Spanned<TExpr<'src>>, TypeError> { ) -> Result<Spanned<TExpr<'src>>, TypeError> {
macro_rules! oks { // Spanned Ok macro. macro_rules! oks { // Spanned Ok macro.
($e:expr $(,)?) => { ($e:expr $(,)?) => {
@ -415,7 +415,7 @@ fn type_expr<'src>(
} }
pub fn check(es: Vec<Spanned<Expr<'_>>>) -> Result<Vec<Spanned<TExpr<'_>>>, TypeError> { pub fn check(es: Vec<Spanned<Expr<'_>>>) -> Result<Vec<Spanned<TExpr<'_>>>, TypeError> {
let mut env = TypeEnv::new(); let mut env = TypeContext::new();
let mut tes = Vec::new(); let mut tes = Vec::new();
for e in es { for e in es {
let te = type_expr(&mut env, e)?; let te = type_expr(&mut env, e)?;