diff options
author | SimplyTheOther <simplytheother@gmail.com> | 2021-01-11 16:33:01 +0800 |
---|---|---|
committer | SimplyTheOther <simplytheother@gmail.com> | 2021-01-11 16:33:01 +0800 |
commit | bc94b7de4614100b63e17a50692a23feab1c139f (patch) | |
tree | 697d3614ebc838d15875eb6602bd349ca885403c /gcc/rust/resolve/rust-ast-resolve.cc | |
parent | aa487ef2717e0f319f2f8d3496d0003939ec2b09 (diff) | |
parent | 9a3ad294e0af5ed45b53c340382a7806fb150bdf (diff) | |
download | gcc-bc94b7de4614100b63e17a50692a23feab1c139f.zip gcc-bc94b7de4614100b63e17a50692a23feab1c139f.tar.gz gcc-bc94b7de4614100b63e17a50692a23feab1c139f.tar.bz2 |
Merge branch 'master' of https://github.com/redbrain/gccrs
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 (); } |