@@ -33,10 +33,10 @@ TopLevel::TopLevel (NameResolutionContext &resolver)
3333template <typename T>
3434void
3535TopLevel::insert_enum_variant_or_error_out (const Identifier &identifier,
36- const T &node)
36+ const T &node, bool is_also_value )
3737{
3838 insert_enum_variant_or_error_out (identifier, node.get_locus (),
39- node.get_node_id ());
39+ node.get_node_id (), is_also_value );
4040}
4141
4242void
@@ -58,12 +58,13 @@ TopLevel::check_multiple_insertion_error (
5858void
5959TopLevel::insert_enum_variant_or_error_out (const Identifier &identifier,
6060 const location_t &locus,
61- const NodeId node_id)
61+ const NodeId node_id,
62+ bool is_also_value)
6263{
6364 // keep track of each node's location to provide useful errors
6465 node_locations.emplace (node_id, locus);
6566
66- auto result = ctx.insert_variant (identifier, node_id);
67+ auto result = ctx.insert_variant (identifier, node_id, is_also_value );
6768 check_multiple_insertion_error (result, identifier, locus, node_id);
6869}
6970
@@ -309,31 +310,31 @@ TopLevel::visit (AST::TupleStruct &tuple_struct)
309310void
310311TopLevel::visit (AST::EnumItem &variant)
311312{
312- insert_enum_variant_or_error_out (variant.get_identifier (), variant);
313+ insert_enum_variant_or_error_out (variant.get_identifier (), variant, true );
313314
314315 DefaultResolver::visit (variant);
315316}
316317
317318void
318319TopLevel::visit (AST::EnumItemTuple &variant)
319320{
320- insert_enum_variant_or_error_out (variant.get_identifier (), variant);
321+ insert_enum_variant_or_error_out (variant.get_identifier (), variant, true );
321322
322323 DefaultResolver::visit (variant);
323324}
324325
325326void
326327TopLevel::visit (AST::EnumItemStruct &variant)
327328{
328- insert_enum_variant_or_error_out (variant.get_identifier (), variant);
329+ insert_enum_variant_or_error_out (variant.get_identifier (), variant, false );
329330
330331 DefaultResolver::visit (variant);
331332}
332333
333334void
334335TopLevel::visit (AST::EnumItemDiscriminant &variant)
335336{
336- insert_or_error_out (variant.get_identifier (), variant, Namespace::Types );
337+ insert_enum_variant_or_error_out (variant.get_identifier (), variant, true );
337338
338339 DefaultResolver::visit (variant);
339340}
0 commit comments