Disallow comparison for reference types.

Fixes #2690
This commit is contained in:
chriseth 2015-08-06 15:39:42 +02:00
parent e0fbdd57e6
commit 4288543847

View File

@ -1899,6 +1899,18 @@ BOOST_AUTO_TEST_CASE(integer_boolean_operators)
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode3), TypeError); BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode3), TypeError);
} }
BOOST_AUTO_TEST_CASE(reference_compare_operators)
{
char const* sourceCode1 = R"(
contract test { bytes a; bytes b; function() { a == b; } }
)";
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode1), TypeError);
char const* sourceCode2 = R"(
contract test { struct s {uint a;}; s x; s y; function() { x == y; } }
)";
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode2), TypeError);
}
BOOST_AUTO_TEST_CASE(overwrite_memory_location_external) BOOST_AUTO_TEST_CASE(overwrite_memory_location_external)
{ {
char const* sourceCode = R"( char const* sourceCode = R"(