v/vlib/v/tests/blank_ident_test.v

331 lines
4.8 KiB
V

fn test_assign() {
_ = 123
}
fn fn_with_blank_param(_ int) {
_ = 456
}
fn test_fn_with_blank_param() {
fn_with_blank_param(321)
}
fn fn_with_multiple_blank_param(_ int, _ f32) {
_ = 'not an int nor a float'
}
interface Foo {
fn_with_multiple_blank_param(int, f32)
}
struct Abc {}
fn (_ Abc) fn_with_multiple_blank_param(_ int, _ f32) {}
fn test_fn_with_multiple_blank_param() {
fn_with_multiple_blank_param(1, 1.1)
a := Abc{}
a.fn_with_multiple_blank_param(1, 1.1)
}
fn call_fn_with_multiple_blank_param(foo Foo) {
foo.fn_with_multiple_blank_param(1, 1.1)
}
fn test_interface_fn_with_multiple_blank_param() {
call_fn_with_multiple_blank_param(Abc{})
}
fn test_for_in_range() {
for _ in 1 .. 10 {
assert true
}
}
fn test_nested_range() {
for _ in 1 .. 10 {
for _ in 1 .. 10 {
assert true
}
}
}
fn test_for_in_array_simple() {
for _ in [1, 2, 3] {
assert true
}
}
fn test_for_in_array_key() {
mut i := 1
for _, v in [1, 2, 3] {
assert v == i
i++
}
}
fn test_for_in_array_val() {
mut j := 0
for i, _ in [3, 4, 5] {
assert i == j
j++
}
}
fn test_for_in_array_both() {
for _, _ in [1, 2, 3] {
assert true
}
}
fn test_nested_for_in_array_simple() {
for _ in [1, 2, 3] {
for _ in [1, 2, 3] {
assert true
}
}
}
fn test_nested_for_in_array_key() {
for _, v in [1, 2, 3] {
assert v > 0
for _, w in [1, 2, 3] {
assert w > 0
assert true
}
}
}
fn test_nested_for_in_array_val() {
for i, _ in [1, 2, 3] {
assert i > -1
for j, _ in [1, 2, 3] {
assert j > -1
assert true
}
}
}
fn test_nested_for_in_array_both() {
for _, _ in [1, 2, 3] {
for _, _ in [1, 2, 3] {
assert true
}
}
}
const (
m = {
'key': 'value'
}
)
fn test_for_in_map_key() {
for _, v in m {
assert v == 'value'
}
}
fn test_for_in_map_val() {
for i, _ in m {
assert i == 'key'
}
}
fn test_for_in_map_both() {
mut i := 0
for _, _ in m {
i++
}
assert i == 1
}
fn test_nested_for_in_map_key() {
for _, v in m {
assert v == 'value'
for _, w in m {
assert w == 'value'
}
}
}
fn test_nested_for_in_map_val() {
for i, _ in m {
assert i == 'key'
for j, _ in m {
assert j == 'key'
}
}
}
fn test_nested_for_in_map_both() {
mut i := 0
for _, _ in m {
for _, _ in m {
i++
}
}
assert i == 1
}
fn fn_for_in_variadic_args_simple(arr ...string) {
for _ in arr {
assert true
}
}
fn fn_for_in_variadic_args_key(arr ...string) {
for _, v in arr {
assert v > 'A'
assert true
}
}
fn fn_for_in_variadic_args_val(arr ...string) {
for i, _ in arr {
assert i > -1
assert true
}
}
fn fn_for_in_variadic_args_both(arr ...string) {
for _, _ in arr {
assert true
}
}
fn fn_nested_for_in_variadic_args(arr ...string) {
for _ in arr {
for _ in arr {
assert true
}
}
}
fn fn_nested_for_in_variadic_args_key(arr ...string) {
for _, v in arr {
assert v > 'A'
for _, w in arr {
assert w > 'A'
assert true
}
}
}
fn fn_nested_for_in_variadic_args_val(arr ...string) {
for i, _ in arr {
assert i > -1
for j, _ in arr {
assert j > -1
assert true
}
}
}
fn fn_nested_for_in_variadic_args_both(arr ...string) {
for _, _ in arr {
for _, _ in arr {
assert true
}
}
}
fn test_for_in_variadic_args() {
fn_for_in_variadic_args_simple('a', 'b', 'c')
fn_for_in_variadic_args_key('a', 'b', 'c')
fn_for_in_variadic_args_val('a', 'b', 'c')
fn_for_in_variadic_args_both('a', 'b', 'c')
fn_nested_for_in_variadic_args('a', 'b', 'c')
fn_nested_for_in_variadic_args_key('a', 'b', 'c')
fn_nested_for_in_variadic_args_val('a', 'b', 'c')
fn_nested_for_in_variadic_args_both('a', 'b', 'c')
}
fn test_for_in_string_simple() {
for _ in 'abcd' {
assert true
}
}
fn test_for_in_string_key() {
for _, v in 'a' {
assert v == `a`
}
}
fn test_for_in_string_val() {
for i, _ in 'a' {
assert i == 0
}
}
fn test_for_in_string_both() {
for _, _ in 'abcd' {
assert true
}
}
fn test_nested_for_in_string_simple() {
for _ in 'abcd' {
for _ in 'abcd' {
assert true
}
}
}
fn test_nested_for_in_string_key() {
for _, v in 'a' {
assert v == `a`
for _, w in 'a' {
assert w == `a`
}
}
}
fn test_nested_for_in_string_val() {
for i, _ in 'a' {
assert i == 0
for j, _ in 'a' {
assert j == 0
}
}
}
fn test_nested_for_in_string_both() {
for _, _ in 'abcd' {
for _, _ in 'abcd' {
assert true
}
}
}
fn multi_return() (int, int, string) {
return 1, 2, '3'
}
fn test_blank_multi_return() {
_, a, b := multi_return()
c, _, d := multi_return()
e, f, _ := multi_return()
_, _, g := multi_return()
_, h, _ := multi_return()
i, _, _ := multi_return()
_, _, _ := multi_return()
assert c == 1
assert e == 1
assert i == 1
assert a == 2
assert f == 2
assert h == 2
assert b == '3'
assert d == '3'
assert g == '3'
}
fn test_blank_in_for_c_init_stmt() {
a := []int{len: 2}
for _ := a[1]; a[1] != 0; {
}
assert true
}