aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/ty.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/middle/ty.rs')
-rw-r--r--src/comp/middle/ty.rs26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs
index 72564078..c6394c34 100644
--- a/src/comp/middle/ty.rs
+++ b/src/comp/middle/ty.rs
@@ -115,10 +115,17 @@ fn ty_to_str(&@t typ) -> str {
option.t[ast.ident] ident,
vec[arg] inputs, @t output) -> str {
auto f = fn_input_to_str;
- auto s = "fn";
- if (proto == ast.proto_iter) {
- s = "iter";
+
+ auto s;
+ alt (proto) {
+ case (ast.proto_iter) {
+ s = "iter";
+ }
+ case (ast.proto_fn) {
+ s = "fn";
+ }
}
+
alt (ident) {
case (some[ast.ident](?i)) {
s += " ";
@@ -206,9 +213,16 @@ fn ty_to_str(&@t typ) -> str {
}
case (ty_obj(?meths)) {
- auto f = method_to_str;
- auto m = _vec.map[method,str](f, meths);
- s += "obj {\n\t" + _str.connect(m, "\n\t") + "\n}";
+ alt (typ.cname) {
+ case (some[str](?cs)) {
+ s += cs;
+ }
+ case (_) {
+ auto f = method_to_str;
+ auto m = _vec.map[method,str](f, meths);
+ s += "obj {\n\t" + _str.connect(m, "\n\t") + "\n}";
+ }
+ }
}
case (ty_var(?v)) {