aboutsummaryrefslogtreecommitdiffstats
path: root/libjulia
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-12-07 22:43:09 +0800
committerchriseth <chris@ethereum.org>2018-05-02 23:36:10 +0800
commit79c415b104a69c24ae2e5e5a99c496856e7be504 (patch)
treef92fb2fcacc9da562e625a524981d9c31ba4dd0c /libjulia
parente681f4ee7924ebc419e0bd878b8640c63b17a0c8 (diff)
downloaddexon-solidity-79c415b104a69c24ae2e5e5a99c496856e7be504.tar.gz
dexon-solidity-79c415b104a69c24ae2e5e5a99c496856e7be504.tar.zst
dexon-solidity-79c415b104a69c24ae2e5e5a99c496856e7be504.zip
Use hoisting.
Diffstat (limited to 'libjulia')
-rw-r--r--libjulia/optimiser/NameCollector.cpp1
-rw-r--r--libjulia/optimiser/NameCollector.h9
2 files changed, 6 insertions, 4 deletions
diff --git a/libjulia/optimiser/NameCollector.cpp b/libjulia/optimiser/NameCollector.cpp
index 510ee289..c0d0b707 100644
--- a/libjulia/optimiser/NameCollector.cpp
+++ b/libjulia/optimiser/NameCollector.cpp
@@ -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)
diff --git a/libjulia/optimiser/NameCollector.h b/libjulia/optimiser/NameCollector.h
index 2d4a1d4b..29856172 100644
--- a/libjulia/optimiser/NameCollector.h
+++ b/libjulia/optimiser/NameCollector.h
@@ -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;
};
/**