From 42ac6885dfc3d5b875fa5fd9d8a88b367f04313a Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Tue, 1 Apr 2025 17:37:52 +0300 Subject: [PATCH] cgen: fix showing the expression, as literal value, in case of `assert s[x..y] == "literal"` (fix #24103) (#24105) --- vlib/v/gen/c/assert.v | 6 +----- vlib/v/tests/skip_unused/assert_works_test.run.out | 5 +++++ .../tests/skip_unused/assert_works_test.skip_unused.run.out | 5 +++++ vlib/v/tests/skip_unused/assert_works_test.vv | 5 +++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/vlib/v/gen/c/assert.v b/vlib/v/gen/c/assert.v index 41173959a1..8083bf2df9 100644 --- a/vlib/v/gen/c/assert.v +++ b/vlib/v/gen/c/assert.v @@ -207,11 +207,7 @@ fn (mut g Gen) gen_assert_single_expr(expr ast.Expr, typ ast.Type) { g.write(ctoslit(expr_str)) } ast.IndexExpr { - if expr.index is ast.RangeExpr { - g.write(ctoslit(expr_str)) - } else { - g.gen_expr_to_string(expr, typ) - } + g.gen_expr_to_string(expr, typ) } ast.PrefixExpr { if expr.right is ast.CastExpr { diff --git a/vlib/v/tests/skip_unused/assert_works_test.run.out b/vlib/v/tests/skip_unused/assert_works_test.run.out index a82e60325a..bd939f26c3 100644 --- a/vlib/v/tests/skip_unused/assert_works_test.run.out +++ b/vlib/v/tests/skip_unused/assert_works_test.run.out @@ -3,3 +3,8 @@ vlib/v/tests/skip_unused/assert_works_test.vv:2: fn test_abc Left value (len: 3): `abc` Right value (len: 3): `xyz` +vlib/v/tests/skip_unused/assert_works_test.vv:7: fn test_index_expr + > assert example_string[1 .. 4] == 'abcdef' + Left value (len: 3): `his` + Right value (len: 6): `abcdef` + diff --git a/vlib/v/tests/skip_unused/assert_works_test.skip_unused.run.out b/vlib/v/tests/skip_unused/assert_works_test.skip_unused.run.out index a82e60325a..bd939f26c3 100644 --- a/vlib/v/tests/skip_unused/assert_works_test.skip_unused.run.out +++ b/vlib/v/tests/skip_unused/assert_works_test.skip_unused.run.out @@ -3,3 +3,8 @@ vlib/v/tests/skip_unused/assert_works_test.vv:2: fn test_abc Left value (len: 3): `abc` Right value (len: 3): `xyz` +vlib/v/tests/skip_unused/assert_works_test.vv:7: fn test_index_expr + > assert example_string[1 .. 4] == 'abcdef' + Left value (len: 3): `his` + Right value (len: 6): `abcdef` + diff --git a/vlib/v/tests/skip_unused/assert_works_test.vv b/vlib/v/tests/skip_unused/assert_works_test.vv index 8f7bc38eab..f80a1e5e11 100644 --- a/vlib/v/tests/skip_unused/assert_works_test.vv +++ b/vlib/v/tests/skip_unused/assert_works_test.vv @@ -1,3 +1,8 @@ fn test_abc() { assert 'abc' == 'xyz' } + +fn test_index_expr() { + example_string := 'This is an example string' + assert example_string[1..4] == 'abcdef' +}