mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Rename arguments to paramaters and returns to returnVariables.
This commit is contained in:
parent
d0af0c1484
commit
43bb915454
@ -289,7 +289,7 @@ void CodeTransform::operator()(FunctionDefinition const& _function)
|
||||
solAssert(m_info.scopes.at(&_function.body), "");
|
||||
Scope* varScope = m_info.scopes.at(m_info.virtualBlocks.at(&_function).get()).get();
|
||||
solAssert(varScope, "");
|
||||
for (auto const& v: _function.arguments | boost::adaptors::reversed)
|
||||
for (auto const& v: _function.parameters | boost::adaptors::reversed)
|
||||
{
|
||||
auto& var = boost::get<Scope::Variable>(varScope->identifiers.at(v.name));
|
||||
m_context->variableStackHeights[&var] = height++;
|
||||
@ -302,7 +302,7 @@ void CodeTransform::operator()(FunctionDefinition const& _function)
|
||||
if (m_evm15)
|
||||
{
|
||||
m_assembly.appendJumpTo(afterFunction, -stackHeightBefore);
|
||||
m_assembly.appendBeginsub(functionEntryID(_function.name, function), _function.arguments.size());
|
||||
m_assembly.appendBeginsub(functionEntryID(_function.name, function), _function.parameters.size());
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -311,7 +311,7 @@ void CodeTransform::operator()(FunctionDefinition const& _function)
|
||||
}
|
||||
m_stackAdjustment += localStackAdjustment;
|
||||
|
||||
for (auto const& v: _function.returns)
|
||||
for (auto const& v: _function.returnVariables)
|
||||
{
|
||||
auto& var = boost::get<Scope::Variable>(varScope->identifiers.at(v.name));
|
||||
m_context->variableStackHeights[&var] = height++;
|
||||
@ -341,9 +341,9 @@ void CodeTransform::operator()(FunctionDefinition const& _function)
|
||||
// modified parallel to the actual stack.
|
||||
vector<int> stackLayout;
|
||||
if (!m_evm15)
|
||||
stackLayout.push_back(_function.returns.size()); // Move return label to the top
|
||||
stackLayout += vector<int>(_function.arguments.size(), -1); // discard all arguments
|
||||
for (size_t i = 0; i < _function.returns.size(); ++i)
|
||||
stackLayout.push_back(_function.returnVariables.size()); // Move return label to the top
|
||||
stackLayout += vector<int>(_function.parameters.size(), -1); // discard all arguments
|
||||
for (size_t i = 0; i < _function.returnVariables.size(); ++i)
|
||||
stackLayout.push_back(i); // Move return values down, but keep order.
|
||||
|
||||
solAssert(stackLayout.size() <= 17, "Stack too deep");
|
||||
@ -363,9 +363,9 @@ void CodeTransform::operator()(FunctionDefinition const& _function)
|
||||
}
|
||||
|
||||
if (m_evm15)
|
||||
m_assembly.appendReturnsub(_function.returns.size(), stackHeightBefore);
|
||||
m_assembly.appendReturnsub(_function.returnVariables.size(), stackHeightBefore);
|
||||
else
|
||||
m_assembly.appendJump(stackHeightBefore - _function.returns.size());
|
||||
m_assembly.appendJump(stackHeightBefore - _function.returnVariables.size());
|
||||
m_stackAdjustment -= localStackAdjustment;
|
||||
m_assembly.appendLabel(afterFunction);
|
||||
checkStackHeight(&_function);
|
||||
|
@ -217,14 +217,14 @@ bool AsmAnalyzer::operator()(assembly::FunctionDefinition const& _funDef)
|
||||
Block const* virtualBlock = m_info.virtualBlocks.at(&_funDef).get();
|
||||
solAssert(virtualBlock, "");
|
||||
Scope& varScope = scope(virtualBlock);
|
||||
for (auto const& var: _funDef.arguments + _funDef.returns)
|
||||
for (auto const& var: _funDef.parameters + _funDef.returnVariables)
|
||||
{
|
||||
expectValidType(var.type, var.location);
|
||||
m_activeVariables.insert(&boost::get<Scope::Variable>(varScope.identifiers.at(var.name)));
|
||||
}
|
||||
|
||||
int const stackHeight = m_stackHeight;
|
||||
m_stackHeight = _funDef.arguments.size() + _funDef.returns.size();
|
||||
m_stackHeight = _funDef.parameters.size() + _funDef.returnVariables.size();
|
||||
|
||||
bool success = (*this)(_funDef.body);
|
||||
|
||||
|
@ -67,7 +67,7 @@ struct VariableDeclaration { SourceLocation location; TypedNameList variables; s
|
||||
/// Block that creates a scope (frees declared stack variables)
|
||||
struct Block { SourceLocation location; std::vector<Statement> statements; };
|
||||
/// Function definition ("function f(a, b) -> (d, e) { ... }")
|
||||
struct FunctionDefinition { SourceLocation location; std::string name; TypedNameList arguments; TypedNameList returns; Block body; };
|
||||
struct FunctionDefinition { SourceLocation location; std::string name; TypedNameList parameters; TypedNameList returnVariables; Block body; };
|
||||
/// Conditional execution without "else" part.
|
||||
struct If { SourceLocation location; std::shared_ptr<Statement> condition; Block body; };
|
||||
/// Switch case or default case
|
||||
|
@ -419,7 +419,7 @@ assembly::FunctionDefinition Parser::parseFunctionDefinition()
|
||||
expectToken(Token::LParen);
|
||||
while (currentToken() != Token::RParen)
|
||||
{
|
||||
funDef.arguments.emplace_back(parseTypedName());
|
||||
funDef.parameters.emplace_back(parseTypedName());
|
||||
if (currentToken() == Token::RParen)
|
||||
break;
|
||||
expectToken(Token::Comma);
|
||||
@ -431,7 +431,7 @@ assembly::FunctionDefinition Parser::parseFunctionDefinition()
|
||||
expectToken(Token::GreaterThan);
|
||||
while (true)
|
||||
{
|
||||
funDef.returns.emplace_back(parseTypedName());
|
||||
funDef.returnVariables.emplace_back(parseTypedName());
|
||||
if (currentToken() == Token::LBrace)
|
||||
break;
|
||||
expectToken(Token::Comma);
|
||||
|
@ -144,17 +144,17 @@ string AsmPrinter::operator()(assembly::FunctionDefinition const& _functionDefin
|
||||
{
|
||||
string out = "function " + _functionDefinition.name + "(";
|
||||
out += boost::algorithm::join(
|
||||
_functionDefinition.arguments | boost::adaptors::transformed(
|
||||
_functionDefinition.parameters | boost::adaptors::transformed(
|
||||
[this](TypedName argument) { return argument.name + appendTypeName(argument.type); }
|
||||
),
|
||||
", "
|
||||
);
|
||||
out += ")";
|
||||
if (!_functionDefinition.returns.empty())
|
||||
if (!_functionDefinition.returnVariables.empty())
|
||||
{
|
||||
out += " -> ";
|
||||
out += boost::algorithm::join(
|
||||
_functionDefinition.returns | boost::adaptors::transformed(
|
||||
_functionDefinition.returnVariables | boost::adaptors::transformed(
|
||||
[this](TypedName argument) { return argument.name + appendTypeName(argument.type); }
|
||||
),
|
||||
", "
|
||||
|
@ -71,10 +71,10 @@ bool ScopeFiller::operator()(assembly::FunctionDefinition const& _funDef)
|
||||
{
|
||||
bool success = true;
|
||||
vector<Scope::JuliaType> arguments;
|
||||
for (auto const& _argument: _funDef.arguments)
|
||||
for (auto const& _argument: _funDef.parameters)
|
||||
arguments.push_back(_argument.type);
|
||||
vector<Scope::JuliaType> returns;
|
||||
for (auto const& _return: _funDef.returns)
|
||||
for (auto const& _return: _funDef.returnVariables)
|
||||
returns.push_back(_return.type);
|
||||
if (!m_currentScope->registerFunction(_funDef.name, arguments, returns))
|
||||
{
|
||||
@ -91,7 +91,7 @@ bool ScopeFiller::operator()(assembly::FunctionDefinition const& _funDef)
|
||||
varScope.superScope = m_currentScope;
|
||||
m_currentScope = &varScope;
|
||||
varScope.functionScope = true;
|
||||
for (auto const& var: _funDef.arguments + _funDef.returns)
|
||||
for (auto const& var: _funDef.parameters + _funDef.returnVariables)
|
||||
if (!registerVariable(var, _funDef.location, varScope))
|
||||
success = false;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user