aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-03-27 15:41:47 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2023-03-30 16:48:28 +0200
commit816ed80ab7c02cf05cdb1e811f230fe25ea9d413 (patch)
tree0020a8c76da34ccea48877ab822eaf55b6936a32 /gcc
parent848bd4dfeb116f6cb029ccb44735c4c905ca46ca (diff)
downloadgcc-816ed80ab7c02cf05cdb1e811f230fe25ea9d413.zip
gcc-816ed80ab7c02cf05cdb1e811f230fe25ea9d413.tar.gz
gcc-816ed80ab7c02cf05cdb1e811f230fe25ea9d413.tar.bz2
token: Add type hints to string dump
The conversion to string of any known type literal was not giving back any type hint, not even quotes for string. This commit fix this. gcc/rust/ChangeLog: * lex/rust-token.cc (Token::as_string): Add type hint output. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/lex/rust-token.cc26
1 files changed, 25 insertions, 1 deletions
diff --git a/gcc/rust/lex/rust-token.cc b/gcc/rust/lex/rust-token.cc
index a6be8473..35da79e 100644
--- a/gcc/rust/lex/rust-token.cc
+++ b/gcc/rust/lex/rust-token.cc
@@ -137,7 +137,31 @@ Token::as_string () const
{
if (should_have_str ())
{
- return get_str ();
+ switch (get_id ())
+ {
+ case STRING_LITERAL:
+ return "\"" + get_str () + "\"";
+ case BYTE_STRING_LITERAL:
+ return "b\"" + get_str () + "\"";
+ case CHAR_LITERAL:
+ return "'" + get_str () + "'";
+ case BYTE_CHAR_LITERAL:
+ return "b'" + get_str () + "'";
+ case LIFETIME:
+ return "''" + get_str ();
+ case INT_LITERAL:
+ if (get_type_hint () == CORETYPE_UNKNOWN)
+ return get_str ();
+ else
+ return get_str () + get_type_hint_str ();
+ case FLOAT_LITERAL:
+ if (get_type_hint () == CORETYPE_UNKNOWN)
+ return get_str ();
+ else
+ return get_str () + get_type_hint_str ();
+ default:
+ return get_str ();
+ }
}
else
{