diff options
Diffstat (limited to 'xsde/cxx/hybrid/elements.cxx')
-rw-r--r-- | xsde/cxx/hybrid/elements.cxx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/xsde/cxx/hybrid/elements.cxx b/xsde/cxx/hybrid/elements.cxx index 679a63d..2c31646 100644 --- a/xsde/cxx/hybrid/elements.cxx +++ b/xsde/cxx/hybrid/elements.cxx @@ -435,6 +435,24 @@ namespace CXX : ename_custom (t); } + Boolean Context:: + recursive_base (SemanticGraph::Complex& c) + { + using namespace SemanticGraph; + + for (Complex* p (&c); p && p->inherits_p ();) + { + Type& t (p->inherits ().base ()); + + if (recursive (t)) + return true; + + p = dynamic_cast<Complex*> (&t); + } + + return false; + } + Void Context:: close_ns () { |