checker: fix checking uninitialized refs
parent
b09fd66aa2
commit
71c2b26103
|
@ -330,7 +330,7 @@ pub fn (mut c Checker) struct_init(struct_init mut ast.StructInit) table.Type {
|
|||
}
|
||||
// Check uninitialized refs
|
||||
for field in info.fields {
|
||||
if field.name in inited_fields {
|
||||
if field.has_default_expr || field.name in inited_fields {
|
||||
continue
|
||||
}
|
||||
if field.typ.is_ptr() {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
vlib/v/checker/tests/reference_field_must_be_initialized.v:8:7: error: reference field `Node.next` must be initialized
|
||||
6 |
|
||||
7 | fn main(){
|
||||
8 | n := Node{ data: 123 }
|
||||
8 | n := Node{ data: 123 }
|
||||
| ~~~~~~~~~~~~~~~~~
|
||||
9 | eprintln('n.data: $n.data')
|
||||
10 | }
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
module main
|
||||
struct Node {
|
||||
data int
|
||||
next &Node = 0
|
||||
next &Node
|
||||
}
|
||||
|
||||
fn main(){
|
||||
n := Node{ data: 123 }
|
||||
n := Node{ data: 123 }
|
||||
eprintln('n.data: $n.data')
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue