diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-12-07 15:08:00 +0100 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-12-07 15:08:00 +0100 |
commit | 988ec82bb54d74a78c2f3d73f7ea2a54cdf329f2 (patch) | |
tree | 4191acf035b2c591d0225ac29e941944f95528bc /src/shared/cplusplus/CheckSpecifier.cpp | |
parent | f618a9a2963ac519808385dbd35aeac34e537f67 (diff) | |
download | qt-creator-988ec82bb54d74a78c2f3d73f7ea2a54cdf329f2.tar.gz |
Check for unnecessary semicolons after function definitions.
Diffstat (limited to 'src/shared/cplusplus/CheckSpecifier.cpp')
-rw-r--r-- | src/shared/cplusplus/CheckSpecifier.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/shared/cplusplus/CheckSpecifier.cpp b/src/shared/cplusplus/CheckSpecifier.cpp index 03b2d53d97..5b32762c69 100644 --- a/src/shared/cplusplus/CheckSpecifier.cpp +++ b/src/shared/cplusplus/CheckSpecifier.cpp @@ -347,8 +347,17 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast) int previousVisibility = semantic()->switchVisibility(visibility); int previousMethodKey = semantic()->switchMethodKey(Function::NormalMethod); - for (DeclarationListAST *member = ast->member_specifier_list; member; member = member->next) { - semantic()->check(member->value, klass->members()); + DeclarationAST *previousDeclaration = 0; + for (DeclarationListAST *it = ast->member_specifier_list; it; it = it->next) { + DeclarationAST *declaration = it->value; + semantic()->check(declaration, klass->members()); + + if (previousDeclaration && declaration && + declaration->asEmptyDeclaration() != 0 && + previousDeclaration->asFunctionDefinition() != 0) + translationUnit()->warning(declaration->firstToken(), "unnecessary semicolon after function body"); + + previousDeclaration = declaration; } (void) semantic()->switchMethodKey(previousMethodKey); |