diff options
| author | Michael Sullivan <sully@msully.net> | 2012-06-28 23:36:00 -0700 |
|---|---|---|
| committer | Michael Sullivan <sully@msully.net> | 2012-06-28 23:36:00 -0700 |
| commit | 7aa43b2599b353dc3e26f5ecc2aef30bc1883145 (patch) | |
| tree | b901ea1c118af1982a03b78d75ac42d5e4e6cbd3 /src/libsyntax/ext | |
| parent | 498b3ff57f7269e62765e53c5987791ff5621d6a (diff) | |
| download | rust-7aa43b2599b353dc3e26f5ecc2aef30bc1883145.tar.gz rust-7aa43b2599b353dc3e26f5ecc2aef30bc1883145.zip | |
Make fmt use a bitmask instead of a vector of flags. Closes #1993.
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/fmt.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/libsyntax/ext/fmt.rs b/src/libsyntax/ext/fmt.rs index 09ebc0b79cd..bac880b60a8 100644 --- a/src/libsyntax/ext/fmt.rs +++ b/src/libsyntax/ext/fmt.rs @@ -50,19 +50,19 @@ fn pieces_to_expr(cx: ext_ctxt, sp: span, fn make_rt_conv_expr(cx: ext_ctxt, sp: span, cnv: conv) -> @ast::expr { fn make_flags(cx: ext_ctxt, sp: span, flags: [flag]/~) -> @ast::expr { - let mut flagexprs: [@ast::expr]/~ = []/~; + let mut tmp_expr = make_rt_path_expr(cx, sp, @"flag_none"); for flags.each {|f| - let mut fstr; - alt f { - flag_left_justify { fstr = "flag_left_justify"; } - flag_left_zero_pad { fstr = "flag_left_zero_pad"; } - flag_space_for_sign { fstr = "flag_space_for_sign"; } - flag_sign_always { fstr = "flag_sign_always"; } - flag_alternate { fstr = "flag_alternate"; } - } - vec::push(flagexprs, make_rt_path_expr(cx, sp, @fstr)); + let fstr = alt f { + flag_left_justify { "flag_left_justify" } + flag_left_zero_pad { "flag_left_zero_pad" } + flag_space_for_sign { "flag_space_for_sign" } + flag_sign_always { "flag_sign_always" } + flag_alternate { "flag_alternate" } + }; + tmp_expr = mk_binary(cx, sp, ast::bitor, tmp_expr, + make_rt_path_expr(cx, sp, @fstr)); } - ret mk_uniq_vec_e(cx, sp, flagexprs); + ret tmp_expr; } fn make_count(cx: ext_ctxt, sp: span, cnt: count) -> @ast::expr { alt cnt { |
