From f2b58de92cdffe9d6e70aff2f0198277a5da335a Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Sun, 22 Apr 2018 16:54:33 +0200 Subject: Prevents null type from being used in tuple. --- libsolidity/analysis/TypeChecker.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libsolidity') diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 66b0af58..2675b7eb 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -1418,6 +1418,10 @@ bool TypeChecker::visit(TupleExpression const& _tuple) components[i]->accept(*this); types.push_back(type(*components[i])); + if (types[i]->category() == Type::Category::Tuple) + if (dynamic_cast(*types[i]).components().empty()) + m_errorReporter.fatalTypeError(components[i]->location(), "Type of tuple component cannot be null."); + // Note: code generation will visit each of the expression even if they are not assigned from. if (types[i]->category() == Type::Category::RationalNumber && components.size() > 1) if (!dynamic_cast(*types[i]).mobileType()) -- cgit v1.2.3