diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-03-16 10:41:00 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-03-16 14:02:02 -0700 |
| commit | f6a792585b6311ea6cc9f73f8735116bf8246f5b (patch) | |
| tree | a2b6acb9d9b31f231ee722d3604d565ea5a9f382 | |
| parent | 3db8ae0bdc3f2c2d59a936973974a13451bb129d (diff) | |
| download | rust-f6a792585b6311ea6cc9f73f8735116bf8246f5b.tar.gz rust-f6a792585b6311ea6cc9f73f8735116bf8246f5b.zip | |
rustc: Give a better error message when references involving the caller region fail to unify
| -rw-r--r-- | src/rustc/util/ppaux.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rustc/util/ppaux.rs b/src/rustc/util/ppaux.rs index 885ac9d7fbe..8e2e71aeeb3 100644 --- a/src/rustc/util/ppaux.rs +++ b/src/rustc/util/ppaux.rs @@ -13,7 +13,19 @@ import driver::session::session; fn region_to_str(cx: ctxt, region: region) -> str { alt region { re_named(_) { "<name>" } // TODO: include name - re_caller(_) { "<caller>" } + re_caller(def_id) { + if def_id.crate == ast::local_crate { + alt cx.items.get(def_id.node) { + ast_map::node_item(item, path) { + #fmt("<caller of %s::%s>", ast_map::path_to_str(*path), + item.ident) + } + _ { "<caller>" } + } + } else { + "<caller>" + } + } re_block(node_id) { alt cx.items.get(node_id) { ast_map::node_block(blk) { |
