aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/TypeChecker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libsolidity/TypeChecker.cpp')
-rw-r--r--libsolidity/TypeChecker.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/libsolidity/TypeChecker.cpp b/libsolidity/TypeChecker.cpp
index c7b693bb..e9d01a84 100644
--- a/libsolidity/TypeChecker.cpp
+++ b/libsolidity/TypeChecker.cpp
@@ -730,7 +730,13 @@ bool TypeChecker::visit(Assignment const& _assignment)
requireLValue(_assignment.leftHandSide());
TypePointer t = type(_assignment.leftHandSide());
_assignment.annotation().type = t;
- if (t->category() == Type::Category::Mapping)
+ if (TupleType const* tupleType = dynamic_cast<TupleType const*>(t.get()))
+ {
+ // Sequenced assignments of tuples is not valid.
+ _assignment.annotation().type = make_shared<TupleType const>();
+ expectType(_assignment.rightHandSide(), *tupleType);
+ }
+ else if (t->category() == Type::Category::Mapping)
{
typeError(_assignment, "Mappings cannot be assigned to.");
_assignment.rightHandSide().accept(*this);