diff options
author | chriseth <chris@ethereum.org> | 2018-12-04 18:23:28 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2018-12-04 21:50:00 +0800 |
commit | 852297fa2f4c4ac0c3aa56011f70c667fafcb1fd (patch) | |
tree | 89624148ff8018c19742a737c45ed4a7c3dff573 /libyul | |
parent | c3fc2da7637eb7f7d0c8930845b373fc0ea5be78 (diff) | |
download | dexon-solidity-852297fa2f4c4ac0c3aa56011f70c667fafcb1fd.tar dexon-solidity-852297fa2f4c4ac0c3aa56011f70c667fafcb1fd.tar.gz dexon-solidity-852297fa2f4c4ac0c3aa56011f70c667fafcb1fd.tar.bz2 dexon-solidity-852297fa2f4c4ac0c3aa56011f70c667fafcb1fd.tar.lz dexon-solidity-852297fa2f4c4ac0c3aa56011f70c667fafcb1fd.tar.xz dexon-solidity-852297fa2f4c4ac0c3aa56011f70c667fafcb1fd.tar.zst dexon-solidity-852297fa2f4c4ac0c3aa56011f70c667fafcb1fd.zip |
Builtin functions for yul analysis.
Diffstat (limited to 'libyul')
-rw-r--r-- | libyul/AsmAnalysis.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libyul/AsmAnalysis.cpp b/libyul/AsmAnalysis.cpp index 5215e5c2..3cbed9c7 100644 --- a/libyul/AsmAnalysis.cpp +++ b/libyul/AsmAnalysis.cpp @@ -299,7 +299,13 @@ bool AsmAnalyzer::operator()(FunctionCall const& _funCall) bool success = true; size_t parameters = 0; size_t returns = 0; - if (!m_currentScope->lookup(_funCall.functionName.name, Scope::Visitor( + if (BuiltinFunction const* f = m_dialect.builtins->query(_funCall.functionName.name)) + { + // TODO: compare types, too + parameters = f->parameters.size(); + returns = f->returns.size(); + } + else if (!m_currentScope->lookup(_funCall.functionName.name, Scope::Visitor( [&](Scope::Variable const&) { m_errorReporter.typeError( |