mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #2815 from ethereum/parser-fallthrough
Remove fallthrough from literal parsing
This commit is contained in:
commit
ec6d8007db
@ -903,11 +903,13 @@ ASTPointer<Statement> Parser::parseStatement()
|
||||
{
|
||||
statement = ASTNodeFactory(*this).createNode<PlaceholderStatement>(docString);
|
||||
m_scanner->next();
|
||||
break;
|
||||
}
|
||||
// fall-through
|
||||
else
|
||||
statement = parseSimpleStatement(docString);
|
||||
break;
|
||||
default:
|
||||
statement = parseSimpleStatement(docString);
|
||||
break;
|
||||
}
|
||||
expectToken(Token::Semicolon);
|
||||
return statement;
|
||||
@ -1309,18 +1311,21 @@ ASTPointer<Expression> Parser::parsePrimaryExpression()
|
||||
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
|
||||
m_scanner->next();
|
||||
expression = nodeFactory.createNode<Literal>(token, literal, subdenomination);
|
||||
break;
|
||||
}
|
||||
if (Token::isTimeSubdenomination(m_scanner->peekNextToken()))
|
||||
else if (Token::isTimeSubdenomination(m_scanner->peekNextToken()))
|
||||
{
|
||||
ASTPointer<ASTString> literal = getLiteralAndAdvance();
|
||||
nodeFactory.markEndPosition();
|
||||
Literal::SubDenomination subdenomination = static_cast<Literal::SubDenomination>(m_scanner->currentToken());
|
||||
m_scanner->next();
|
||||
expression = nodeFactory.createNode<Literal>(token, literal, subdenomination);
|
||||
break;
|
||||
}
|
||||
// fall-through
|
||||
else
|
||||
{
|
||||
nodeFactory.markEndPosition();
|
||||
expression = nodeFactory.createNode<Literal>(token, getLiteralAndAdvance());
|
||||
}
|
||||
break;
|
||||
case Token::StringLiteral:
|
||||
nodeFactory.markEndPosition();
|
||||
expression = nodeFactory.createNode<Literal>(token, getLiteralAndAdvance());
|
||||
@ -1357,9 +1362,9 @@ ASTPointer<Expression> Parser::parsePrimaryExpression()
|
||||
}
|
||||
nodeFactory.markEndPosition();
|
||||
expectToken(oppositeToken);
|
||||
return nodeFactory.createNode<TupleExpression>(components, isArray);
|
||||
expression = nodeFactory.createNode<TupleExpression>(components, isArray);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
if (Token::isElementaryTypeName(token))
|
||||
{
|
||||
|
@ -435,7 +435,7 @@ void Scanner::scanToken()
|
||||
m_nextToken.location.start = sourcePos();
|
||||
switch (m_char)
|
||||
{
|
||||
case '\n': // fall-through
|
||||
case '\n':
|
||||
case ' ':
|
||||
case '\t':
|
||||
token = selectToken(Token::Whitespace);
|
||||
|
Loading…
Reference in New Issue
Block a user