aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/hybrid/elements.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsde/cxx/hybrid/elements.cxx')
-rw-r--r--xsde/cxx/hybrid/elements.cxx18
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 ()
{