diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-16 08:16:43 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-16 08:16:43 +0200 |
commit | bce9d5a76072ec697ef69021818aa68709036da5 (patch) | |
tree | 9ec56eff60abacaea121d1602a1e48388ca34216 /xsde/cxx/hybrid/parser-name-processor.cxx | |
parent | be19f3aae4e16b4dc9c980cb9b53e807616662ef (diff) |
Add support for type customization in C++/Hybrid
examples/cxx/hybrid/custom/wildcard/: new example
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. // |