void NodeRemover::visit(StructDeclaration &strct)
{
if(to_remove->count(&strct))
- remove_from_map(current_block->types, strct.name, strct);
+ remove_from_map(stage->types, strct.name, strct);
}
void NodeRemover::visit(VariableDeclaration &var)
{
if(to_remove->count(&iface))
{
- remove_from_map(current_block->interfaces, iface.name, iface);
+ remove_from_map(stage->interface_blocks, iface.name, iface);
if(!iface.instance_name.empty())
- remove_from_map(current_block->interfaces, iface.instance_name, iface);
+ remove_from_map(stage->interface_blocks, iface.instance_name, iface);
}
SetFlag set_recursive(recursive_remove, recursive_remove || to_remove->count(&iface));
TraversingVisitor::visit(iface);
}
+void NodeRemover::visit(FunctionDeclaration &func)
+{
+ if(to_remove->count(&func))
+ remove_from_map(stage->functions, func.name+func.signature, func);
+ TraversingVisitor::visit(func);
+}
+
void NodeRemover::visit(Iteration &iter)
{
if(to_remove->count(iter.init_statement.get()))