aboutsummaryrefslogtreecommitdiffstats
path: root/libyul
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-12-04 18:23:28 +0800
committerchriseth <chris@ethereum.org>2018-12-04 21:50:00 +0800
commit852297fa2f4c4ac0c3aa56011f70c667fafcb1fd (patch)
tree89624148ff8018c19742a737c45ed4a7c3dff573 /libyul
parentc3fc2da7637eb7f7d0c8930845b373fc0ea5be78 (diff)
downloaddexon-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.cpp8
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(