Use hoisting.

This commit is contained in:
chriseth
2018-05-02 17:36:10 +02:00
parent e681f4ee79
commit 79c415b104
2 changed files with 6 additions and 4 deletions
-1
View File
@@ -35,7 +35,6 @@ void NameCollector::operator()(VariableDeclaration const& _varDecl)
void NameCollector::operator ()(FunctionDefinition const& _funDef)
{
m_names.insert(_funDef.name);
m_functions[_funDef.name] = &_funDef;
for (auto const arg: _funDef.parameters)
m_names.insert(arg.name);
for (auto const ret: _funDef.returnVariables)
+6 -3
View File
@@ -37,15 +37,18 @@ namespace julia
class NameCollector: public ASTWalker
{
public:
explicit NameCollector(Block const& _block)
{
(*this)(_block);
}
using ASTWalker::operator ();
virtual void operator()(VariableDeclaration const& _varDecl) override;
virtual void operator()(FunctionDefinition const& _funDef) override;
std::set<std::string> const& names() const { return m_names; }
std::map<std::string, FunctionDefinition const*> const& functions() const { return m_functions; }
std::set<std::string> names() const { return m_names; }
private:
std::set<std::string> m_names;
std::map<std::string, FunctionDefinition const*> m_functions;
};
/**