diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2011-03-28 13:21:37 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2011-05-17 11:45:47 +0200 |
commit | 9608af7ad2c7a234f2665d70487edcdad17925e8 (patch) | |
tree | a9307ce7d36189470c57f00377c8551f0707c67b /src/libs/3rdparty/cplusplus/Scope.cpp | |
parent | 670d241288d1ec5e4560e90c5b548ea4021d9acb (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.cpp | 11 |
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; } |