mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fix for sol scanner where empty multiline comment became Natspec comment
This commit is contained in:
parent
7b3f0e549d
commit
b4712773d3
23
Scanner.cpp
23
Scanner.cpp
@ -285,8 +285,6 @@ Token::Value Scanner::scanMultiLineDocComment()
|
|||||||
bool endFound = false;
|
bool endFound = false;
|
||||||
bool charsAdded = false;
|
bool charsAdded = false;
|
||||||
|
|
||||||
advance(); //consume the last '*' at /**
|
|
||||||
skipWhitespaceExceptLF();
|
|
||||||
while (!isSourcePastEndOfInput())
|
while (!isSourcePastEndOfInput())
|
||||||
{
|
{
|
||||||
//handle newlines in multline comments
|
//handle newlines in multline comments
|
||||||
@ -354,11 +352,22 @@ Token::Value Scanner::scanSlash()
|
|||||||
return Token::WHITESPACE;
|
return Token::WHITESPACE;
|
||||||
else if (m_char == '*')
|
else if (m_char == '*')
|
||||||
{
|
{
|
||||||
Token::Value comment;
|
advance(); //consume the last '*' at /**
|
||||||
m_nextSkippedComment.location.start = firstSlashPosition;
|
skipWhitespaceExceptLF();
|
||||||
comment = scanMultiLineDocComment();
|
|
||||||
m_nextSkippedComment.location.end = getSourcePos();
|
// special case of a closed normal multiline comment
|
||||||
m_nextSkippedComment.token = comment;
|
if (!m_source.isPastEndOfInput() && m_source.get(0) == '/')
|
||||||
|
{
|
||||||
|
advance(); //skip the closing slash
|
||||||
|
}
|
||||||
|
else // we actually have a multiline documentation comment
|
||||||
|
{
|
||||||
|
Token::Value comment;
|
||||||
|
m_nextSkippedComment.location.start = firstSlashPosition;
|
||||||
|
comment = scanMultiLineDocComment();
|
||||||
|
m_nextSkippedComment.location.end = getSourcePos();
|
||||||
|
m_nextSkippedComment.token = comment;
|
||||||
|
}
|
||||||
return Token::WHITESPACE;
|
return Token::WHITESPACE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -119,6 +119,7 @@ public:
|
|||||||
{
|
{
|
||||||
return m_currentToken.token;
|
return m_currentToken.token;
|
||||||
}
|
}
|
||||||
|
|
||||||
Location getCurrentLocation() const { return m_currentToken.location; }
|
Location getCurrentLocation() const { return m_currentToken.location; }
|
||||||
std::string const& getCurrentLiteral() const { return m_currentToken.literal; }
|
std::string const& getCurrentLiteral() const { return m_currentToken.literal; }
|
||||||
///@}
|
///@}
|
||||||
|
Loading…
Reference in New Issue
Block a user