aboutsummaryrefslogtreecommitdiffstats
path: root/libjulia/optimiser/DataFlowAnalyzer.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-02-06 01:02:32 +0800
committerchriseth <chris@ethereum.org>2018-02-06 19:38:32 +0800
commit88a5d152d028d597fd8cd90bd99ee5b7f1388191 (patch)
treedcb194994bd7fcc3c64132aafaf6330db8f3cedc /libjulia/optimiser/DataFlowAnalyzer.h
parent773be40c19a2c3b72a5cf743e86e150533e0f25f (diff)
downloaddexon-solidity-88a5d152d028d597fd8cd90bd99ee5b7f1388191.tar.gz
dexon-solidity-88a5d152d028d597fd8cd90bd99ee5b7f1388191.tar.zst
dexon-solidity-88a5d152d028d597fd8cd90bd99ee5b7f1388191.zip
Introduce struct for scopes.
Diffstat (limited to 'libjulia/optimiser/DataFlowAnalyzer.h')
-rw-r--r--libjulia/optimiser/DataFlowAnalyzer.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/libjulia/optimiser/DataFlowAnalyzer.h b/libjulia/optimiser/DataFlowAnalyzer.h
index 16d6e72b..4cb3d4cd 100644
--- a/libjulia/optimiser/DataFlowAnalyzer.h
+++ b/libjulia/optimiser/DataFlowAnalyzer.h
@@ -69,9 +69,15 @@ protected:
std::map<std::string, std::set<std::string>> m_references;
/// m_referencedBy[b].contains(a) <=> the current expression assigned to a references b
std::map<std::string, std::set<std::string>> m_referencedBy;
- /// List of scopes, where each scope is a set of variables and a bool that tells
- /// whether it is a function body (true) or not.
- std::vector<std::pair<std::set<std::string>, bool>> m_variableScopes;
+
+ struct Scope
+ {
+ explicit Scope(bool _isFunction): isFunction(_isFunction) {}
+ std::set<std::string> variables;
+ bool isFunction;
+ };
+ /// List of scopes.
+ std::vector<Scope> m_variableScopes;
};
}