From 676cb2d6605163c017b55571664ee5a8f0091922 Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Mon, 25 Nov 2024 03:18:45 +0300 Subject: [PATCH] fixed missing rib and added test --- src/AST.ts | 2 ++ src/expander.ts | 4 ++-- tests/arrow-function-4.ts | 3 +++ tests/arrow-function-4.ts.expanded | 5 +++++ 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 tests/arrow-function-4.ts create mode 100644 tests/arrow-function-4.ts.expanded diff --git a/src/AST.ts b/src/AST.ts index 16154c1..2119879 100644 --- a/src/AST.ts +++ b/src/AST.ts @@ -29,6 +29,7 @@ export type list_tag = | "program" | "lexical_declaration" | "variable_declarator" + | "export_statement" | "binary_expression" | "unary_expression" | "call_expression" @@ -48,6 +49,7 @@ export const list_tags: { [k in list_tag]: list_tag } = { program: "program", lexical_declaration: "lexical_declaration", variable_declarator: "variable_declarator", + export_statement: "export_statement", binary_expression: "binary_expression", unary_expression: "unary_expression", call_expression: "call_expression", diff --git a/src/expander.ts b/src/expander.ts index c0f8c05..e0099a6 100644 --- a/src/expander.ts +++ b/src/expander.ts @@ -225,7 +225,7 @@ function preexpand_body_curly(step: { return in_isolation( step.loc, (loc, k) => preexpand_forms({ ...step, loc, k: (gs) => k(gs.loc, gs) }), - (loc, { rib, context, counter }) => { + (loc, { rib, context, counter, unit }) => { if (loc.t.tag === "slice") { const subforms = stx_list_content(loc.t); const new_loc = change_splicing( @@ -238,7 +238,7 @@ function preexpand_body_curly(step: { } return go_right( loc, - (loc) => preexpand_body_curly({ loc, rib, counter, context, unit: step.unit, k: step.k }), + (loc) => preexpand_body_curly({ loc, rib, counter, context, unit, k: step.k }), (loc) => syntax_error(loc, "no right"), ); }, diff --git a/tests/arrow-function-4.ts b/tests/arrow-function-4.ts new file mode 100644 index 0000000..fa5ef65 --- /dev/null +++ b/tests/arrow-function-4.ts @@ -0,0 +1,3 @@ +const foo = (x) => { + using_syntax_rules([t,t,x]).rewrite(t); +} diff --git a/tests/arrow-function-4.ts.expanded b/tests/arrow-function-4.ts.expanded new file mode 100644 index 0000000..5b6d044 --- /dev/null +++ b/tests/arrow-function-4.ts.expanded @@ -0,0 +1,5 @@ +const foo_3 = (x_5) => { + x_5; +}; +================================ +DONE