about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <andersrb@gmail.com>2011-04-11 21:55:03 -0400
committerBrian Anderson <andersrb@gmail.com>2011-04-11 21:55:03 -0400
commit73eecbd0cad2e4d16a6a2d0aa197e3bb60f93b1f (patch)
treecc461115b1be7272fdb7c7f0d00c5a6cf0ad06d6 /src
parentbba245f3e6cdf9203cfafe7e8a81739a499b20eb (diff)
downloadrust-73eecbd0cad2e4d16a6a2d0aa197e3bb60f93b1f.tar.gz
rust-73eecbd0cad2e4d16a6a2d0aa197e3bb60f93b1f.zip
Factor out creation of calls into ExtFmt.RT
Diffstat (limited to 'src')
-rw-r--r--src/comp/front/extfmt.rs24
-rw-r--r--src/lib/ExtFmt.rs8
2 files changed, 16 insertions, 16 deletions
diff --git a/src/comp/front/extfmt.rs b/src/comp/front/extfmt.rs
index 6004bc90c25..1884813dde3 100644
--- a/src/comp/front/extfmt.rs
+++ b/src/comp/front/extfmt.rs
@@ -125,6 +125,14 @@ fn pieces_to_expr(vec[piece] pieces, vec[@ast.expr] args) -> @ast.expr {
         ret sp_callexpr;
     }
 
+    fn make_conv_call(common.span sp, str conv_type,
+                      @ast.expr arg) -> @ast.expr {
+        auto fname = "conv_" + conv_type;
+        let vec[str] path = vec("std", "ExtFmt", "RT", fname);
+        let vec[@ast.expr] args = vec(arg);
+        ret make_call(arg.span, path, args);
+    }
+
     fn make_new_conv(conv cnv, @ast.expr arg) -> @ast.expr {
 
         auto unsupported = "conversion not supported in #fmt string";
@@ -168,26 +176,18 @@ fn pieces_to_expr(vec[piece] pieces, vec[@ast.expr] args) -> @ast.expr {
             case (ty_int(?sign)) {
                 alt (sign) {
                     case (signed) {
-                        let vec[str] path = vec("std", "ExtFmt", "RT", "int_to_str");
-                        let vec[@ast.expr] args = vec(arg);
-                        ret make_call(arg.span, path, args);
+                        ret make_conv_call(arg.span, "int", arg);
                     }
                     case (unsigned) {
-                        let vec[str] path = vec("std", "ExtFmt", "RT", "int_to_str");
-                        let vec[@ast.expr] args = vec(arg);
-                        ret make_call(arg.span, path, args);
+                        ret make_conv_call(arg.span, "uint", arg);
                     }
                 }
             }
             case (ty_bool) {
-                let vec[str] path = vec("std", "ExtFmt", "RT", "bool_to_str");
-                let vec[@ast.expr] args = vec(arg);
-                ret make_call(arg.span, path, args);
+                ret make_conv_call(arg.span, "bool", arg);
             }
             case (ty_char) {
-                let vec[str] path = vec("std", "ExtFmt", "RT", "char_to_str");
-                let vec[@ast.expr] args = vec(arg);
-                ret make_call(arg.span, path, args);
+                ret make_conv_call(arg.span, "char", arg);
             }
             case (_) {
                 log unsupported;
diff --git a/src/lib/ExtFmt.rs b/src/lib/ExtFmt.rs
index 7ef9160594d..e08de7ee414 100644
--- a/src/lib/ExtFmt.rs
+++ b/src/lib/ExtFmt.rs
@@ -264,15 +264,15 @@ mod CT {
 
 // Functions used by the fmt extension at runtime
 mod RT {
-    fn int_to_str(int i) -> str {
+    fn conv_int(int i) -> str {
         ret _int.to_str(i, 10u);
     }
 
-    fn uint_to_str(uint u) -> str {
+    fn conv_uint(uint u) -> str {
         ret _uint.to_str(u, 10u);
     }
 
-    fn bool_to_str(bool b) -> str {
+    fn conv_bool(bool b) -> str {
         if (b) {
             ret "true";
         } else {
@@ -280,7 +280,7 @@ mod RT {
         }
     }
 
-    fn char_to_str(char c) -> str {
+    fn conv_char(char c) -> str {
         ret _str.from_char(c);
     }
 }