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 {