diff options
| author | Lindsey Kuper <[email protected]> | 2011-03-22 13:24:29 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-03-22 14:23:43 -0700 |
| commit | 0ce0c4c41af189bdbd5c797304f2405fc36387e5 (patch) | |
| tree | 74acc109a7b0570a03a66bce56a2fbb99205c647 /src/comp/middle/ty.rs | |
| parent | Revert "Remove usages of case(_) { fail; } since the compiler does this autom... (diff) | |
| download | rust-0ce0c4c41af189bdbd5c797304f2405fc36387e5.tar.xz rust-0ce0c4c41af189bdbd5c797304f2405fc36387e5.zip | |
Support for shorter error messages that are aware of objects' cnames.
Diffstat (limited to 'src/comp/middle/ty.rs')
| -rw-r--r-- | src/comp/middle/ty.rs | 26 |
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)) { |