aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/Scope.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2011-03-28 13:21:37 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2011-05-17 11:45:47 +0200
commit9608af7ad2c7a234f2665d70487edcdad17925e8 (patch)
treea9307ce7d36189470c57f00377c8551f0707c67b /src/libs/3rdparty/cplusplus/Scope.cpp
parent670d241288d1ec5e4560e90c5b548ea4021d9acb (diff)
Added support to C++ symbols rewriting.
This should simplify full C++ template instantiations. Reviewed-by: Christian Kamm
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Scope.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Scope.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/Scope.cpp b/src/libs/3rdparty/cplusplus/Scope.cpp
index 52da1d933d..5dbc4ae183 100644
--- a/src/libs/3rdparty/cplusplus/Scope.cpp
+++ b/src/libs/3rdparty/cplusplus/Scope.cpp
@@ -22,6 +22,7 @@
#include "Symbols.h"
#include "Names.h"
#include "Literals.h"
+#include "Templates.h"
#include <cassert>
#include <cstring>
@@ -228,6 +229,16 @@ Scope::Scope(TranslationUnit *translationUnit, unsigned sourceLocation, const Na
_endOffset(0)
{ }
+Scope::Scope(Clone *clone, Subst *subst, Scope *original)
+ : Symbol(clone, subst, original)
+ , _members(0)
+ , _startOffset(original->_startOffset)
+ , _endOffset(original->_endOffset)
+{
+ for (iterator it = original->firstMember(), end = original->lastMember(); it != end; ++it)
+ addMember(clone->symbol(*it, subst));
+}
+
Scope::~Scope()
{ delete _members; }