From 0d068aa9846f094cace0832c622fef4de6ec37cc Mon Sep 17 00:00:00 2001 From: Swastik Date: Fri, 21 Jun 2024 00:07:46 +0530 Subject: [PATCH] cgen: support inc cond for c style for loop with alias types --- vlib/v/gen/c/assign.v | 4 +++- vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.out | 10 ++++++++++ vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.vv | 10 ++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.out create mode 100644 vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.vv diff --git a/vlib/v/gen/c/assign.v b/vlib/v/gen/c/assign.v index 7609b9f07744fc..c9d3ef9e849ba5 100644 --- a/vlib/v/gen/c/assign.v +++ b/vlib/v/gen/c/assign.v @@ -520,7 +520,9 @@ fn (mut g Gen) assign_stmt(node_ ast.AssignStmt) { g.expr(left) g.write(' ${extracted_op} ') g.expr(val) - g.write(';') + if !g.inside_for_c_stmt { + g.write(';') + } return } else { g.write(' = ${styp}_${util.replace_op(extracted_op)}(') diff --git a/vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.out b/vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.out new file mode 100644 index 00000000000000..747ea4c1553ea2 --- /dev/null +++ b/vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.out @@ -0,0 +1,10 @@ +1.0 +2.0 +3.0 +4.0 +5.0 +6.0 +7.0 +8.0 +9.0 +10.0 diff --git a/vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.vv b/vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.vv new file mode 100644 index 00000000000000..725eecd1340f51 --- /dev/null +++ b/vlib/v/slow_tests/inout/alias_for_c_loop_assign_op.vv @@ -0,0 +1,10 @@ +type Float = f32 + +fn main() { + min_value := Float(1) + max_value := Float(10) + step := Float(1) + for n := min_value; n <= max_value; n += step { + println('${n}') + } +}