From 995e61cd88c33e82cd4ed12daa309e65eee51bc2 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Wed, 11 Mar 2026 14:12:57 +0300 Subject: [PATCH] checker: shared work on primitive types (fixes #25611) --- shared_primitive_repro | Bin 0 -> 206872 bytes vlib/v/checker/assign.v | 5 --- vlib/v/checker/infix.v | 3 +- vlib/v/checker/postfix.v | 3 +- .../tests/shared_variables_type_err.out | 7 ---- .../tests/shared_variables_type_err.vv | 14 -------- vlib/v/gen/c/assign.v | 3 ++ vlib/v/gen/c/cgen.v | 6 ++++ vlib/v/parser/fn.v | 5 ++- .../tests/concurrency/shared_primitive_test.v | 33 ++++++++++++++++++ 10 files changed, 48 insertions(+), 31 deletions(-) create mode 100755 shared_primitive_repro delete mode 100644 vlib/v/checker/tests/shared_variables_type_err.out delete mode 100644 vlib/v/checker/tests/shared_variables_type_err.vv create mode 100644 vlib/v/tests/concurrency/shared_primitive_test.v diff --git a/shared_primitive_repro b/shared_primitive_repro new file mode 100755 index 0000000000000000000000000000000000000000..506493de5b4e7002cc6eb4773002726d2f72a696 GIT binary patch literal 206872 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

d5z&?~dZmce^tX+TvU41^So1 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 z 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 J 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 UmJB(y#fei=mqpKh(eHl#7t}673;+NC literal 0 HcmV?d00001 diff --git a/vlib/v/checker/assign.v b/vlib/v/checker/assign.v index ebe4d03a4..0fb083c7a 100644 --- a/vlib/v/checker/assign.v +++ b/vlib/v/checker/assign.v @@ -185,7 +185,6 @@ fn (mut c Checker) assign_stmt(mut node ast.AssignStmt) { c.expected_type = c.unwrap_generic(left_type) is_shared_re_assign = left is ast.Ident && left.info is ast.IdentVar && ((left.info as ast.IdentVar).share == .shared_t || left_type.has_flag(.shared_f)) - && c.table.sym(left_type).kind in [.array, .map, .struct] } if c.comptime.comptime_for_field_var != '' && mut left is ast.ComptimeSelector { @@ -249,10 +248,6 @@ fn (mut c Checker) assign_stmt(mut node ast.AssignStmt) { } else if right is ast.ComptimeSelector { right_type = c.comptime.comptime_for_field_type } - if is_decl && left is ast.Ident && left.info is ast.IdentVar - && (left.info as ast.IdentVar).share == .shared_t && c.table.sym(right_type).kind !in [.array, .map, .struct] { - c.fatal('shared variables must be structs, arrays or maps', right.pos()) - } if is_decl || is_shared_re_assign { // check generic struct init and return unwrap generic struct type if mut right is ast.StructInit { diff --git a/vlib/v/checker/infix.v b/vlib/v/checker/infix.v index 2936ff728..934204394 100644 --- a/vlib/v/checker/infix.v +++ b/vlib/v/checker/infix.v @@ -173,7 +173,8 @@ fn (mut c Checker) infix_expr(mut node ast.InfixExpr) ast.Type { c.error('invalid number of operand for `${node.op}`. Only one allowed on each side.', left_right_pos) } - if left_type.is_any_kind_of_pointer() && !node.left.is_auto_deref_var() + if left_type.is_any_kind_of_pointer() && !left_type.has_flag(.shared_f) + && !node.left.is_auto_deref_var() && node.op in [.plus, .minus, .mul, .div, .mod, .xor, .amp, .pipe] { if !c.pref.translated && ((right_type.is_any_kind_of_pointer() && node.op != .minus) || (!right_type.is_any_kind_of_pointer() && node.op !in [.plus, .minus])) { diff --git a/vlib/v/checker/postfix.v b/vlib/v/checker/postfix.v index 53b4cd24c..9f8e6d6d1 100644 --- a/vlib/v/checker/postfix.v +++ b/vlib/v/checker/postfix.v @@ -5,7 +5,8 @@ import v.ast fn (mut c Checker) postfix_expr(mut node ast.PostfixExpr) ast.Type { typ := c.unwrap_generic(c.type_resolver.get_type_or_default(node, c.expr(mut node.expr))) typ_sym := c.table.sym(typ) - is_non_void_pointer := typ.is_any_kind_of_pointer() && typ_sym.kind != .voidptr + is_non_void_pointer := typ.is_any_kind_of_pointer() && !typ.has_flag(.shared_f) + && typ_sym.kind != .voidptr if node.op in [.inc, .dec] && !node.expr.is_lvalue() { op_kind, bin_op_alt := if node.op == .inc { diff --git a/vlib/v/checker/tests/shared_variables_type_err.out b/vlib/v/checker/tests/shared_variables_type_err.out deleted file mode 100644 index 70ba59994..000000000 --- a/vlib/v/checker/tests/shared_variables_type_err.out +++ /dev/null @@ -1,7 +0,0 @@ -vlib/v/checker/tests/shared_variables_type_err.vv:7:16: error: shared variables must be structs, arrays or maps - 5 | - 6 | fn main() { - 7 | shared foo := Foo.one - | ~~~~~~~ - 8 | rlock foo { - 9 | match foo { diff --git a/vlib/v/checker/tests/shared_variables_type_err.vv b/vlib/v/checker/tests/shared_variables_type_err.vv deleted file mode 100644 index 87ca2f663..000000000 --- a/vlib/v/checker/tests/shared_variables_type_err.vv +++ /dev/null @@ -1,14 +0,0 @@ -enum Foo { - zero - one -} - -fn main() { - shared foo := Foo.one - rlock foo { - match foo { - .zero { println('0000') } - .one { println('1111') } - } - } -} diff --git a/vlib/v/gen/c/assign.v b/vlib/v/gen/c/assign.v index 70f6983e6..553e06811 100644 --- a/vlib/v/gen/c/assign.v +++ b/vlib/v/gen/c/assign.v @@ -1076,6 +1076,9 @@ fn (mut g Gen) assign_stmt(node_ ast.AssignStmt) { } else { g.array_init(array_init, cvar_name) } + } else if var_type.has_flag(.shared_f) && !val_type.has_flag(.shared_f) + && !val_type.is_ptr() { + g.expr_with_cast(val, val_type, var_type) } else if val_type.has_flag(.shared_f) { g.expr_with_cast(val, val_type, var_type) } else if val in [ast.MatchExpr, ast.IfExpr] diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index 088d92761..c29c957d0 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -4337,6 +4337,9 @@ fn (mut g Gen) expr(node_ ast.Expr) { } } else { g.expr(node.expr) + if node.typ.has_flag(.shared_f) { + g.write('->val') + } } g.inside_map_postfix = false if !node.is_c2v_prefix && node.op != .question && !is_safe_inc && !is_safe_dec { @@ -4350,6 +4353,9 @@ fn (mut g Gen) expr(node_ ast.Expr) { } g.write('=${vsafe_fn_name}(') g.expr(node.expr) + if node.typ.has_flag(.shared_f) { + g.write('->val') + } g.write(',1)') } if node.auto_locked != '' { diff --git a/vlib/v/parser/fn.v b/vlib/v/parser/fn.v index 92cc2baae..57ecea79f 100644 --- a/vlib/v/parser/fn.v +++ b/vlib/v/parser/fn.v @@ -1735,9 +1735,8 @@ fn (mut p Parser) check_fn_shared_arguments(typ ast.Type, pos token.Pos) { if sym.kind == .generic_inst { sym = p.table.type_symbols[(sym.info as ast.GenericInst).parent_idx] } - if sym.kind !in [.array, .struct, .map, .placeholder] && !typ.is_ptr() { - p.error_with_pos('shared arguments are only allowed for arrays, maps, and structs\n', - pos) + if sym.kind == .function { + p.error_with_pos('shared arguments are not allowed for function types', pos) } } diff --git a/vlib/v/tests/concurrency/shared_primitive_test.v b/vlib/v/tests/concurrency/shared_primitive_test.v new file mode 100644 index 000000000..05e423e33 --- /dev/null +++ b/vlib/v/tests/concurrency/shared_primitive_test.v @@ -0,0 +1,33 @@ +fn read_int(n int) int { + return n +} + +fn read_string(s string) string { + return s +} + +fn test_shared_primitive_types() { + shared counter := int(41) + shared greeting := 'hi' + + rlock counter { + assert read_int(counter) == 41 + } + lock counter { + counter++ + counter = 43 + } + rlock counter { + assert read_int(counter) == 43 + } + + rlock greeting { + assert read_string(greeting) == 'hi' + } + lock greeting { + greeting = 'hi!' + } + rlock greeting { + assert read_string(greeting) == 'hi!' + } +} -- 2.39.5