aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLu Guanqun <guanqun.lu@gmail.com>2016-01-19 10:18:01 +0800
committerLu Guanqun <guanqun.lu@gmail.com>2016-01-19 11:24:58 +0800
commitdf728581ce1bb05a338519efc6b834adfed68d90 (patch)
treebbb96a4c9da2d42e653e0cdb6d7ae6ae7c76ed17
parentc8886ed5cfc4f0b7bf4e8d52eb94da7137c9b70e (diff)
downloaddexon-solidity-df728581ce1bb05a338519efc6b834adfed68d90.tar.gz
dexon-solidity-df728581ce1bb05a338519efc6b834adfed68d90.tar.zst
dexon-solidity-df728581ce1bb05a338519efc6b834adfed68d90.zip
add another test case for continue not in loop
-rw-r--r--libsolidity/analysis/SyntaxChecker.cpp8
-rw-r--r--test/libsolidity/SolidityNameAndTypeResolution.cpp15
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()
}