checker: fix checking uninitialized refs

pull/4828/head
Alexey 2020-05-10 23:26:47 +03:00 committed by GitHub
parent b09fd66aa2
commit 71c2b26103
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 4 deletions

View File

@ -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() {

View File

@ -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 | }

View File

@ -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')
}