From ca2a50fad7439f02a9e99f8107ffed8460fc8c44 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Sun, 19 May 2019 01:04:26 +0300 Subject: syntax: Turn `token::Lit` into a struct --- src/libsyntax/print/pprust.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'src/libsyntax/print') diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 2e072522d24..67f57a7ed00 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -163,22 +163,22 @@ fn binop_to_string(op: BinOpToken) -> &'static str { } } -pub fn literal_to_string(lit: token::Lit, suffix: Option) -> String { - let mut out = match lit { - token::Byte(b) => format!("b'{}'", b), - token::Char(c) => format!("'{}'", c), - token::Err(c) => format!("'{}'", c), - token::Bool(c) | - token::Float(c) | - token::Integer(c) => c.to_string(), - token::Str_(s) => format!("\"{}\"", s), - token::StrRaw(s, n) => format!("r{delim}\"{string}\"{delim}", - delim="#".repeat(n as usize), - string=s), - token::ByteStr(v) => format!("b\"{}\"", v), - token::ByteStrRaw(s, n) => format!("br{delim}\"{string}\"{delim}", - delim="#".repeat(n as usize), - string=s), +pub fn literal_to_string(token::Lit { kind, symbol, suffix }: token::Lit) -> String { + let mut out = match kind { + token::Byte => format!("b'{}'", symbol), + token::Char => format!("'{}'", symbol), + token::Bool | + token::Float | + token::Integer => symbol.to_string(), + token::Str => format!("\"{}\"", symbol), + token::StrRaw(n) => format!("r{delim}\"{string}\"{delim}", + delim="#".repeat(n as usize), + string=symbol), + token::ByteStr => format!("b\"{}\"", symbol), + token::ByteStrRaw(n) => format!("br{delim}\"{string}\"{delim}", + delim="#".repeat(n as usize), + string=symbol), + token::Err => format!("'{}'", symbol), }; if let Some(suffix) = suffix { @@ -231,7 +231,7 @@ pub fn token_to_string(tok: &Token) -> String { token::SingleQuote => "'".to_string(), /* Literals */ - token::Literal(lit, suf) => literal_to_string(lit, suf), + token::Literal(lit) => literal_to_string(lit), /* Name components */ token::Ident(s, false) => s.to_string(), @@ -571,7 +571,7 @@ pub trait PrintState<'a> { fn print_literal(&mut self, lit: &ast::Lit) -> io::Result<()> { self.maybe_print_comment(lit.span.lo())?; - self.writer().word(literal_to_string(lit.token, lit.suffix)) + self.writer().word(literal_to_string(lit.token)) } fn print_string(&mut self, st: &str, -- cgit 1.4.1-3-g733a5