pub(crate) use exhaustive_pattern_match::*;
pub(crate) use unresolved_types::*;
pub use path::*;
mod exhaustive_pattern_match;
mod invalid_function_args;
mod invalid_function_calls;
mod invalid_worker_name;
mod missing_fields;
mod path;
mod unresolved_types;
use crate::rib_type_error::RibTypeErrorInternal;
use crate::type_checker::exhaustive_pattern_match::check_exhaustive_pattern_match;
use crate::type_checker::invalid_function_args::check_invalid_function_args;
use crate::type_checker::invalid_function_calls::check_invalid_function_calls;
use crate::type_checker::invalid_worker_name::check_invalid_worker_name;
use crate::{ComponentDependencies, Expr};
pub fn type_check(
expr: &mut Expr,
component_dependency: &ComponentDependencies,
) -> Result<(), RibTypeErrorInternal> {
check_invalid_function_args(expr, component_dependency)?;
check_unresolved_types(expr)?;
check_invalid_worker_name(expr)?;
check_exhaustive_pattern_match(expr, component_dependency)?;
check_invalid_function_calls(expr)?;
Ok(())
}