aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/ExpressionCompiler.cpp
diff options
context:
space:
mode:
authorLu Guanqun <guanqun.lu@gmail.com>2016-01-04 16:11:04 +0800
committerLu Guanqun <guanqun.lu@gmail.com>2016-01-04 16:11:36 +0800
commit568da1136992f8f188ba419bef814659f7a7794a (patch)
tree947396ddacbf9ed3d86434826b501a82f9ac7674 /libsolidity/codegen/ExpressionCompiler.cpp
parent6b711d0527823ff6287fe869579260bb27feacdd (diff)
downloaddexon-solidity-568da1136992f8f188ba419bef814659f7a7794a.tar.gz
dexon-solidity-568da1136992f8f188ba419bef814659f7a7794a.tar.zst
dexon-solidity-568da1136992f8f188ba419bef814659f7a7794a.zip
support decayed tuple expression as left value
Diffstat (limited to 'libsolidity/codegen/ExpressionCompiler.cpp')
-rw-r--r--libsolidity/codegen/ExpressionCompiler.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp
index 2fd0b2c4..b0e92b59 100644
--- a/libsolidity/codegen/ExpressionCompiler.cpp
+++ b/libsolidity/codegen/ExpressionCompiler.cpp
@@ -233,7 +233,12 @@ bool ExpressionCompiler::visit(TupleExpression const& _tuple)
else if (_tuple.annotation().lValueRequested)
lvalues.push_back(unique_ptr<LValue>());
if (_tuple.annotation().lValueRequested)
- m_currentLValue.reset(new TupleObject(m_context, move(lvalues)));
+ {
+ if (_tuple.components().size() == 1)
+ m_currentLValue = move(lvalues[0]);
+ else
+ m_currentLValue.reset(new TupleObject(m_context, move(lvalues)));
+ }
return false;
}