summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r--cpp/src/Slice/Parser.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 19ed36efd5f..e1be83afdc4 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -362,10 +362,11 @@ Slice::SyntaxTreeBase::visit(ParserVisitor*, bool)
{
}
-Slice::SyntaxTreeBase::SyntaxTreeBase(const UnitPtr& unit) :
- _unit(unit)
+Slice::SyntaxTreeBase::SyntaxTreeBase(const UnitPtr& unit, const DefinitionContextPtr& definitionContext) :
+ _unit(unit),
+ _definitionContext(definitionContext)
{
- if(_unit)
+ if(!_definitionContext && _unit)
{
_definitionContext = unit->currentDefinitionContext();
}
@@ -4359,8 +4360,8 @@ Slice::Proxy::_class() const
}
Slice::Proxy::Proxy(const ClassDeclPtr& cl) :
- SyntaxTreeBase(cl->unit()),
- Type(cl->unit()),
+ SyntaxTreeBase(cl->unit(), cl->definitionContext()),
+ Type(cl->unit()),
_classDecl(cl)
{
}