diff options
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r-- | cpp/src/Slice/Parser.cpp | 11 |
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) { } |