Value VisitConditionalOperator(OperatorResolveResult result, BinaryOperatorType bitwiseOperatorType) { Debug.Assert(result.Operands.Count == 2); var lhs = Convert(result.Operands[0]).GetPermanentReference(evalThread); CSharpResolver resolver = new CSharpResolver(debuggerTypeSystem); Value condVal; if (bitwiseOperatorType == BinaryOperatorType.BitwiseAnd) { condVal = Convert(resolver.ResolveConditionFalse(lhs.ToResolveResult(context))); } else { condVal = Convert(resolver.ResolveCondition(lhs.ToResolveResult(context))); } if ((bool)condVal.PrimitiveValue) { return(lhs); } var rhs = Convert(result.Operands[1]); var val = resolver.ResolveBinaryOperator(bitwiseOperatorType, lhs.ToResolveResult(context), rhs.ToResolveResult(context)); return(Convert(val)); }