@@ -164,28 +164,26 @@ mod ct {
164164 let noflags: [ flag ] = [ ] ;
165165 if i >= lim { ret { flags : noflags, next : i} ; }
166166
167- // FIXME: This recursion generates illegal instructions if the return
168- // value isn't boxed. Only started happening after the ivec conversion
169167 fn more_ ( f : flag , s : str , i : uint , lim : uint ) ->
170- @ { flags : [ flag ] , next : uint } {
168+ { flags : [ flag ] , next : uint } {
171169 let next = parse_flags ( s, i + 1 u, lim) ;
172170 let rest = next. flags ;
173171 let j = next. next ;
174172 let curr: [ flag ] = [ f] ;
175- ret @ { flags : curr + rest, next : j} ;
173+ ret { flags : curr + rest, next : j} ;
176174 }
177175 let more = bind more_ ( _, s, i, lim) ;
178176 let f = s[ i] ;
179177 ret if f == '-' as u8 {
180- * more ( flag_left_justify)
178+ more ( flag_left_justify)
181179 } else if f == '0' as u8 {
182- * more ( flag_left_zero_pad)
180+ more ( flag_left_zero_pad)
183181 } else if f == ' ' as u8 {
184- * more ( flag_space_for_sign)
182+ more ( flag_space_for_sign)
185183 } else if f == '+' as u8 {
186- * more ( flag_sign_always)
184+ more ( flag_sign_always)
187185 } else if f == '#' as u8 {
188- * more ( flag_alternate)
186+ more ( flag_alternate)
189187 } else { { flags: noflags, next: i} } ;
190188 }
191189 fn parse_count ( s : str , i : uint , lim : uint ) -> { count : count , next : uint } {
0 commit comments