//
// We should mark them alive all and ignoring other kind of segments.
// If the segment we dont care then just return false is fine
- if (!resolver->lookup_resolved_name (ast_node_id, &ref_node_id))
+ if (flag_name_resolution_2_0)
+ {
+ auto &nr_ctx
+ = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
+
+ if (auto id = nr_ctx.lookup (ast_node_id))
+ ref_node_id = *id;
+ else
+ return false;
+ }
+ else if (!resolver->lookup_resolved_name (ast_node_id, &ref_node_id))
{
if (!resolver->lookup_resolved_type (ast_node_id, &ref_node_id))
return false;
void
MarkLive::visit (HIR::TypeAlias &alias)
{
- NodeId ast_node_id;
- resolver->lookup_resolved_type (
- alias.get_type_aliased ()->get_mappings ().get_nodeid (), &ast_node_id);
+ NodeId ast_node_id = UNKNOWN_NODEID;
+ if (flag_name_resolution_2_0)
+ {
+ auto &nr_ctx
+ = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
+
+ if (auto id = nr_ctx.lookup (
+ alias.get_type_aliased ()->get_mappings ().get_nodeid ()))
+ ast_node_id = *id;
+ }
+ else
+ {
+ resolver->lookup_resolved_type (
+ alias.get_type_aliased ()->get_mappings ().get_nodeid (), &ast_node_id);
+ }
+
if (auto hid = mappings.lookup_node_to_hir (ast_node_id))
mark_hir_id (*hid);
else