diff --git a/vlib/compiler/expression.v b/vlib/compiler/expression.v index eaf76fff16..6fc3cc1228 100644 --- a/vlib/compiler/expression.v +++ b/vlib/compiler/expression.v @@ -925,9 +925,6 @@ fn (p mut Parser) factor() string { } peek2 := p.tokens[p.token_idx + 1] if p.peek() == .rcbr || (p.peek() == .name && peek2.tok == .colon) { - if !p.expected_type.ends_with('Config') { - p.error('short struct initialization syntax only works with structs that end with `Config`') - } return p.struct_init(p.expected_type) } // { user | name :'new name' } diff --git a/vlib/compiler/tests/struct_test.v b/vlib/compiler/tests/struct_test.v index 879e8c2f86..7769d538f3 100644 --- a/vlib/compiler/tests/struct_test.v +++ b/vlib/compiler/tests/struct_test.v @@ -203,9 +203,14 @@ struct Config { fn foo_config(c Config) { } +fn foo2(u User) { + +} + fn test_config() { foo_config({n: 10, def: 20}) foo_config({}) + foo2({name:'Peter'}) }