diff options
Diffstat (limited to 'xsde/cxx/hybrid/parser-name-processor.cxx')
-rw-r--r-- | xsde/cxx/hybrid/parser-name-processor.cxx | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/xsde/cxx/hybrid/parser-name-processor.cxx b/xsde/cxx/hybrid/parser-name-processor.cxx index c913766..740cf36 100644 --- a/xsde/cxx/hybrid/parser-name-processor.cxx +++ b/xsde/cxx/hybrid/parser-name-processor.cxx @@ -357,12 +357,6 @@ namespace CXX virtual Void traverse (Type& c) { - Boolean restriction (false); - - if (c.inherits_p ()) - restriction = c.inherits ().is_a<SemanticGraph::Restricts> () && - !c.inherits ().base ().is_a<SemanticGraph::AnyType> (); - SemanticGraph::Context& cc (c.context ()); // In case of customization use p:impl-base instead of p:impl. @@ -371,10 +365,17 @@ namespace CXX String const& base (cc.count ("p:impl-base") ? cc.get<String> ("p:impl-base") : cc.get<String> ("p:impl")); - if (!base) return; + // + // + Boolean restriction (false); + + if (c.inherits_p ()) + restriction = c.inherits ().is_a<SemanticGraph::Restricts> () && + !c.inherits ().base ().is_a<SemanticGraph::AnyType> (); + // Use skeleton's name set to make sure we don't clash // with callbacks which we are overriding. // |