gccrs: toplevel: Add comment about running the collector twice

gcc/rust/ChangeLog:

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::insert_or_error_out): Add documentation comment.
	(TopLevel::go): Likewise.
This commit is contained in:
Arthur Cohen 2023-08-22 17:29:56 +02:00
parent 53d979f361
commit 0a5cc7a4cb

View file

@ -43,6 +43,9 @@ TopLevel::insert_or_error_out (const Identifier &identifier, const T &node,
if (!result) if (!result)
{ {
// can we do something like check if the node id is the same? if it is the
// same, it's not an error, just the resolver running multiple times?
rich_location rich_loc (line_table, loc); rich_location rich_loc (line_table, loc);
rich_loc.add_range (node_locations[result.error ().existing]); rich_loc.add_range (node_locations[result.error ().existing]);
@ -54,6 +57,11 @@ TopLevel::insert_or_error_out (const Identifier &identifier, const T &node,
void void
TopLevel::go (AST::Crate &crate) TopLevel::go (AST::Crate &crate)
{ {
// we do not include builtin types in the top-level definition collector, as
// they are not used until `Late`. furthermore, we run this visitor multiple
// times in a row in a fixed-point fashion, so it would make the code
// responsible for this ugly and perfom a lot of error checking.
for (auto &item : crate.items) for (auto &item : crate.items)
item->accept_vis (*this); item->accept_vis (*this);
} }