This commit is contained in:
Larsimusrex 2025-09-12 11:27:47 +02:00 committed by GitHub
commit a10ad725a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 21 additions and 4 deletions

View file

@ -7574,8 +7574,9 @@ fn (mut g Gen) type_default_impl(typ_ ast.Type, decode_sumtype bool) string {
}
}
.struct {
mut has_none_zero := false
info := sym.info as ast.Struct
mut has_none_zero := info.fields.len == 0
mut init_str := if info.is_anon && !g.inside_global_decl {
'(${g.styp(typ)}){'
} else {

View file

@ -0,0 +1,18 @@
struct Empty {
}
type Sum = int | Empty
fn do_generic[T](val T) T {
$for v in Sum.variants {
if val is v {
return T(v)
}
}
return T{}
}
fn test_empty_cast() {
assert do_generic(Sum(0)) == Sum(0)
assert do_generic(Sum(Empty{})) == Sum(Empty{})
}

View file

@ -24,9 +24,7 @@ pub type Any = []Any
| Null
// Null is a simple representation of the `null` value in JSON.
pub struct Null {
is_null bool = true
}
pub struct Null {}
// null is an instance of the Null type, to ease comparisons with it.
pub const null = Null{}