ICSharpCode.NRefactory.CSharp.Resolver.CSharpResolver.ResolveAssignment C# (CSharp) Method

ResolveAssignment() public method

public ResolveAssignment ( AssignmentOperatorType op, ResolveResult lhs, ResolveResult rhs ) : ResolveResult
op AssignmentOperatorType
lhs ResolveResult
rhs ResolveResult
return ResolveResult
		public ResolveResult ResolveAssignment(AssignmentOperatorType op, ResolveResult lhs, ResolveResult rhs)
		{
			var linqOp = AssignmentExpression.GetLinqNodeType(op, this.CheckForOverflow);
			var bop = AssignmentExpression.GetCorrespondingBinaryOperator(op);
			if (bop == null) {
				return new OperatorResolveResult(lhs.Type, linqOp, lhs, this.Convert(rhs, lhs.Type));
			}
			ResolveResult bopResult = ResolveBinaryOperator(bop.Value, lhs, rhs);
			OperatorResolveResult opResult = bopResult as OperatorResolveResult;
			if (opResult == null || opResult.Operands.Count != 2)
				return bopResult;
			return new OperatorResolveResult(lhs.Type, linqOp, opResult.UserDefinedOperatorMethod, opResult.IsLiftedOperator,
			                                 new [] { lhs, opResult.Operands[1] });
		}
		#endregion
CSharpResolver