diff options
-rw-r--r-- | libsolidity/analysis/SyntaxChecker.cpp | 8 | ||||
-rw-r--r-- | test/libsolidity/SolidityNameAndTypeResolution.cpp | 15 |
2 files changed, 19 insertions, 4 deletions
diff --git a/libsolidity/analysis/SyntaxChecker.cpp b/libsolidity/analysis/SyntaxChecker.cpp index f1cdaf0f..e94ce9fe 100644 --- a/libsolidity/analysis/SyntaxChecker.cpp +++ b/libsolidity/analysis/SyntaxChecker.cpp @@ -40,24 +40,24 @@ void SyntaxChecker::syntaxError(SourceLocation const& _location, std::string con m_errors.push_back(err); } -bool SyntaxChecker::visit(WhileStatement const& _whileStatement) +bool SyntaxChecker::visit(WhileStatement const&) { m_inLoopDepth++; return true; } -void SyntaxChecker::endVisit(WhileStatement const& _whileStatement) +void SyntaxChecker::endVisit(WhileStatement const&) { m_inLoopDepth--; } -bool SyntaxChecker::visit(ForStatement const& _forStatement) +bool SyntaxChecker::visit(ForStatement const&) { m_inLoopDepth++; return true; } -void SyntaxChecker::endVisit(ForStatement const& _forStatement) +void SyntaxChecker::endVisit(ForStatement const&) { m_inLoopDepth--; } diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp index 11e78d94..a95021ea 100644 --- a/test/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp @@ -2934,6 +2934,21 @@ BOOST_AUTO_TEST_CASE(continue_not_in_loop) BOOST_CHECK(expectError(text) == Error::Type::SyntaxError); } +BOOST_AUTO_TEST_CASE(continue_not_in_loop_2) +{ + char const* text = R"( + contract C { + function f() { + while (true) + { + } + continue; + } + } + )"; + BOOST_CHECK(expectError(text) == Error::Type::SyntaxError); +} + BOOST_AUTO_TEST_SUITE_END() } |