summaryrefslogtreecommitdiff
path: root/shared/cplusplus/AST.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <qtc-committer@nokia.com>2009-01-02 17:54:01 +0100
committerRoberto Raggi <qtc-committer@nokia.com>2009-01-02 17:54:01 +0100
commit724074f3a8a269a09c4e324a95b4875e38d12c06 (patch)
tree13ad4a03df80b2fab472e5efba50d74739161be5 /shared/cplusplus/AST.cpp
parenta5e9e19e59ca84511fa588e69aaa1d8b1566ab51 (diff)
downloadqt-creator-724074f3a8a269a09c4e324a95b4875e38d12c06.tar.gz
Implemented EnumSpecifierAST::lastToken().
Diffstat (limited to 'shared/cplusplus/AST.cpp')
-rw-r--r--shared/cplusplus/AST.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/shared/cplusplus/AST.cpp b/shared/cplusplus/AST.cpp
index b6d8f29d2c..ffcc46a681 100644
--- a/shared/cplusplus/AST.cpp
+++ b/shared/cplusplus/AST.cpp
@@ -1214,7 +1214,6 @@ unsigned ElaboratedTypeSpecifierAST::firstToken() const
unsigned ElaboratedTypeSpecifierAST::lastToken() const
{
- assert(0 && "review me");
if (name)
return name->lastToken();
return classkey_token + 1;
@@ -1233,7 +1232,6 @@ unsigned EmptyDeclarationAST::firstToken() const
unsigned EmptyDeclarationAST::lastToken() const
{
- assert(0 && "review me");
return semicolon_token + 1;
}
@@ -1254,8 +1252,20 @@ unsigned EnumSpecifierAST::firstToken() const
unsigned EnumSpecifierAST::lastToken() const
{
- assert(0 && "review me");
- return rbrace_token + 1;
+ if (rbrace_token)
+ return rbrace_token + 1;
+
+ for (EnumeratorAST *it = enumerators; it; it = it->next) {
+ if (! it->next)
+ return it->lastToken();
+ }
+
+ if (lbrace_token)
+ return lbrace_token + 1;
+ if (name)
+ return name->lastToken();
+
+ return enum_token + 1;
}
void EnumeratorAST::accept0(ASTVisitor *visitor)