diff --git a/src/wasm-lib/kcl/src/ast/types.rs b/src/wasm-lib/kcl/src/ast/types.rs index 699a69118..16ad2e277 100644 --- a/src/wasm-lib/kcl/src/ast/types.rs +++ b/src/wasm-lib/kcl/src/ast/types.rs @@ -4246,6 +4246,30 @@ const myNestedVar = [callExp(bing.yo)] assert_eq!(recasted, some_program_string); } + #[test] + fn test_recast_space_in_fn_call() { + let some_program_string = r#"fn thing = (x) => { + return x + 1 +} + +thing ( 1 ) +"#; + let tokens = crate::token::lexer(some_program_string).unwrap(); + let parser = crate::parser::Parser::new(tokens); + let program = parser.ast().unwrap(); + + let recasted = program.recast(&Default::default(), 0); + assert_eq!( + recasted, + r#"fn thing = (x) => { + return x + 1 +} + +thing(1) +"# + ); + } + #[test] fn test_recast_object_fn_in_array_weird_bracket() { let some_program_string = r#"const bing = { yo: 55 } diff --git a/src/wasm-lib/kcl/src/parser/parser_impl.rs b/src/wasm-lib/kcl/src/parser/parser_impl.rs index 88878a70c..84c524a2b 100644 --- a/src/wasm-lib/kcl/src/parser/parser_impl.rs +++ b/src/wasm-lib/kcl/src/parser/parser_impl.rs @@ -1501,6 +1501,7 @@ fn binding_name(i: TokenSlice) -> PResult { fn fn_call(i: TokenSlice) -> PResult { let fn_name = identifier(i)?; + opt(whitespace).parse_next(i)?; let _ = terminated(open_paren, opt(whitespace)).parse_next(i)?; let args = arguments(i)?; if let Some(std_fn) = crate::std::get_stdlib_fn(&fn_name.name) {