if (maybe_extern)
check_extern_call (static_cast<ExternalItem *> (maybe_extern),
- mappings.lookup_hir_extern_block (parent_extern_block),
+ *mappings.lookup_hir_extern_block (parent_extern_block),
locus);
}
= mappings.lookup_hir_extern_item (reference, &parent_extern_block_id);
if (extern_item != nullptr)
{
- HIR::ExternBlock *block
- = mappings.lookup_hir_extern_block (parent_extern_block_id);
- rust_assert (block != nullptr);
+ auto block = mappings.lookup_hir_extern_block (parent_extern_block_id);
+ rust_assert (block.has_value ());
- *result = TypeCheckTopLevelExternItem::Resolve (extern_item, *block);
+ *result
+ = TypeCheckTopLevelExternItem::Resolve (extern_item, *block.value ());
context->query_completed (reference);
return true;
}
Mappings::insert_hir_extern_block (HIR::ExternBlock *block)
{
auto id = block->get_mappings ().get_hirid ();
- rust_assert (lookup_hir_extern_block (id) == nullptr);
+ rust_assert (!lookup_hir_extern_block (id).has_value ());
hirExternBlockMappings[id] = block;
insert_node_to_hir (block->get_mappings ().get_nodeid (), id);
}
-HIR::ExternBlock *
+tl::optional<HIR::ExternBlock *>
Mappings::lookup_hir_extern_block (HirId id)
{
auto it = hirExternBlockMappings.find (id);
if (it == hirExternBlockMappings.end ())
- return nullptr;
+ return tl::nullopt;
return it->second;
}
tl::optional<HIR::TraitItem *> lookup_hir_trait_item (HirId id);
void insert_hir_extern_block (HIR::ExternBlock *block);
- HIR::ExternBlock *lookup_hir_extern_block (HirId id);
+ tl::optional<HIR::ExternBlock *> lookup_hir_extern_block (HirId id);
void insert_hir_extern_item (HIR::ExternalItem *item, HirId parent_block);
HIR::ExternalItem *lookup_hir_extern_item (HirId id, HirId *parent_block);