parser, checker: correct error message for a fixed array size using a non constant (fix #13219) (#13228)
parent
5143837d66
commit
d553071e65
|
@ -163,7 +163,7 @@ pub fn (mut c Checker) array_init(mut node ast.ArrayInit) ast.Type {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
c.error('expecting `int` for fixed size', node.pos)
|
c.error('fixed array size cannot use non-constant value', init_expr.position())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if fixed_size <= 0 {
|
if fixed_size <= 0 {
|
||||||
|
|
|
@ -59,7 +59,8 @@ pub fn (mut p Parser) parse_array_type(expecting token.Kind) ast.Type {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
p.error('expecting `int` for fixed size')
|
p.error_with_pos('fixed array size cannot use non-constant value',
|
||||||
|
size_expr.position())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
vlib/v/parser/tests/fixed_array_size_using_non_constant_err.vv:9:25: error: fixed array size cannot use non-constant value
|
||||||
|
7 | println(typeof(t.len).name)
|
||||||
|
8 |
|
||||||
|
9 | mut score := [t.len][t.len]int{}
|
||||||
|
| ~~~
|
||||||
|
10 | }
|
|
@ -0,0 +1,10 @@
|
||||||
|
module main
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
mut t := [0, 0]
|
||||||
|
|
||||||
|
println(t.len)
|
||||||
|
println(typeof(t.len).name)
|
||||||
|
|
||||||
|
mut score := [t.len][t.len]int{}
|
||||||
|
}
|
Loading…
Reference in New Issue