aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/Symbol.cpp
diff options
context:
space:
mode:
authorPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>2013-04-13 08:40:54 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-04-17 14:10:32 +0200
commit17cd161a9d265db12ba763e090111f0fb27fbab9 (patch)
tree2250bab97309e0a4e5013e904356d0816e2946cd /src/libs/3rdparty/cplusplus/Symbol.cpp
parentb55961d22583257cf6e4901e71dfc7d8226a515e (diff)
C++: fix cloning of templates
Fix instantiation of templates(by cloning original symbols). Assigning of scope for cloned symbol is taken from the symbol which is used to instantiate. Task-number: QTCREATORBUG-9098 Change-Id: I066cc8b5f69333fabdaf2d4466b205baf08bd3f1 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Symbol.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Symbol.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libs/3rdparty/cplusplus/Symbol.cpp b/src/libs/3rdparty/cplusplus/Symbol.cpp
index cd8ec1ffdd..0510117f8b 100644
--- a/src/libs/3rdparty/cplusplus/Symbol.cpp
+++ b/src/libs/3rdparty/cplusplus/Symbol.cpp
@@ -105,7 +105,7 @@ Symbol::Symbol(TranslationUnit *translationUnit, unsigned sourceLocation, const
Symbol::Symbol(Clone *clone, Subst *subst, Symbol *original)
: _name(clone->name(original->_name, subst)),
- _scope(original->_scope),
+ _scope(0),
_next(0),
_fileId(clone->control()->stringLiteral(original->fileName(), original->fileNameLength())),
_sourceLocation(original->_sourceLocation),
@@ -296,6 +296,11 @@ Block *Symbol::enclosingBlock() const
return 0;
}
+Scope *Symbol::scope() const
+{
+ return _scope;
+}
+
unsigned Symbol::index() const
{ return _index; }