diff options
Diffstat (limited to 'xsde/cxx/hybrid/parser-aggregate-header.cxx')
-rw-r--r-- | xsde/cxx/hybrid/parser-aggregate-header.cxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/xsde/cxx/hybrid/parser-aggregate-header.cxx b/xsde/cxx/hybrid/parser-aggregate-header.cxx index a769e6d..de76640 100644 --- a/xsde/cxx/hybrid/parser-aggregate-header.cxx +++ b/xsde/cxx/hybrid/parser-aggregate-header.cxx @@ -219,7 +219,11 @@ namespace CXX virtual Void traverse (SemanticGraph::AnyType& t) { - fund_type (t, "any_type"); + if (fund_type (t, "any_type")) + { + if (polymorphic (t)) + collect (t); + } } virtual Void @@ -510,11 +514,16 @@ namespace CXX } private: - virtual Void + virtual Boolean fund_type (SemanticGraph::Type& t, String const& name) { if (map_.find (&t) == map_.end ()) + { map_[&t] = find_instance_name (name); + return true; + } + + return false; } String |