forked from qt-creator/qt-creator
C++: Introduce unicode char/strings support
Those are the types char16_t and char32_t along with the new char/string literals u'', U'', u"", u8"", and U"". This is particularly important for the use of QStringLiteral since in some platforms it relies on expansion such as above. Note: The string literals quickfixes still need some tunning. Task-number: QTCREATORBUG-7449 Change-Id: Iebcfea15677dc8e0ebb6143def89a5477e1be7d4 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -289,13 +289,16 @@ bool ResolveExpression::visit(NumericLiteralAST *ast)
|
||||
Type *type = 0;
|
||||
bool isUnsigned = false;
|
||||
|
||||
if (tk.is(T_CHAR_LITERAL))
|
||||
if (tk.is(T_CHAR_LITERAL)) {
|
||||
type = control()->integerType(IntegerType::Char);
|
||||
else if (tk.is(T_WIDE_CHAR_LITERAL))
|
||||
} else if (tk.is(T_WIDE_CHAR_LITERAL)) {
|
||||
type = control()->integerType(IntegerType::WideChar);
|
||||
else if (const NumericLiteral *literal = numericLiteral(ast->literal_token)) {
|
||||
} else if (tk.is(T_UTF16_CHAR_LITERAL)) {
|
||||
type = control()->integerType(IntegerType::Char16);
|
||||
} else if (tk.is(T_UTF32_CHAR_LITERAL)) {
|
||||
type = control()->integerType(IntegerType::Char32);
|
||||
} else if (const NumericLiteral *literal = numericLiteral(ast->literal_token)) {
|
||||
isUnsigned = literal->isUnsigned();
|
||||
|
||||
if (literal->isInt())
|
||||
type = control()->integerType(IntegerType::Int);
|
||||
else if (literal->isLong())
|
||||
|
||||
Reference in New Issue
Block a user