diff --git a/schala-lang/language/src/typechecking.rs b/schala-lang/language/src/typechecking.rs
index 4394366..7d17108 100644
--- a/schala-lang/language/src/typechecking.rs
+++ b/schala-lang/language/src/typechecking.rs
@@ -337,12 +337,15 @@ impl<'a> TypeContext<'a> {
println!("ARGUMENT TYPES: {:?}", argument_types);
+ //TODO finish this
Ok(ty!(UserDefined))
}
fn call(&mut self, f: &Expression, args: &Vec>) -> InferResult {
-
- Ok(ty!(UserDefined))
+ let tf = self.expr(f)?;
+ let arg_types: InferResult> = args.iter().map(|ex| self.expr(ex.node())).collect();
+ let arg_types = arg_types?;
+ self.handle_apply(tf, arg_types)
}
fn handle_apply(&mut self, tf: Type, args: Vec) -> InferResult {