mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Add LiteralKind to Dialect.literalArguments
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
This commit is contained in:
co-authored by
Daniel Kirchner
parent
b8fd409f7f
commit
f6a57af809
@@ -140,22 +140,20 @@ wasm::Expression WasmCodeTransform::operator()(FunctionCall const& _call)
|
||||
m_functionsToImport[builtin->name] = std::move(imp);
|
||||
}
|
||||
}
|
||||
else if (builtin->literalArguments && contains(builtin->literalArguments.value(), true))
|
||||
{
|
||||
vector<wasm::Expression> literals;
|
||||
for (size_t i = 0; i < _call.arguments.size(); i++)
|
||||
if (builtin->literalArguments.value()[i])
|
||||
literals.emplace_back(wasm::StringLiteral{std::get<Literal>(_call.arguments[i]).value.str()});
|
||||
else
|
||||
literals.emplace_back(visitReturnByValue(_call.arguments[i]));
|
||||
|
||||
return wasm::BuiltinCall{_call.functionName.name.str(), std::move(literals)};
|
||||
}
|
||||
else
|
||||
return wasm::BuiltinCall{
|
||||
_call.functionName.name.str(),
|
||||
visit(_call.arguments)
|
||||
};
|
||||
{
|
||||
vector<wasm::Expression> arguments;
|
||||
for (size_t i = 0; i < _call.arguments.size(); i++)
|
||||
if (builtin->literalArgument(i))
|
||||
{
|
||||
yulAssert(builtin->literalArgument(i) == LiteralKind::String, "");
|
||||
arguments.emplace_back(wasm::StringLiteral{std::get<Literal>(_call.arguments[i]).value.str()});
|
||||
}
|
||||
else
|
||||
arguments.emplace_back(visitReturnByValue(_call.arguments[i]));
|
||||
|
||||
return wasm::BuiltinCall{_call.functionName.name.str(), std::move(arguments)};
|
||||
}
|
||||
}
|
||||
|
||||
// If this function returns multiple values, then the first one will
|
||||
|
||||
Reference in New Issue
Block a user