diff options
| author | Aleksandr Koshlo <sash7ko@gmail.com> | 2014-10-19 18:39:39 +0300 |
|---|---|---|
| committer | Aleksandr Koshlo <sash7ko@gmail.com> | 2014-10-19 18:39:51 +0300 |
| commit | 49ec356c601b3c2fb6ff78df9e22786ec93d34f8 (patch) | |
| tree | 032a1d9839959c115ddf4808f08f859a54cba10c /src/libsyntax/print | |
| parent | c121cbab35c9ff9ba133c578976a4ec35c011bcf (diff) | |
| download | rust-49ec356c601b3c2fb6ff78df9e22786ec93d34f8.tar.gz rust-49ec356c601b3c2fb6ff78df9e22786ec93d34f8.zip | |
fix printing signed literal in print_literal
Diffstat (limited to 'src/libsyntax/print')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index d32828192e9..f654bc30680 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -2680,8 +2680,9 @@ impl<'a> State<'a> { ast_util::int_ty_to_string(st, Some(i as i64)).as_slice()) } ast::SignedIntLit(st, ast::Minus) => { + let istr = ast_util::int_ty_to_string(st, Some(-(i as i64))); word(&mut self.s, - ast_util::int_ty_to_string(st, Some(-(i as i64))).as_slice()) + format!("-{}", istr).as_slice()) } ast::UnsignedIntLit(ut) => { word(&mut self.s, ast_util::uint_ty_to_string(ut, Some(i)).as_slice()) @@ -2930,4 +2931,12 @@ mod test { let varstr = variant_to_string(&var); assert_eq!(&varstr,&"pub principal_skinner".to_string()); } + + #[test] + fn test_signed_int_to_string() { + let pos_int = ast::LitInt(42, ast::SignedIntLit(ast::TyI32, ast::Plus)); + let neg_int = ast::LitInt((-42) as u64, ast::SignedIntLit(ast::TyI32, ast::Minus)); + assert_eq!(format!("-{}", lit_to_string(&codemap::dummy_spanned(pos_int))), + lit_to_string(&codemap::dummy_spanned(neg_int))); + } } |
