mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #4179 from ethereum/emitWorkaround
[BREAKING] Remove emit workaround
This commit is contained in:
commit
8999a2f375
@ -8,6 +8,7 @@ Breaking Changes:
|
|||||||
* Commandline interface: Require ``-`` if standard input is used as source.
|
* Commandline interface: Require ``-`` if standard input is used as source.
|
||||||
* General: New keywords: ``calldata``
|
* General: New keywords: ``calldata``
|
||||||
* General: ``continue`` in a ``do...while`` loop jumps to the condition (it used to jump to the loop body). Warning: this may silently change the semantics of existing code.
|
* General: ``continue`` in a ``do...while`` loop jumps to the condition (it used to jump to the loop body). Warning: this may silently change the semantics of existing code.
|
||||||
|
* Introduce ``emit`` as a keyword instead of parsing it as identifier.
|
||||||
* Type Checker: Disallow arithmetic operations for Boolean variables.
|
* Type Checker: Disallow arithmetic operations for Boolean variables.
|
||||||
* Disallow trailing dots that are not followed by a number.
|
* Disallow trailing dots that are not followed by a number.
|
||||||
* Remove assembly instructions ``sha3`` and ``suicide``
|
* Remove assembly instructions ``sha3`` and ``suicide``
|
||||||
|
@ -939,10 +939,11 @@ ASTPointer<Statement> Parser::parseStatement()
|
|||||||
}
|
}
|
||||||
case Token::Assembly:
|
case Token::Assembly:
|
||||||
return parseInlineAssembly(docString);
|
return parseInlineAssembly(docString);
|
||||||
case Token::Identifier:
|
case Token::Emit:
|
||||||
if (m_scanner->currentLiteral() == "emit")
|
|
||||||
statement = parseEmitStatement(docString);
|
statement = parseEmitStatement(docString);
|
||||||
else if (m_insideModifier && m_scanner->currentLiteral() == "_")
|
break;
|
||||||
|
case Token::Identifier:
|
||||||
|
if (m_insideModifier && m_scanner->currentLiteral() == "_")
|
||||||
{
|
{
|
||||||
statement = ASTNodeFactory(*this).createNode<PlaceholderStatement>(docString);
|
statement = ASTNodeFactory(*this).createNode<PlaceholderStatement>(docString);
|
||||||
m_scanner->next();
|
m_scanner->next();
|
||||||
@ -1062,6 +1063,8 @@ ASTPointer<ForStatement> Parser::parseForStatement(ASTPointer<ASTString> const&
|
|||||||
|
|
||||||
ASTPointer<EmitStatement> Parser::parseEmitStatement(ASTPointer<ASTString> const& _docString)
|
ASTPointer<EmitStatement> Parser::parseEmitStatement(ASTPointer<ASTString> const& _docString)
|
||||||
{
|
{
|
||||||
|
expectToken(Token::Emit, false);
|
||||||
|
|
||||||
ASTNodeFactory nodeFactory(*this);
|
ASTNodeFactory nodeFactory(*this);
|
||||||
m_scanner->next();
|
m_scanner->next();
|
||||||
ASTNodeFactory eventCallNodeFactory(*this);
|
ASTNodeFactory eventCallNodeFactory(*this);
|
||||||
|
@ -149,6 +149,7 @@ namespace solidity
|
|||||||
K(Do, "do", 0) \
|
K(Do, "do", 0) \
|
||||||
K(Else, "else", 0) \
|
K(Else, "else", 0) \
|
||||||
K(Enum, "enum", 0) \
|
K(Enum, "enum", 0) \
|
||||||
|
K(Emit, "emit", 0) \
|
||||||
K(Event, "event", 0) \
|
K(Event, "event", 0) \
|
||||||
K(External, "external", 0) \
|
K(External, "external", 0) \
|
||||||
K(For, "for", 0) \
|
K(For, "for", 0) \
|
||||||
|
Loading…
Reference in New Issue
Block a user