diff options
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve.cc')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve.cc b/gcc/rust/resolve/rust-ast-resolve.cc index e5b0942..d6eed93 100644 --- a/gcc/rust/resolve/rust-ast-resolve.cc +++ b/gcc/rust/resolve/rust-ast-resolve.cc @@ -22,6 +22,7 @@ #include "rust-ast-resolve-toplevel.h" #include "rust-ast-resolve-item.h" #include "rust-ast-resolve-expr.h" +#include "rust-ast-resolve-unused.h" #define MKBUILTIN_TYPE(_X, _R, _TY) \ do \ @@ -107,8 +108,9 @@ void Resolver::insert_builtin_types (Rib *r) { auto builtins = get_builtin_types (); - for (auto it = builtins.begin (); it != builtins.end (); it++) - r->insert_name ((*it)->as_string (), (*it)->get_node_id ()); + for (auto &builtin : builtins) + r->insert_name (builtin->as_string (), builtin->get_node_id (), + Linemap::predeclared_location ()); } std::vector<AST::TypePath *> & @@ -187,7 +189,7 @@ Resolver::insert_resolved_name (NodeId refId, NodeId defId) rust_assert (it == resolved_names.end ()); resolved_names[refId] = defId; - get_name_scope ().peek ()->append_reference_for_def (defId, refId); + get_name_scope ().append_reference_for_def (refId, defId); } bool @@ -208,7 +210,7 @@ Resolver::insert_resolved_type (NodeId refId, NodeId defId) rust_assert (it == resolved_types.end ()); resolved_types[refId] = defId; - get_type_scope ().peek ()->append_reference_for_def (defId, refId); + get_type_scope ().append_reference_for_def (refId, defId); } bool @@ -267,6 +269,9 @@ NameResolution::go (AST::Crate &crate) // next we can drill down into the items and their scopes for (auto it = crate.items.begin (); it != crate.items.end (); it++) ResolveItem::go (it->get ()); + + ScanUnused::Scan (resolver->get_name_scope ().peek ()); + ScanUnused::Scan (resolver->get_type_scope ().peek ()); } // rust-ast-resolve-expr.h @@ -288,6 +293,9 @@ ResolveExpr::visit (AST::BlockExpr &expr) if (expr.has_tail_expr ()) ResolveExpr::go (expr.get_tail_expr ().get (), expr.get_node_id ()); + ScanUnused::Scan (resolver->get_name_scope ().peek ()); + ScanUnused::Scan (resolver->get_type_scope ().peek ()); + resolver->get_name_scope ().pop (); resolver->get_type_scope ().pop (); } |