提交 0d97f3c6 编写于 作者: G gafter

Minor code changes suggested in code review.

上级 387150e3
......@@ -2556,7 +2556,7 @@ private bool IsOperandErrors(CSharpSyntaxNode node, ref BoundExpression operand,
if (!operand.HasAnyErrors)
{
Error(diagnostics, ErrorCode.ERR_LambdaInIsAs, node);
operand = new BoundBadExpression(node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundNode>(operand), CreateErrorType());
operand = BadExpression(node, operand);
}
return true;
......@@ -2595,7 +2595,7 @@ private BoundExpression BindIsOperator(BinaryExpressionSyntax node, DiagnosticBa
{
var resultType = (TypeSymbol)GetSpecialType(SpecialType.System_Boolean, diagnostics, node);
var operand = BindValue(node.Left, diagnostics, BindValueKind.RValue);
var expressionHasErrors = IsOperandErrors(node, ref operand, diagnostics);
var operandHasErrors = IsOperandErrors(node, ref operand, diagnostics);
// try binding as a type, but back off to binding as an expression if that does not work.
AliasSymbol alias;
......@@ -2615,7 +2615,7 @@ private BoundExpression BindIsOperator(BinaryExpressionSyntax node, DiagnosticBa
{
tempBag.Free();
diagnostics.AddRangeAndFree(tempBag2);
return new BoundIsPatternExpression(node, operand, boundConstantPattern, resultType, expressionHasErrors);
return new BoundIsPatternExpression(node, operand, boundConstantPattern, resultType, operandHasErrors);
}
tempBag2.Free();
......@@ -2624,7 +2624,7 @@ private BoundExpression BindIsOperator(BinaryExpressionSyntax node, DiagnosticBa
diagnostics.AddRangeAndFree(tempBag);
var typeExpression = new BoundTypeExpression(node.Right, alias, targetType);
var targetTypeKind = targetType.TypeKind;
if (expressionHasErrors || IsOperatorErrors(node, operand.Type, typeExpression, diagnostics))
if (operandHasErrors || IsOperatorErrors(node, operand.Type, typeExpression, diagnostics))
{
return new BoundIsOperator(node, operand, typeExpression, Conversion.NoConversion, resultType, hasErrors: true);
}
......
......@@ -14,7 +14,7 @@ partial class Binder
private BoundExpression BindIsPatternExpression(IsPatternExpressionSyntax node, DiagnosticBag diagnostics)
{
var expression = BindValue(node.Expression, diagnostics, BindValueKind.RValue);
var hasErrors = node.HasErrors || IsOperandErrors(node, ref expression, diagnostics) || expression.HasErrors;
var hasErrors = node.HasErrors || IsOperandErrors(node, ref expression, diagnostics);
var pattern = BindPattern(node.Pattern, expression, expression.Type, hasErrors, diagnostics);
return new BoundIsPatternExpression(
node, expression, pattern, GetSpecialType(SpecialType.System_Boolean, diagnostics, node), hasErrors);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册