Validate each tuple literal

This commit is contained in:
Alex Beregszaszi
2017-10-17 18:59:01 +02:00
committed by chriseth
parent c67b559ead
commit c99d2aae04
3 changed files with 39 additions and 1 deletions
+6
View File
@@ -1293,6 +1293,12 @@ bool TypeChecker::visit(TupleExpression const& _tuple)
{
components[i]->accept(*this);
types.push_back(type(*components[i]));
// Note: code generation will visit each of the expression even if they are not assigned from.
if (types[i]->category() == Type::Category::RationalNumber)
if (!dynamic_cast<RationalNumberType const&>(*types[i]).mobileType())
m_errorReporter.fatalTypeError(components[i]->location(), "Invalid rational number.");
if (_tuple.isInlineArray())
solAssert(!!types[i], "Inline array cannot have empty components");
if (_tuple.isInlineArray())