about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-08-02 21:26:54 -0700
committerBrian Anderson <banderson@mozilla.com>2011-08-03 10:55:59 -0700
commit0b7a94a94c15546016a2c85329bfa16f5a39628a (patch)
tree78a18f050f458250faa0d27d36413b21543b0395
parent843767a841d49ce3c5005b9fd2705217af22d5d5 (diff)
downloadrust-0b7a94a94c15546016a2c85329bfa16f5a39628a.tar.gz
rust-0b7a94a94c15546016a2c85329bfa16f5a39628a.zip
Pretty-print kinds of type params
-rw-r--r--src/comp/syntax/print/pprust.rs9
-rw-r--r--src/test/run-pass/swap-2.rs2
2 files changed, 9 insertions, 2 deletions
diff --git a/src/comp/syntax/print/pprust.rs b/src/comp/syntax/print/pprust.rs
index f342e0e26a8..e99414d98a5 100644
--- a/src/comp/syntax/print/pprust.rs
+++ b/src/comp/syntax/print/pprust.rs
@@ -1195,10 +1195,19 @@ fn print_alias(s: &ps, m: ast::mode) {
     }
 }
 
+fn print_kind(s: &ps, kind: ast::kind) {
+    alt kind {
+      ast::kind_unique. { word(s.s, "~"); }
+      ast::kind_shared. { word(s.s, "@"); }
+      _ { /* fallthrough */ }
+    }
+}
+
 fn print_type_params(s: &ps, params: &ast::ty_param[]) {
     if ivec::len(params) > 0u {
         word(s.s, "[");
         fn printParam(s: &ps, param: &ast::ty_param) {
+            print_kind(s, param.kind);
             word(s.s, param.ident);
         }
         commasep(s, inconsistent, params, printParam);
diff --git a/src/test/run-pass/swap-2.rs b/src/test/run-pass/swap-2.rs
index 3322ce19361..724ffc8b70d 100644
--- a/src/test/run-pass/swap-2.rs
+++ b/src/test/run-pass/swap-2.rs
@@ -1,5 +1,3 @@
-// xfail-pretty
-
 fn swap[@T](v: &vec[mutable T], i: int, j: int) { v.(i) <-> v.(j); }
 
 fn main() {