1 #### Splice in array
2 shopt -s oil:upgrade
3 var a = %(one two three)
4 argv.py @a
5 ## STDOUT:
6 ['one', 'two', 'three']
7 ## END
8
9 #### Splice in assoc array
10 shopt -s oil:upgrade
11 declare -A A=(['foo']=bar, ['spam']=eggs)
12 write -- @A
13 ## STDOUT:
14 foo
15 spam
16 ## END
17
18 #### Can't splice string
19 shopt -s oil:upgrade
20 var mystr = 'abc'
21 argv.py @mystr
22 ## status: 1
23 ## stdout-json: ""
24
25 #### Can't splice undefined
26 shopt -s oil:upgrade
27 argv.py @undefined
28 echo done
29 ## status: 1
30 ## stdout-json: ""
31
32 #### echo $[f(x)] for various types
33 shopt -s oil:upgrade
34
35 echo bool $[identity(true)]
36 echo int $[len(['a', 'b'])]
37 echo float $[abs(-3.14)]
38 echo str $[identity('identity')]
39
40 echo ---
41 echo bool expr $[true]
42 echo bool splice @[identity([true])]
43
44 ## STDOUT:
45 bool true
46 int 2
47 float 3.14
48 str identity
49 ---
50 bool expr true
51 bool splice true
52 ## END
53
54 #### echo $f (x) with space is runtime error
55 shopt -s oil:upgrade
56 echo $identity (true)
57 ## status: 3
58 ## STDOUT:
59 ## END
60
61 #### echo @f (x) with space is runtime error
62 shopt -s oil:upgrade
63 echo @identity (['foo', 'bar'])
64 ## status: 3
65 ## STDOUT:
66 ## END
67
68 #### echo $x for various types
69 const mybool = true
70 const myint = 42
71 const myfloat = 3.14
72
73 echo $mybool
74 echo $myint
75 echo $myfloat
76
77 ## STDOUT:
78 true
79 42
80 3.14
81 ## END
82
83 #### @[range()]
84 shopt -s oil:all
85 write @[range(10, 15, 2)]
86 ## STDOUT:
87 10
88 12
89 14
90 ## END
91
92 #### Wrong sigil with $range() is runtime error
93 shopt -s oil:upgrade
94 echo $[range(10, 15, 2)]
95 echo 'should not get here'
96 ## status: 3
97 ## STDOUT:
98 ## END
99
100 #### Serializing type in a list
101 shopt -s oil:upgrade
102
103 # If you can serialize the above, then why this?
104 var mylist = [3, true]
105
106 write -- @mylist
107
108 write -- ___
109
110 var list2 = [range]
111 write -- @list2
112
113 ## status: 3
114 ## STDOUT:
115 3
116 true
117 ___
118 ## END
119
120 #### Wrong sigil @[max(3, 4)]
121 shopt -s oil:upgrade
122 write @[max(3, 4)]
123 echo 'should not get here'
124 ## status: 3
125 ## STDOUT:
126 ## END
127
128