From cb75e6218b4e02cb7c7a592598211503d44abc12 Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 26 Jul 2017 14:19:46 +0200 Subject: Fix crash on assignment to non-lvalue. --- libsolidity/analysis/TypeChecker.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libsolidity/analysis') diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 23f01752..7a766489 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -1124,7 +1124,9 @@ bool TypeChecker::visit(Assignment const& _assignment) _assignment.annotation().type = make_shared(); expectType(_assignment.rightHandSide(), *tupleType); - checkDoubleStorageAssignment(_assignment); + // expectType does not cause fatal errors, so we have to check again here. + if (dynamic_cast(type(_assignment.rightHandSide()).get())) + checkDoubleStorageAssignment(_assignment); } else if (t->category() == Type::Category::Mapping) { -- cgit v1.2.3