summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/CheckSpecifier.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-03-30 16:52:20 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-03-30 16:59:07 +0200
commite421d32147c867e326fbf036781f57c873f7056e (patch)
tree5ac53cbad75b4ce66e05bd281182dbb95f102b0d /src/shared/cplusplus/CheckSpecifier.cpp
parentaff7d3fdf8c78488d85bffba4c72f64d92f23f74 (diff)
downloadqt-creator-e421d32147c867e326fbf036781f57c873f7056e.tar.gz
Postpone the parsing of function definitions.
Diffstat (limited to 'src/shared/cplusplus/CheckSpecifier.cpp')
-rw-r--r--src/shared/cplusplus/CheckSpecifier.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/shared/cplusplus/CheckSpecifier.cpp b/src/shared/cplusplus/CheckSpecifier.cpp
index a0c4f36995..f2c60c57de 100644
--- a/src/shared/cplusplus/CheckSpecifier.cpp
+++ b/src/shared/cplusplus/CheckSpecifier.cpp
@@ -337,8 +337,13 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast)
klass->setClassKey(Class::UnionKey);
klass->setVisibility(semantic()->currentVisibility());
_scope->enterSymbol(klass);
+
+ ClassSpecifierAST *previousClassSpecifier = semantic()->switchDeclaringClass(ast);
+
_fullySpecifiedType.setType(klass);
+
accept(ast->attribute_list);
+
if (_fullySpecifiedType.isDeprecated())
klass->setDeprecated(true);
@@ -377,6 +382,8 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast)
(void) semantic()->switchMethodKey(previousMethodKey);
(void) semantic()->switchVisibility(previousVisibility);
+ (void) semantic()->switchDeclaringClass(previousClassSpecifier);
+
return false;
}