vxx2 / vlib / v / checker / tests / infix_err.vv
43 lines · 35 sloc · 591 bytes · 052d862244e04dec20582eec248e5cb548060cc4
Raw
1struct Data {
2 name ?string
3}
4
5fn f() ?string {
6 return none
7}
8
9fn g() ?int {
10 return none
11}
12
13_ = '' + f()
14_ = f() + ''
15_ = f() + f()
16
17_ = 4 + g()
18_ = int(0) + g()
19_ = g() + int(3)
20_ = g() + 3
21
22// binary operands
23_ = 1 && 2
24_ = true || 2
25
26// boolean expressions
27_ = 1 == 1 && 2 == 2 || 3 == 3
28_ = 1 == 1 && 2 == 2 || 3 == 3 && 4 == 4
29_ = 1 + println('')
30
31// struct members
32data := Data {
33 'a name'
34}
35name := 'a name'
36_ := data.name == 'a name'
37_ := 'a name' == data.name
38_ := data.name == name
39_ := name == data.name
40
41// these should not error
42_ := data.name == none
43_ := none == data.name
44