diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-each-default-plane-should-be-stable-3-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-each-default-plane-should-be-stable-3-Google-Chrome-linux.png index 220f6ca76..5adf6c4e3 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-each-default-plane-should-be-stable-3-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-each-default-plane-should-be-stable-3-Google-Chrome-linux.png differ diff --git a/src/wasm-lib/grackle/fixtures/cube_lineTo.png b/src/wasm-lib/grackle/fixtures/cube_lineTo.png index 6450d6688..a8e13f2b6 100644 Binary files a/src/wasm-lib/grackle/fixtures/cube_lineTo.png and b/src/wasm-lib/grackle/fixtures/cube_lineTo.png differ diff --git a/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png b/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png index d1bc14c58..a33c0570c 100644 Binary files a/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png and b/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png differ diff --git a/src/wasm-lib/grackle/fixtures/cube_xyLine.png b/src/wasm-lib/grackle/fixtures/cube_xyLine.png index 2a04bd115..4ef0629e7 100644 Binary files a/src/wasm-lib/grackle/fixtures/cube_xyLine.png and b/src/wasm-lib/grackle/fixtures/cube_xyLine.png differ diff --git a/src/wasm-lib/kcl/src/ast/types.rs b/src/wasm-lib/kcl/src/ast/types.rs index 8b2253e7f..fa293d348 100644 --- a/src/wasm-lib/kcl/src/ast/types.rs +++ b/src/wasm-lib/kcl/src/ast/types.rs @@ -1861,18 +1861,13 @@ impl ObjectExpression { Value::ObjectExpression(object_expression) => object_expression.execute(memory, pipe_info, ctx).await?, Value::ArrayExpression(array_expression) => array_expression.execute(memory, pipe_info, ctx).await?, Value::PipeExpression(pipe_expression) => pipe_expression.get_result(memory, pipe_info, ctx).await?, + Value::MemberExpression(member_expression) => member_expression.get_result(memory)?, Value::PipeSubstitution(pipe_substitution) => { return Err(KclError::Semantic(KclErrorDetails { message: format!("PipeSubstitution not implemented here: {:?}", pipe_substitution), source_ranges: vec![pipe_substitution.into()], })); } - Value::MemberExpression(member_expression) => { - return Err(KclError::Semantic(KclErrorDetails { - message: format!("MemberExpression not implemented here: {:?}", member_expression), - source_ranges: vec![member_expression.into()], - })); - } Value::FunctionExpression(function_expression) => { return Err(KclError::Semantic(KclErrorDetails { message: format!("FunctionExpression not implemented here: {:?}", function_expression), diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_x0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_x0.png index 6425edbb9..ce7e11160 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_x0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_x0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_y0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_y0.png index 6425edbb9..ce7e11160 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_y0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angle_to_match_length_y0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line0.png index 87d81b9da..6e0ad4c85 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_x_length0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_x_length0.png index 9fad57a9f..ba69c1a57 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_x_length0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_x_length0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_y_length0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_y_length0.png index 64bba9ba0..235b2c258 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_y_length0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_of_y_length0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_that_intersects0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_that_intersects0.png index 9e3b0071b..fbea80a5b 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_that_intersects0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_that_intersects0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_x0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_x0.png index 2d26ce77e..3cd249a36 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_x0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_x0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_y0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_y0.png index a400cb916..021020e0f 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_y0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_angled_line_to_y0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_arc0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_arc0.png index b4c3edc2b..d8224b91a 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_arc0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_arc0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_bezier_curve0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_bezier_curve0.png index 2d393ebab..bb684e9e9 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_bezier_curve0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_bezier_curve0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_circle0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_circle0.png index b0f62b3c4..073d606c9 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_circle0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_circle0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_close0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_close0.png index f1f86bcf4..25f95cd52 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_close0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_close0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_extrude0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_extrude0.png index 077481d0e..2f066fa5a 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_extrude0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_extrude0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_fillet0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_fillet0.png index 7025c83ab..e46de5164 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_fillet0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_fillet0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_edge0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_edge0.png index 6745660fd..cf5b22513 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_edge0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_edge0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_next_adjacent_edge0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_next_adjacent_edge0.png index 1cea0c1ca..06a2930eb 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_next_adjacent_edge0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_next_adjacent_edge0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_opposite_edge0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_opposite_edge0.png index 6ee83cd88..77aa81a4a 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_opposite_edge0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_opposite_edge0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_previous_adjacent_edge0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_previous_adjacent_edge0.png index ba1d5d73c..bf726d41f 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_previous_adjacent_edge0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_get_previous_adjacent_edge0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png index ccd6f0a19..99dd29d8b 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_hole0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_hole0.png index 1671b6432..d3556ec69 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_hole0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_hole0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_x0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_x0.png index 08fd6f69a..07eb4f3f4 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_x0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_x0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_y0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_y0.png index 289b4de85..4f86fbe18 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_y0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_last_segment_y0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_line0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_line0.png index 35773feb9..074123a9f 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_line0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_line0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_2d0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_2d0.png index f7fc23056..c2a7e1a0b 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_2d0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_2d0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_3d0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_3d0.png index 8e75f7cd4..536e1de95 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_3d0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_3d0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_2d0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_2d0.png index 6b4674534..6de775ead 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_2d0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_2d0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d0.png index a52b09d87..1e9ac9bfd 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve0.png index b744ae5bc..7d6b218c9 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve1.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve1.png index 75fb03c5d..34d56fe3d 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve1.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve1.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve2.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve2.png index 1b04ef168..be2af348e 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve2.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve2.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve3.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve3.png index 462a16b2a..231ad6d64 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve3.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve3.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve4.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve4.png index 59ac89e97..99dc922ae 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve4.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve4.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve5.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve5.png index c17a7e422..ff7e099dc 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve5.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve5.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_angle0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_angle0.png index 0845ce68e..49c087eb2 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_angle0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_angle0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_x0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_x0.png index 9a3ee4b86..77fae1a8c 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_x0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_x0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_y0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_y0.png index 289b4de85..4f86fbe18 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_y0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end_y0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_length0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_length0.png index 289b4de85..4f86fbe18 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_length0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_length0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on0.png index 1d6fbc5bc..11f3ff3bb 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on1.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on1.png index e42dfa28c..604194ef8 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on1.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_start_sketch_on1.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangential_arc0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangential_arc0.png index 76b04172c..00e25d3e3 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangential_arc0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangential_arc0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line0.png index 7514ac877..61fae7fae 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line_to0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line_to0.png index 07d8e66dc..ab11cce6a 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line_to0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_x_line_to0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line0.png index 3740f8852..dfddf1ffb 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line_to0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line_to0.png index c116b46b6..c5be42220 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line_to0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_y_line_to0.png differ diff --git a/src/wasm-lib/tests/executor/main.rs b/src/wasm-lib/tests/executor/main.rs index 325b9b650..b04077819 100644 --- a/src/wasm-lib/tests/executor/main.rs +++ b/src/wasm-lib/tests/executor/main.rs @@ -1929,3 +1929,35 @@ const plumbus0 = make_circle(p, 'a', [0, 0], 1.5) .unwrap(); twenty_twenty::assert_image("tests/executor/outputs/plumbus_fillets.png", &result, 1.0); } + +#[tokio::test(flavor = "multi_thread")] +async fn serial_test_member_expression_in_params() { + let code = r#"fn capScrew = (originStart, length, dia, capDia, capHeadLength) => { + const screwHead = startSketchOn({ + plane: { + origin: { + x: originStart[0], + y: originStart[1], + z: originStart[2], + }, + x_axis: { x: 0, y: 0, z: -1 }, + y_axis: { x: 1, y: 0, z: 0 }, + z_axis: { x: 0, y: 1, z: 0 } + } + }) + |> circle([0, 0], capDia / 2, %) + |> extrude(capHeadLength, %) + const screw = startSketchOn(screwHead, "start") + |> circle([0, 0], dia / 2, %) + |> extrude(length, %) + return screw +} + +capScrew([0, 0.5, 0], 50, 37.5, 50, 25) +"#; + + let result = execute_and_snapshot(code, kittycad::types::UnitLength::Mm) + .await + .unwrap(); + twenty_twenty::assert_image("tests/executor/outputs/member_expression_in_params.png", &result, 1.0); +} diff --git a/src/wasm-lib/tests/executor/outputs/member_expression_in_params.png b/src/wasm-lib/tests/executor/outputs/member_expression_in_params.png new file mode 100644 index 000000000..2c3273e46 Binary files /dev/null and b/src/wasm-lib/tests/executor/outputs/member_expression_in_params.png differ diff --git a/src/wasm-lib/tests/executor/outputs/optional_params.png b/src/wasm-lib/tests/executor/outputs/optional_params.png index 125698fba..d57b5510f 100644 Binary files a/src/wasm-lib/tests/executor/outputs/optional_params.png and b/src/wasm-lib/tests/executor/outputs/optional_params.png differ