diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-12-15 13:09:25 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-12-15 13:09:25 +0200 |
commit | 4c408a85759eb42b6b84b8cdab81453df31cd289 (patch) | |
tree | 468d7a871442a8dcf98e475bc837d5c15c3a632e /xsd/cxx/tree/stream-extraction-source.cxx | |
parent | 9d8b6cd9492deff6747649e0c87f3b7df51b9965 (diff) |
Register substituting anonymous types with polymorphic maps
Diffstat (limited to 'xsd/cxx/tree/stream-extraction-source.cxx')
-rw-r--r-- | xsd/cxx/tree/stream-extraction-source.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/xsd/cxx/tree/stream-extraction-source.cxx b/xsd/cxx/tree/stream-extraction-source.cxx index c2bbeb0..e1d1679 100644 --- a/xsd/cxx/tree/stream-extraction-source.cxx +++ b/xsd/cxx/tree/stream-extraction-source.cxx @@ -61,7 +61,9 @@ namespace CXX // Register with type map. // - if (polymorphic && polymorphic_p (l) && !anonymous_p (l)) + if (polymorphic && + polymorphic_p (l) && + (!anonymous_p (l) || anonymous_substitutes_p (l))) { // Note that we are using the original type name. // @@ -129,7 +131,9 @@ namespace CXX // Register with type map. // - if (polymorphic && polymorphic_p (u) && !anonymous_p (u)) + if (polymorphic && + polymorphic_p (u) && + (!anonymous_p (u) || anonymous_substitutes_p (u))) { // Note that we are using the original type name. // @@ -222,7 +226,9 @@ namespace CXX // Register with type map. // - if (polymorphic && polymorphic_p (e) && !anonymous_p (e)) + if (polymorphic && + polymorphic_p (e) && + (!anonymous_p (e) || anonymous_substitutes_p (e))) { // Note that we are using the original type name. // @@ -656,7 +662,9 @@ namespace CXX // Register with type map. // - if (polymorphic && polymorphic_p (c) && !anonymous_p (c)) + if (polymorphic && + polymorphic_p (c) && + (!anonymous_p (c) || anonymous_substitutes_p (c))) { // Note that we are using the original type name. // |