From 82eff8250e7e0692fddb0a60d16332039b10a5a2 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 16 Mar 2016 17:30:38 +0200 Subject: Use resolve_element() instead of _member() Since the element may itself derive the type from its substitution group root. --- xsd-frontend/parser.cxx | 2 +- xsd-frontend/semantic-graph/elements.hxx | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/xsd-frontend/parser.cxx b/xsd-frontend/parser.cxx index 6a37475..32e6cb1 100644 --- a/xsd-frontend/parser.cxx +++ b/xsd-frontend/parser.cxx @@ -421,7 +421,7 @@ namespace XSDFrontend // if (!e.typed_p ()) { - resolve_member (root); // Make sure the type is resolved. + resolve_element (root); // Make sure the type is resolved. s_.new_edge (e, root.type ()); } } diff --git a/xsd-frontend/semantic-graph/elements.hxx b/xsd-frontend/semantic-graph/elements.hxx index 98fb180..d295a17 100644 --- a/xsd-frontend/semantic-graph/elements.hxx +++ b/xsd-frontend/semantic-graph/elements.hxx @@ -10,6 +10,7 @@ #include #include #include +#include // std::size_t #include // std::pair #include // abort #include @@ -342,6 +343,12 @@ namespace XSDFrontend return names_.end (); } + std::size_t + names_size () const + { + return names_.size (); + } + virtual NamesIteratorPair find (Name const& name) const { -- cgit v1.1