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>
{
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
{