mirror of
https://github.com/vlang/v.git
synced 2025-09-13 22:42:26 +03:00
checker: fix calls with result propagation, using other consts, in const declaration expressions (fix #21609) (#25060)
This commit is contained in:
parent
3b561d590d
commit
3a6b651fa4
2 changed files with 12 additions and 1 deletions
|
@ -4256,9 +4256,10 @@ fn (mut c Checker) ident(mut node ast.Ident) ast.Type {
|
||||||
if typ == 0 {
|
if typ == 0 {
|
||||||
old_c_mod := c.mod
|
old_c_mod := c.mod
|
||||||
c.mod = obj.mod
|
c.mod = obj.mod
|
||||||
|
inside_const := c.inside_const
|
||||||
c.inside_const = true
|
c.inside_const = true
|
||||||
typ = c.expr(mut obj.expr)
|
typ = c.expr(mut obj.expr)
|
||||||
c.inside_const = false
|
c.inside_const = inside_const
|
||||||
c.mod = old_c_mod
|
c.mod = old_c_mod
|
||||||
|
|
||||||
if mut obj.expr is ast.CallExpr {
|
if mut obj.expr is ast.CallExpr {
|
||||||
|
|
10
vlib/v/tests/consts/const_propagate_result_test.v
Normal file
10
vlib/v/tests/consts/const_propagate_result_test.v
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
const constant = 5
|
||||||
|
const other = init_const(constant)!
|
||||||
|
|
||||||
|
fn test_main() {
|
||||||
|
assert other == 5
|
||||||
|
}
|
||||||
|
|
||||||
|
fn init_const(c int) !int {
|
||||||
|
return c
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue