summaryrefslogtreecommitdiff
path: root/src/libs/3rdparty/cplusplus/Symbol.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/Symbol.cpp
parent670d241288d1ec5e4560e90c5b548ea4021d9acb (diff)
downloadqt-creator-9608af7ad2c7a234f2665d70487edcdad17925e8.tar.gz
Added support to C++ symbols rewriting.
This should simplify full C++ template instantiations. Reviewed-by: Christian Kamm
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Symbol.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Symbol.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/Symbol.cpp b/src/libs/3rdparty/cplusplus/Symbol.cpp
index 3810357670..b7caa001c9 100644
--- a/src/libs/3rdparty/cplusplus/Symbol.cpp
+++ b/src/libs/3rdparty/cplusplus/Symbol.cpp
@@ -28,6 +28,7 @@
#include "SymbolVisitor.h"
#include "NameVisitor.h"
#include "Scope.h"
+#include "Templates.h"
#include <cassert>
using namespace CPlusPlus;
@@ -102,6 +103,24 @@ Symbol::Symbol(TranslationUnit *translationUnit, unsigned sourceLocation, const
setName(name);
}
+Symbol::Symbol(Clone *clone, Subst *subst, Symbol *original)
+ : _name(clone->name(original->_name, subst)),
+ _scope(0),
+ _next(0),
+ _fileId(clone->control()->stringLiteral(original->fileName(), original->fileNameLength())),
+ _sourceLocation(original->_sourceLocation),
+ _hashCode(original->_hashCode),
+ _storage(original->_storage),
+ _visibility(original->_visibility),
+ _index(0),
+ _line(original->_line),
+ _column(original->_column),
+ _isGenerated(original->_isGenerated),
+ _isDeprecated(original->_isDeprecated),
+ _isUnavailable(original->_isUnavailable)
+{
+}
+
Symbol::~Symbol()
{ }