diff --git a/src/libs/cplusplus/CheckUndefinedSymbols.cpp b/src/libs/cplusplus/CheckUndefinedSymbols.cpp index bd3cba0a36d6af2216e113a18d2cce94fbce5862..f81b3fda8b20099256cb284db71117e1001ce881 100644 --- a/src/libs/cplusplus/CheckUndefinedSymbols.cpp +++ b/src/libs/cplusplus/CheckUndefinedSymbols.cpp @@ -540,20 +540,6 @@ bool CheckUndefinedSymbols::visit(ObjCPropertyDeclarationAST *ast) return false; } -bool CheckUndefinedSymbols::visit(QtDeclareFlagsDeclarationAST *ast) -{ - // ### check flags name too? - - if (ast->enum_name && ast->enum_name->name) { - const Identifier *enumId = ast->enum_name->name->identifier(); - if (!isType(enumId)) // ### we're only checking if the enum name is known as a type name, not as an *enum*. - translationUnit()->warning(ast->enum_name->firstToken(), - "unknown enum '%s'", - enumId->chars()); - } - return false; -} - bool CheckUndefinedSymbols::visit(QtEnumDeclarationAST *ast) { for (NameListAST *iter = ast->enumerator_list; iter; iter = iter->next) { diff --git a/src/libs/cplusplus/CheckUndefinedSymbols.h b/src/libs/cplusplus/CheckUndefinedSymbols.h index dc7aa79dc36e5794a817c735aea467acab383e0e..bc55ae8f6d5d8a0f757095981bd331e4ba8b065a 100644 --- a/src/libs/cplusplus/CheckUndefinedSymbols.h +++ b/src/libs/cplusplus/CheckUndefinedSymbols.h @@ -98,7 +98,6 @@ protected: virtual bool visit(ObjCProtocolRefsAST *ast); virtual bool visit(ObjCPropertyDeclarationAST *ast); - virtual bool visit(QtDeclareFlagsDeclarationAST *ast); virtual bool visit(QtEnumDeclarationAST *ast); virtual bool visit(QtFlagsDeclarationAST *ast); virtual bool visit(QtPropertyDeclarationAST *ast); diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index 7c9fe50b398f0854f74a4befda86ca3741c109e2..3f3c7099a1fd34da1e4241ab4edac359d058dbee 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -766,8 +766,10 @@ void Preprocessor::preprocess(const QString &fileName, const QByteArray &source, expandBuiltinMacro(identifierToken, spell); else { - if (spell != "Q_PROPERTY" && spell != "Q_INVOKABLE" && spell != "Q_ENUMS" - && spell != "Q_FLAGS" && spell != "Q_DECLARE_FLAGS") { + if (spell != "Q_PROPERTY" + && spell != "Q_INVOKABLE" + && spell != "Q_ENUMS" + && spell != "Q_FLAGS") { // ### FIXME: shouldn't this be T_Q_PROPERTY & friends? diff --git a/src/shared/cplusplus/AST.cpp b/src/shared/cplusplus/AST.cpp index 4504d9eadc165fbf46a3c12178791d83e7c74e6b..9a8312eabaa5573788af11e3d798d5ea68d65184 100644 --- a/src/shared/cplusplus/AST.cpp +++ b/src/shared/cplusplus/AST.cpp @@ -235,27 +235,6 @@ unsigned QtFlagsDeclarationAST::lastToken() const return flags_specifier_token + 1; } -unsigned QtDeclareFlagsDeclarationAST::firstToken() const -{ - return declareflags_specifier_token; -} - -unsigned QtDeclareFlagsDeclarationAST::lastToken() const -{ - if (rparen_token) - return rparen_token + 1; - else if (flags_name) - return flags_name->lastToken(); - else if (comma_token) - return comma_token + 1; - else if (enum_name) - return enum_name->lastToken(); - else if (lparen_token) - return lparen_token + 1; - else - return declareflags_specifier_token + 1; -} - unsigned ArrayAccessAST::firstToken() const { return lbracket_token; diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h index 11bcaf0f1c01cee284aa5c95397e0a4bddbdf2d4..4b0c149357f1dc819b62ece6b35ebc8d33eea761 100644 --- a/src/shared/cplusplus/AST.h +++ b/src/shared/cplusplus/AST.h @@ -256,7 +256,6 @@ public: virtual PostfixDeclaratorAST *asPostfixDeclarator() { return 0; } virtual PostfixExpressionAST *asPostfixExpression() { return 0; } virtual PtrOperatorAST *asPtrOperator() { return 0; } - virtual QtDeclareFlagsDeclarationAST *asQtDeclareFlagsDeclaration() { return 0; } virtual QtEnumDeclarationAST *asQtEnumDeclaration() { return 0; } virtual QtFlagsDeclarationAST *asQtFlagsDeclaration() { return 0; } virtual QtMemberDeclarationAST *asQtMemberDeclaration() { return 0; } @@ -683,29 +682,6 @@ protected: virtual bool match0(AST *, ASTMatcher *); }; -class CPLUSPLUS_EXPORT QtDeclareFlagsDeclarationAST: public DeclarationAST -{ -public: - unsigned declareflags_specifier_token; - unsigned lparen_token; - SimpleNameAST *flags_name; - unsigned comma_token; - SimpleNameAST *enum_name; - unsigned rparen_token; - -public: - virtual QtDeclareFlagsDeclarationAST *asQtDeclareFlagsDeclaration() { return this; } - - virtual unsigned firstToken() const; - virtual unsigned lastToken() const; - - virtual QtDeclareFlagsDeclarationAST *clone(MemoryPool *pool) const; - -protected: - virtual void accept0(ASTVisitor *visitor); - virtual bool match0(AST *, ASTMatcher *); -}; - class CPLUSPLUS_EXPORT AsmDefinitionAST: public DeclarationAST { public: diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp index 805e7837b7a728c64ef6e195c2ee14b7a0e5c5b1..87ee91558b14208778705c4cc192a26ce216cff1 100644 --- a/src/shared/cplusplus/ASTClone.cpp +++ b/src/shared/cplusplus/ASTClone.cpp @@ -200,20 +200,6 @@ QtFlagsDeclarationAST *QtFlagsDeclarationAST::clone(MemoryPool *pool) const return ast; } -QtDeclareFlagsDeclarationAST *QtDeclareFlagsDeclarationAST::clone(MemoryPool *pool) const -{ - QtDeclareFlagsDeclarationAST *ast = new (pool) QtDeclareFlagsDeclarationAST; - ast->declareflags_specifier_token = declareflags_specifier_token; - ast->lparen_token = lparen_token; - if (flags_name) - ast->flags_name = flags_name->clone(pool); - ast->comma_token = comma_token; - if (enum_name) - ast->enum_name = enum_name->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - AsmDefinitionAST *AsmDefinitionAST::clone(MemoryPool *pool) const { AsmDefinitionAST *ast = new (pool) AsmDefinitionAST; diff --git a/src/shared/cplusplus/ASTMatch0.cpp b/src/shared/cplusplus/ASTMatch0.cpp index 74d0aa6e5eb6fe4113c8d936312e0f7cb58ebd29..a2fcf8e0b96d4f4457a68b8386023b234aa55510 100644 --- a/src/shared/cplusplus/ASTMatch0.cpp +++ b/src/shared/cplusplus/ASTMatch0.cpp @@ -153,14 +153,6 @@ bool QtFlagsDeclarationAST::match0(AST *pattern, ASTMatcher *matcher) return false; } -bool QtDeclareFlagsDeclarationAST::match0(AST *pattern, ASTMatcher *matcher) -{ - if (QtDeclareFlagsDeclarationAST *_other = pattern->asQtDeclareFlagsDeclaration()) - return matcher->match(this, _other); - - return false; -} - bool AsmDefinitionAST::match0(AST *pattern, ASTMatcher *matcher) { if (AsmDefinitionAST *_other = pattern->asAsmDefinition()) diff --git a/src/shared/cplusplus/ASTMatcher.cpp b/src/shared/cplusplus/ASTMatcher.cpp index 7f86349551c2ce993470733c5f456e77d65dc90f..c3e04a0d4e3525175bfd1fe7cd9a9db72cba4aed 100644 --- a/src/shared/cplusplus/ASTMatcher.cpp +++ b/src/shared/cplusplus/ASTMatcher.cpp @@ -307,32 +307,6 @@ bool ASTMatcher::match(QtFlagsDeclarationAST *node, QtFlagsDeclarationAST *patte return true; } -bool ASTMatcher::match(QtDeclareFlagsDeclarationAST *node, QtDeclareFlagsDeclarationAST *pattern) -{ - (void) node; - (void) pattern; - - pattern->declareflags_specifier_token = node->declareflags_specifier_token; - - pattern->lparen_token = node->lparen_token; - - if (! pattern->flags_name) - pattern->flags_name = node->flags_name; - else if (! AST::match(node->flags_name, pattern->flags_name, this)) - return false; - - pattern->comma_token = node->comma_token; - - if (! pattern->enum_name) - pattern->enum_name = node->enum_name; - else if (! AST::match(node->enum_name, pattern->enum_name, this)) - return false; - - pattern->rparen_token = node->rparen_token; - - return true; -} - bool ASTMatcher::match(AsmDefinitionAST *node, AsmDefinitionAST *pattern) { (void) node; diff --git a/src/shared/cplusplus/ASTMatcher.h b/src/shared/cplusplus/ASTMatcher.h index f024f82ff8ae0f9a1ca1a589970afac58ea0f8db..c6466a4919f6b171d202b48c36f9ab6e6f0322f7 100644 --- a/src/shared/cplusplus/ASTMatcher.h +++ b/src/shared/cplusplus/ASTMatcher.h @@ -43,7 +43,6 @@ public: virtual bool match(QtPropertyDeclarationAST *node, QtPropertyDeclarationAST *pattern); virtual bool match(QtEnumDeclarationAST *node, QtEnumDeclarationAST *pattern); virtual bool match(QtFlagsDeclarationAST *node, QtFlagsDeclarationAST *pattern); - virtual bool match(QtDeclareFlagsDeclarationAST *node, QtDeclareFlagsDeclarationAST *pattern); virtual bool match(ArrayAccessAST *node, ArrayAccessAST *pattern); virtual bool match(ArrayDeclaratorAST *node, ArrayDeclaratorAST *pattern); virtual bool match(ArrayInitializerAST *node, ArrayInitializerAST *pattern); diff --git a/src/shared/cplusplus/ASTVisit.cpp b/src/shared/cplusplus/ASTVisit.cpp index 1b9f50df58d3a06645e5c9e1f5f2de4d968870bd..8b53d99f7f3cd40263b6c184e7fcc0cfcfe8ac5a 100644 --- a/src/shared/cplusplus/ASTVisit.cpp +++ b/src/shared/cplusplus/ASTVisit.cpp @@ -157,15 +157,6 @@ void QtFlagsDeclarationAST::accept0(ASTVisitor *visitor) visitor->endVisit(this); } -void QtDeclareFlagsDeclarationAST::accept0(ASTVisitor *visitor) -{ - if (visitor->visit(this)) { - accept(flags_name, visitor); - accept(enum_name, visitor); - } - visitor->endVisit(this); -} - void AsmDefinitionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { diff --git a/src/shared/cplusplus/ASTVisitor.h b/src/shared/cplusplus/ASTVisitor.h index 343e3a6331c3804ef6a9194315be867c8f53400d..72a3f4b736e0ca2c45ee04e342ba2c499c8025ef 100644 --- a/src/shared/cplusplus/ASTVisitor.h +++ b/src/shared/cplusplus/ASTVisitor.h @@ -106,7 +106,6 @@ public: virtual bool visit(QtPropertyDeclarationAST *) { return true; } virtual bool visit(QtEnumDeclarationAST *) { return true; } virtual bool visit(QtFlagsDeclarationAST *) { return true; } - virtual bool visit(QtDeclareFlagsDeclarationAST *) { return true; } virtual bool visit(ArrayAccessAST *) { return true; } virtual bool visit(ArrayDeclaratorAST *) { return true; } virtual bool visit(ArrayInitializerAST *) { return true; } @@ -241,7 +240,6 @@ public: virtual void endVisit(QtPropertyDeclarationAST *) { } virtual void endVisit(QtEnumDeclarationAST *) { } virtual void endVisit(QtFlagsDeclarationAST *) { } - virtual void endVisit(QtDeclareFlagsDeclarationAST *) { } virtual void endVisit(ArrayAccessAST *) { } virtual void endVisit(ArrayDeclaratorAST *) { } virtual void endVisit(ArrayInitializerAST *) { } diff --git a/src/shared/cplusplus/ASTfwd.h b/src/shared/cplusplus/ASTfwd.h index 77864ca4575db5837f73c6cfac9d8bd51f5e59a2..d2a1d317d8111c4e9b802252084580f7f5047b38 100644 --- a/src/shared/cplusplus/ASTfwd.h +++ b/src/shared/cplusplus/ASTfwd.h @@ -163,7 +163,6 @@ class PostfixAST; class PostfixDeclaratorAST; class PostfixExpressionAST; class PtrOperatorAST; -class QtDeclareFlagsDeclarationAST; class QtEnumDeclarationAST; class QtFlagsDeclarationAST; class QtMemberDeclarationAST; diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp index 7ad7662af319efc0ff42c891b92ea9357afad66f..5d3646e3246fddbd25f52376cfa8dd95153289c2 100644 --- a/src/shared/cplusplus/CheckDeclaration.cpp +++ b/src/shared/cplusplus/CheckDeclaration.cpp @@ -802,15 +802,6 @@ bool CheckDeclaration::visit(ObjCPropertyDeclarationAST *ast) return false; } -bool CheckDeclaration::visit(QtDeclareFlagsDeclarationAST *ast) -{ - if (ast->flags_name) - semantic()->check(ast->flags_name, _scope); - if (ast->enum_name) - semantic()->check(ast->enum_name, _scope); - return false; -} - bool CheckDeclaration::visit(QtEnumDeclarationAST *ast) { for (NameListAST *iter = ast->enumerator_list; iter; iter = iter->next) diff --git a/src/shared/cplusplus/CheckDeclaration.h b/src/shared/cplusplus/CheckDeclaration.h index 03661bc68e76e64f530b7ce5e55932e82b8ed7ca..6d06d42b9b051fcd8e875f0bd81a2dc115cabdbb 100644 --- a/src/shared/cplusplus/CheckDeclaration.h +++ b/src/shared/cplusplus/CheckDeclaration.h @@ -80,7 +80,6 @@ protected: virtual bool visit(QtPropertyDeclarationAST *ast); virtual bool visit(QtEnumDeclarationAST *ast); virtual bool visit(QtFlagsDeclarationAST *ast); - virtual bool visit(QtDeclareFlagsDeclarationAST *ast); virtual bool visit(AsmDefinitionAST *ast); virtual bool visit(ExceptionDeclarationAST *ast); virtual bool visit(FunctionDefinitionAST *ast); diff --git a/src/shared/cplusplus/Keywords.cpp b/src/shared/cplusplus/Keywords.cpp index 414221efa630f447ac0e6f39a8a879fe98c4c0d6..e1e45373ea66108055518c3f01be2b0d61c43a66 100644 --- a/src/shared/cplusplus/Keywords.cpp +++ b/src/shared/cplusplus/Keywords.cpp @@ -1283,41 +1283,6 @@ static inline int classify13(const char *s, bool) { return T_IDENTIFIER; } -static inline int classify15(const char *s, bool) { - if (s[0] == 'Q') { - if (s[1] == '_') { - if (s[2] == 'D') { - if (s[3] == 'E') { - if (s[4] == 'C') { - if (s[5] == 'L') { - if (s[6] == 'A') { - if (s[7] == 'R') { - if (s[8] == 'E') { - if (s[9] == '_') { - if (s[10] == 'F') { - if (s[11] == 'L') { - if (s[12] == 'A') { - if (s[13] == 'G') { - if (s[14] == 'S') { - return T_Q_DECLARE_FLAGS; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return T_IDENTIFIER; -} - static inline int classify16(const char *s, bool) { if (s[0] == 'r') { if (s[1] == 'e') { @@ -1369,7 +1334,6 @@ int Lexer::classify(const char *s, int n, bool q) { case 11: return classify11(s, q); case 12: return classify12(s, q); case 13: return classify13(s, q); - case 15: return classify15(s, q); case 16: return classify16(s, q); default: return T_IDENTIFIER; } // switch diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 86fb18dd2c3bb66e97901929f715ff0fa3a9eb2a..a9fd9f0d50775edd71ca6372db38bf857b845678 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -1920,29 +1920,6 @@ bool Parser::parseQtFlags(DeclarationAST *&node) return true; } -// q-declare-flags ::= 'Q_DECLARE_FLAGS' '(' q-flags-name ',' q-enum-name ')' -// q-flags-name ::= T_IDENTIFIER -// q-enum-name ::= T_IDENTIFIER -bool Parser::parseQtDeclareFlags(DeclarationAST *&node) -{ - /*Q_DECLARE_FLAGS(flag enum)*/ - DEBUG_THIS_RULE(); - if (LA() != T_Q_DECLARE_FLAGS) - return false; - - QtDeclareFlagsDeclarationAST *ast = new (_pool) QtDeclareFlagsDeclarationAST; - ast->declareflags_specifier_token = consumeToken(); - match(T_LPAREN, &ast->lparen_token); - ast->flags_name = new (_pool) SimpleNameAST; - match(T_IDENTIFIER, &ast->flags_name->identifier_token); - match(T_COMMA, &ast->comma_token); - ast->enum_name = new (_pool) SimpleNameAST; - match(T_IDENTIFIER, &ast->enum_name->identifier_token); - match(T_RPAREN, &ast->rparen_token); - node = ast; - return true; -} - bool Parser::parseMemberSpecification(DeclarationAST *&node) { DEBUG_THIS_RULE(); @@ -1972,9 +1949,6 @@ bool Parser::parseMemberSpecification(DeclarationAST *&node) case T_Q_FLAGS: return parseQtFlags(node); - case T_Q_DECLARE_FLAGS: - return parseQtDeclareFlags(node); - default: return parseSimpleDeclaration(node, /*acceptStructDeclarator=*/true); } // switch diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h index 07f80cdc335b5cc4f1b473b61b995be715a1a7cb..ab4449ee743b218427ff7c260896b53a00e38685 100644 --- a/src/shared/cplusplus/Parser.h +++ b/src/shared/cplusplus/Parser.h @@ -81,7 +81,6 @@ public: bool parseQtPropertyDeclaration(DeclarationAST *&node); bool parseQtEnumDeclaration(DeclarationAST *&node); bool parseQtFlags(DeclarationAST *&node); - bool parseQtDeclareFlags(DeclarationAST *&node); bool parseAdditiveExpression(ExpressionAST *&node); bool parseAndExpression(ExpressionAST *&node); bool parseAsmDefinition(DeclarationAST *&node); diff --git a/src/shared/cplusplus/Token.cpp b/src/shared/cplusplus/Token.cpp index f071d21d875ea230e28bfd26ae256dc54ff7e784..e86038271fa1eed95d0f18f59eac5e4d8bafd4ce 100644 --- a/src/shared/cplusplus/Token.cpp +++ b/src/shared/cplusplus/Token.cpp @@ -93,7 +93,7 @@ static const char *token_names[] = { ("SIGNAL"), ("SLOT"), ("Q_SIGNAL"), ("Q_SLOT"), ("signals"), ("slots"), ("Q_FOREACH"), ("Q_D"), ("Q_Q"), - ("Q_INVOKABLE"), ("Q_PROPERTY"), ("Q_ENUMS"), ("Q_FLAGS"), ("Q_DECLARE_FLAGS") + ("Q_INVOKABLE"), ("Q_PROPERTY"), ("Q_ENUMS"), ("Q_FLAGS") }; Token::Token() : diff --git a/src/shared/cplusplus/Token.h b/src/shared/cplusplus/Token.h index c915e31f4ea019a9621ea051d4a21e12f3dbbc01..d139584bddbc116474808e77aec38aeda7ce4032 100644 --- a/src/shared/cplusplus/Token.h +++ b/src/shared/cplusplus/Token.h @@ -242,8 +242,7 @@ enum Kind { T_Q_PROPERTY, T_Q_ENUMS, T_Q_FLAGS, - T_Q_DECLARE_FLAGS, - T_LAST_KEYWORD = T_Q_DECLARE_FLAGS, + T_LAST_KEYWORD = T_Q_FLAGS, // aliases T_OR = T_PIPE_PIPE,