Merge pull request #9329 from ethereum/optimiser-token

Disallow language keywords to be used as identifiers by NameDispenser and VarNameCleaner
This commit is contained in:
chriseth
2020-08-31 19:33:07 +02:00
committed by GitHub
7 changed files with 28 additions and 6 deletions
+5
View File
@@ -152,6 +152,11 @@ static Token keywordByName(string const& _name)
return it == keywords.end() ? Token::Identifier : it->second;
}
bool isYulKeyword(string const& _literal)
{
return _literal == "leave" || isYulKeyword(keywordByName(_literal));
}
tuple<Token, unsigned int, unsigned int> fromIdentifierOrKeyword(string const& _literal)
{
auto positionM = find_if(_literal.begin(), _literal.end(), ::isdigit);
+2
View File
@@ -327,6 +327,8 @@ namespace TokenTraits
tok == Token::TrueLiteral || tok == Token::FalseLiteral || tok == Token::HexStringLiteral || tok == Token::Hex;
}
bool isYulKeyword(std::string const& _literal);
inline Token AssignmentToBinaryOp(Token op)
{
solAssert(isAssignmentOp(op) && op != Token::Assign, "");