Disallow comparison for reference types.

Fixes #2690
This commit is contained in:
chriseth
2015-08-07 17:50:54 +02:00
parent e0fbdd57e6
commit 4288543847
@@ -1899,6 +1899,18 @@ BOOST_AUTO_TEST_CASE(integer_boolean_operators)
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)
{
char const* sourceCode = R"(