Lines Matching refs:defer

5 needs cmd defer
8 test defer-1.1 {defer in proc} {
13 defer {append x L}
15 defer {append ::x G}
16 # Will return "-", not "-L" since return happens before defer triggers
22 test defer-1.2 {set $defer directly} {
25 lappend jim::defer {append ::x a}
26 lappend jim::defer {append ::x b}
27 return $jim::defer
33 test defer-1.3 {unset $defer} {
36 defer {append ::x a}
37 # unset, to remove all defer actions
38 unset jim::defer
44 test defer-1.4 {error in defer - error} {
47 # First defer script will not happen because of error in next defer script
48 defer {append ::x a}
50 defer {blah}
51 # Last defer script will happen
52 defer {append ::x b}
53 # This error will take precedence over the error from defer
60 test defer-1.5 {error in defer - return} {
63 # First defer script will not happen
64 defer {append ::x a}
65 defer {blah}
66 # Last defer script will happen
67 defer {append ::x b}
74 test defer-1.6 {error in defer - ok} {
77 # First defer script will not happen
78 defer {append ::x a}
80 defer {blah}
81 # Last defer script will happen
82 defer {append ::x b}
88 test defer-1.7 {error in defer - break} {
91 # First defer script will not happen
92 defer {append ::x a}
94 defer {return -code 30 ret30}
95 # Last defer script will happen
96 defer {append ::x b}
104 test defer-1.8 {error in defer - tailcall} {
108 defer {blah}
110 # Tailcall will not happen because of error in defer
117 test defer-1.9 {Add to defer in defer body} {
120 defer {
121 # Add to defer in defer
122 defer {
127 defer {append ::x a}
133 test defer-1.10 {Unset defer in defer body} {
136 defer {
138 unset -nocomplain jim::defer
140 defer {append ::x a}
146 test defer-1.11 {defer through tailcall} {
149 defer {append ::x a}
153 defer {append ::x b}
155 # won't make any difference for defer
159 defer {append ::x c}
165 test defer-1.12 {defer in recursive call} {
168 # defer happens just before the return, so after the recursive call to a
169 defer {lappend ::x $n}
178 test defer-1.13 {defer in recursive tailcall} {
181 # defer happens just before the return, so before the tailcall to a
182 defer {lappend ::x $n}
191 test defer-1.14 {defer capture variables} {
195 # A normal defer will evaluate at the end of the proc, so $y may change
196 defer {lappend ::x $y}
200 defer [list lappend ::x $y]
205 defer [lambda {} {y} {
216 test defer-2.1 {defer from interp} -body {
218 # defer needs to have some effect to detect on exit,
220 file delete defer.tmp
222 defer {
223 [open defer.tmp w] puts "leaving child"
226 set a [file exists defer.tmp]
229 set f [open defer.tmp]
234 file delete defer.tmp