aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-ast-resolve.cc
diff options
context:
space:
mode:
authorSimplyTheOther <simplytheother@gmail.com>2021-01-11 16:33:01 +0800
committerSimplyTheOther <simplytheother@gmail.com>2021-01-11 16:33:01 +0800
commitbc94b7de4614100b63e17a50692a23feab1c139f (patch)
tree697d3614ebc838d15875eb6602bd349ca885403c /gcc/rust/resolve/rust-ast-resolve.cc
parentaa487ef2717e0f319f2f8d3496d0003939ec2b09 (diff)
parent9a3ad294e0af5ed45b53c340382a7806fb150bdf (diff)
downloadgcc-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.cc16
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 ();
}