mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
tests: use isreftype[T]()
and sizeof[T]()
syntax, fix vfmt to support them, when written explicitly (#17103)
This commit is contained in:
parent
1113205376
commit
812a17fb43
@ -2637,17 +2637,17 @@ pub fn (mut f Fmt) selector_expr(node ast.SelectorExpr) {
|
||||
|
||||
pub fn (mut f Fmt) size_of(node ast.SizeOf) {
|
||||
f.write('sizeof')
|
||||
if node.is_type {
|
||||
// keep the old form for now
|
||||
f.write('(')
|
||||
f.write(f.table.type_to_str_using_aliases(node.typ, f.mod2alias))
|
||||
f.write(')')
|
||||
return
|
||||
}
|
||||
if node.is_type {
|
||||
if node.is_type && !node.guessed_type {
|
||||
// the new form was explicitly written in the source code; keep it:
|
||||
f.write('[')
|
||||
f.write(f.table.type_to_str_using_aliases(node.typ, f.mod2alias))
|
||||
f.write(']()')
|
||||
return
|
||||
}
|
||||
if node.is_type {
|
||||
f.write('(')
|
||||
f.write(f.table.type_to_str_using_aliases(node.typ, f.mod2alias))
|
||||
f.write(')')
|
||||
} else {
|
||||
f.write('(')
|
||||
f.expr(node.expr)
|
||||
@ -2657,17 +2657,17 @@ pub fn (mut f Fmt) size_of(node ast.SizeOf) {
|
||||
|
||||
pub fn (mut f Fmt) is_ref_type(node ast.IsRefType) {
|
||||
f.write('isreftype')
|
||||
if node.is_type {
|
||||
// keep the old form for now
|
||||
f.write('(')
|
||||
f.write(f.table.type_to_str_using_aliases(node.typ, f.mod2alias))
|
||||
f.write(')')
|
||||
return
|
||||
}
|
||||
if node.is_type {
|
||||
if node.is_type && !node.guessed_type {
|
||||
// the new form was explicitly written in the source code; keep it:
|
||||
f.write('[')
|
||||
f.write(f.table.type_to_str_using_aliases(node.typ, f.mod2alias))
|
||||
f.write(']()')
|
||||
return
|
||||
}
|
||||
if node.is_type {
|
||||
f.write('(')
|
||||
f.write(f.table.type_to_str_using_aliases(node.typ, f.mod2alias))
|
||||
f.write(')')
|
||||
} else {
|
||||
f.write('(')
|
||||
f.expr(node.expr)
|
||||
|
@ -29,8 +29,8 @@ fn test_isreftype() {
|
||||
assert isreftype(S4) == false
|
||||
assert isreftype(S5) == true
|
||||
assert isreftype(f64) == false
|
||||
assert isreftype([]f64) == true
|
||||
assert isreftype([3]int) == false
|
||||
assert isreftype[[]f64]() == true
|
||||
assert isreftype[[3]int]() == false
|
||||
}
|
||||
|
||||
fn check_ref[T]() string {
|
||||
|
@ -16,7 +16,7 @@ fn test_math_sizeof() {
|
||||
|
||||
fn test_sizeof() {
|
||||
assert sizeof(rune) == 4
|
||||
assert sizeof([44]u8) == 44
|
||||
assert sizeof[[44]u8]() == 44
|
||||
assert sizeof(`€`) == 4
|
||||
// depends on -m32/64
|
||||
assert sizeof(S1) in [u32(4), 8]
|
||||
|
Loading…
Reference in New Issue
Block a user