bool record_target = false;
bool r_self_referencing = false;
Assignment::Target r_assignment_target;
- std::vector<VariableDeclaration *> redeclared_builtins;
+ std::vector<Statement *> redeclared_builtins;
std::set<Node *> nodes_to_remove;
public:
virtual void visit(BinaryExpression &);
virtual void visit(Assignment &);
void merge_layouts(Layout &, const Layout &);
+ void redeclare_builtin(VariableDeclaration &, VariableDeclaration &);
virtual void visit(VariableDeclaration &);
virtual void visit(InterfaceBlock &);
};
};
Stage *stage = 0;
+ const FunctionDeclaration *current_function = 0;
std::vector<BasicTypeDeclaration *> basic_types;
NodeList<Statement>::iterator insert_point;
bool r_any_resolved = false;
virtual void visit(FunctionCall &);
virtual void visit(BasicTypeDeclaration &);
virtual void visit(VariableDeclaration &);
+ virtual void visit(FunctionDeclaration &);
+ virtual void visit(Return &);
};
/** Resolves function declarations and calls. */