Merge pull request #1101 from ethereum/fixcrash

Fix crash for TypeName[k].
This commit is contained in:
chriseth 2016-09-17 11:28:44 +02:00 committed by GitHub
commit 0bc8476aea
3 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,11 @@
### 0.4.2
* Type Checker: Fixed a crash about invalid array types.
### 0.4.1 (2016-09-09)
* Build System: Fixes to allow library compilation.
### 0.4.0 (2016-09-08) ### 0.4.0 (2016-09-08)
This release deliberately breaks backwards compatibility mostly to This release deliberately breaks backwards compatibility mostly to

View File

@ -1438,7 +1438,7 @@ bool TypeChecker::visit(IndexAccess const& _access)
length->literalValue(nullptr) length->literalValue(nullptr)
)); ));
else else
typeError(index->location(), "Integer constant expected."); fatalTypeError(index->location(), "Integer constant expected.");
} }
break; break;
} }

View File

@ -4009,6 +4009,16 @@ BOOST_AUTO_TEST_CASE(external_constructor)
BOOST_CHECK(expectError(text, false) == Error::Type::TypeError); BOOST_CHECK(expectError(text, false) == Error::Type::TypeError);
} }
BOOST_AUTO_TEST_CASE(invalid_array_as_statement)
{
char const* text = R"(
contract test {
struct S { uint x; }
function test(uint k) { S[k]; }
}
)";
BOOST_CHECK(expectError(text, false) == Error::Type::TypeError);
}
BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE_END()