diff options
author | Andy Shaw <andy.shaw@qt.io> | 2023-02-20 14:47:20 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2023-03-28 15:09:16 +0000 |
commit | a1b46788b7d2bf0117dbf63f4b4fedbc4a91eeb8 (patch) | |
tree | 59d3271b0a0c328a99bd52c04421e7115ed8ab8c /src/linguist | |
parent | 34397930803f3d4648b868186cee2e6a593181cd (diff) | |
download | qttools-a1b46788b7d2bf0117dbf63f4b4fedbc4a91eeb8.tar.gz |
Don't treat enum classes as a normal class
The enum class construct can only be based on an integral type so they
can be skipped over safely.
Pick-to: 6.5
Task-number: QTBUG-36589
Change-Id: I9a7dd7508f80002e9e46429de726a75607d21a54
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/linguist')
-rw-r--r-- | src/linguist/lupdate/cpp.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/linguist/lupdate/cpp.cpp b/src/linguist/lupdate/cpp.cpp index cc56f2d5d..7779bd99e 100644 --- a/src/linguist/lupdate/cpp.cpp +++ b/src/linguist/lupdate/cpp.cpp @@ -98,7 +98,7 @@ private: }; enum TokenType { - Tok_Eof, Tok_class, Tok_friend, Tok_namespace, Tok_using, Tok_return, + Tok_Eof, Tok_class, Tok_enum, Tok_friend, Tok_namespace, Tok_using, Tok_return, Tok_Q_OBJECT, Tok_Access, Tok_Cancel, Tok_Ident, Tok_String, Tok_RawString, Tok_Arrow, Tok_Colon, Tok_ColonColon, Tok_Equals, Tok_LeftBracket, Tok_RightBracket, Tok_QuestionMark, @@ -337,6 +337,7 @@ CppParser::TokenType CppParser::lookAheadToSemicolonOrLeftBrace() static const QString strQ_OBJECT = u"Q_OBJECT"_s; static const QString strclass = u"class"_s; +static const QString strenum = u"enum"_s; static const QString strfinal = u"final"_s; static const QString strfriend = u"friend"_s; static const QString strnamespace = u"namespace"_s; @@ -580,6 +581,10 @@ CppParser::TokenType CppParser::getToken() if (yyWord == strclass) return Tok_class; break; + case 'e': + if (yyWord == strenum) + return Tok_enum; + break; case 'f': if (yyWord == strfriend) return Tok_friend; @@ -2064,6 +2069,12 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac } yyTok = getToken(); break; + case Tok_enum: + yyTok = getToken(); + // If it is an enum class then ignore + if (yyTok == Tok_class) + yyTok = getToken(); + break; default: if (!yyParenDepth) prospectiveContext.clear(); |