diff --git a/src/parser/expression/mod.rs b/src/parser/expression/mod.rs index d7aea6e..d2a2018 100644 --- a/src/parser/expression/mod.rs +++ b/src/parser/expression/mod.rs @@ -77,7 +77,7 @@ pub fn parse<'de>( pub fn call<'de>( parser: &mut Parser<'de>, lhs: Expression<'de>, - binding_power: BindingPower, + _binding_power: BindingPower, ) -> Result> { let mut arguments = Vec::new(); @@ -92,7 +92,7 @@ pub fn call<'de>( .expect(TokenKind::Comma, "expected a comma between arguments")?; } - let argument = parse(parser, binding_power.clone())?; + let argument = parse(parser, BindingPower::None)?; arguments.push(argument); } diff --git a/src/parser/lookup.rs b/src/parser/lookup.rs index c889c05..57c3936 100644 --- a/src/parser/lookup.rs +++ b/src/parser/lookup.rs @@ -123,8 +123,8 @@ impl Default for Lookup<'_> { .add_expression_handler(TokenKind::String, expression::primitive::string) .add_expression_handler(TokenKind::Identifier, expression::primitive::identifier) .add_expression_handler(TokenKind::ParenOpen, group) - .add_left_expression_handler(TokenKind::If, BindingPower::None, conditional) - .add_left_expression_handler(TokenKind::ParenOpen, BindingPower::None, expression::call) + .add_left_expression_handler(TokenKind::If, BindingPower::Logical, conditional) + .add_left_expression_handler(TokenKind::ParenOpen, BindingPower::Call, expression::call) .add_expression_handler(TokenKind::Not, expression::unary::negate) .add_expression_handler(TokenKind::Minus, expression::unary::negative) .add_expression_handler(TokenKind::CurlyOpen, block) diff --git a/src/parser/typechecker/mod.rs b/src/parser/typechecker/mod.rs index b32cd78..6670e07 100644 --- a/src/parser/typechecker/mod.rs +++ b/src/parser/typechecker/mod.rs @@ -230,9 +230,7 @@ impl<'ast> TypeChecker<'ast> { Ok(truthy) } untyped::ExpressionValue::Call { callee, arguments } => { - println!("callee: {:?}", callee); let callee = self.type_of(callee, environment)?; - println!("callee: {:?}", callee); match callee.clone().value { TypeValue::Function {