aboutsummaryrefslogtreecommitdiff
path: root/old-tests/variable/type/buildfile
blob: a22cdddbbe75a57d08c702c38bd5c796999c6cc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Variable typing.
#

#[string] str3 = foo
#[bool] str3 = false       # error: changing str3 type from string to bool

#[bool string] str3 = foo  # error: multiple variable types: bool, string

#[junk] jnk = foo          # error: unknown variable attribute junk

[string] str1 = bar
str1 =+ foo
str1 += baz
print $str1

str2 = bar
[string] str2 =+ foo
str2 += baz
print $str2

# Value typing.
#

#v = [bool string] true # error: multiple value types: string, bool
#v = [string=junk] true # error: unexpected value for attribute string: junk

#[string] var =
#var = [bool] true # error: confliction variable var type string and value type bool

#var = [string] false
#var += [bool] true # error: confliction original value type string and append/prepend value type bool

v1a = [uint64] 00
v1b += [uint64] 00
v1c =+ [uint64] 00
print $v1a $v1b $v1c # 0 0 0

v2 = [uint64] 00
v2 = [string] 00
print $v2 # 00

#v3a = [uint64] 00
#v3a += [string] 00 # error: confliction original value type uint64 and append/prepend value type string

#v3b = [uint64] 00
#v3b =+ [string] 00 # error: confliction original value type uint64 and append/prepend value type string

v4a = 01
v4a += [uint64] 01
print $v4a # 2

v4b = 01
v4b =+ [uint64] 01
print $v4b # 2

v5a = 01
sub/:
{
  v5a += [uint64] 01
  print $v5a # 2
}

v5b = 01
sub/:
{
  v5b =+ [uint64] 01
  print $v5b # 2
}

v6 = [uint64 null]
v6 += 00
print $v6 # 0

v7 = [string null]
v7 += [uint64] 00
print $v7 # 0

print [uint64] 00 # 0

v8 = [uint64] 01
v8 = abc
print $v8 # abc

./: