Changeset 21147
- Timestamp:
- 07/01/08 22:29:12 (2 months ago)
- Files:
-
- t/var/state.t (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
t/var/state.t
r20490 r21147 52 52 53 53 # state will first {...} 54 #?pugs eval "parse error" 54 55 { 55 56 my ($a, $b); 56 eval ' 57 my $gen = { 58 state $svar will first { 42 }; 59 -> { $svar++ }; 60 } 61 $a = $gen(); # $svar == 42 62 $a(); $a(); # $svar == 44 63 $b = $gen()(); # $svar == 44 64 '; 57 my $gen = { 58 state $svar will first { 42 }; 59 -> { $svar++ }; 60 } 61 $a = $gen(); # $svar == 42 62 $a(); $a(); # $svar == 44 63 $b = $gen()(); # $svar == 44 65 64 66 65 is $b, 44, 'state will first {...} works', :todo<feature>; … … 78 77 79 78 my $svar_ref = $gen(); 80 is $$svar_ref, 44, "reference to a state() var", :todo<bug>; 79 #?pugs todo "state bug" 80 is $$svar_ref, 44, "reference to a state() var"; 81 81 } 82 82 83 83 # Anonymous state vars 84 84 # L<http://groups.google.de/group/perl.perl6.language/msg/07aefb88f5fc8429> 85 #?pugs todo 'anonymous state vars' 85 86 { 86 87 # XXX -- currently this is parsed as \&state() … … 92 93 93 94 my $svar_ref = $gen(); # $svar == 2 94 is try { $$svar_ref }, 2, "anonymous state() vars" , :todo<feature>;95 is try { $$svar_ref }, 2, "anonymous state() vars"; 95 96 } 96 97 97 98 # L<http://www.nntp.perl.org/group/perl.perl6.language/20888> 98 99 # ("Re: Declaration and definition of state() vars" from Larry) 100 #?pugs eval 'Parse error' 99 101 { 100 102 my ($a, $b); 101 eval ' 102 my $gen = { 103 (state $svar) = 42; 104 my $ret = { $svar++ }; 105 }; 103 my $gen = { 104 (state $svar) = 42; 105 my $ret = { $svar++ }; 106 }; 106 107 107 $a = $gen(); # $svar == 42 108 $a(); $a(); # $svar == 44 109 $b = $gen()(); # $svar == 42 110 '; 108 $a = $gen(); # $svar == 42 109 $a(); $a(); # $svar == 44 110 $b = $gen()(); # $svar == 42 111 111 is $b, 42, "state() and parens"; # svar == 43 112 112 }
