private ExpressionInfo Expr_AssignOp_Concat(XmlNode node)
{
var rhsExpr = node.GetSubNode(AstConstants.Subnode + ":" + AstConstants.Subnodes.Expr);
var rhsTaint = Analyze(rhsExpr);
var lhsExpr = node.GetSubNode(AstConstants.Subnode + ":" + AstConstants.Subnodes.Var);
var lhsVariable = _varResolver.ResolveVariable(lhsExpr.FirstChild).Variable;
lhsVariable.Info.Taints = lhsVariable.Info.Taints.Merge(rhsTaint.ExpressionTaint);
var result = new ExpressionInfo() { ExpressionTaint = lhsVariable.Info.Taints };
if (lhsVariable.Info.Value != null && rhsTaint.ValueInfo.Value != null)
{
lhsVariable.Info.Value = lhsVariable.Info.Value + rhsTaint.ValueInfo.Value;
}
return result;
}