From 0ce0c4c41af189bdbd5c797304f2405fc36387e5 Mon Sep 17 00:00:00 2001 From: Lindsey Kuper Date: Tue, 22 Mar 2011 13:24:29 -0700 Subject: Support for shorter error messages that are aware of objects' cnames. --- src/comp/middle/ty.rs | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/comp/middle/ty.rs') 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)) { -- cgit v1.2.3