From 9cd96222dae55173d3afc17b3cf7a4701edae156 Mon Sep 17 00:00:00 2001
From: Lu Guanqun <guanqun.lu@gmail.com>
Date: Wed, 23 Dec 2015 16:12:41 +0000
Subject: [PATCH] [cond-expr] support conditional expression as lvalue

---
 libsolidity/analysis/TypeChecker.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index 058e879e1..416ac1efc 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -769,6 +769,14 @@ void TypeChecker::endVisit(Conditional const& _conditional)
 			"."
 		);
 	_conditional.annotation().type = commonType;
+
+	if (_conditional.annotation().lValueRequested)
+	{
+		requireLValue(_conditional.trueExpression());
+		requireLValue(_conditional.falseExpression());
+
+		_conditional.annotation().isLValue = true;
+	}
 }
 
 bool TypeChecker::visit(Assignment const& _assignment)