make a space work parse in fn call, recast well (#3165)

Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
Jess Frazelle
2024-07-29 00:39:26 -07:00
committed by GitHub
parent fff3c58560
commit 67d0fb76f6
2 changed files with 25 additions and 0 deletions

View File

@ -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 }

View File

@ -1501,6 +1501,7 @@ fn binding_name(i: TokenSlice) -> PResult<Identifier> {
fn fn_call(i: TokenSlice) -> PResult<CallExpression> {
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) {