提交 04783f90 编写于 作者: G Gen Lu

Address review comments

上级 9e9b1648
......@@ -616,13 +616,8 @@ private IOperation CreateBoundObjectInitializerMemberOperation(BoundObjectInitia
var accessor = property.GetOwnOrInheritedSetMethod();
if (accessor == null || boundObjectInitializerMember.ResultKind == LookupResultKind.OverloadResolutionFailure || accessor.OriginalDefinition is ErrorMethodSymbol)
{
Lazy<ImmutableArray<IOperation>> children = new Lazy<ImmutableArray<IOperation>>(
() =>
{
var builder = ArrayBuilder<IOperation>.GetInstance(boundObjectInitializerMember.Arguments.Length);
builder.AddRange(boundObjectInitializerMember.Arguments.Select(a => Create(a)));
return builder.ToImmutableAndFree();
});
Lazy<ImmutableArray<IOperation>> children = new Lazy<ImmutableArray<IOperation>>(() =>
boundObjectInitializerMember.Arguments.SelectAsArray(a => Create(a)));
return new LazyInvalidExpression(children, _semanticModel, syntax, type, constantValue, isImplicit);
}
// Indexed property reference.
......
......@@ -146,23 +146,27 @@ private IEventReferenceExpression CreateBoundEventAccessOperation(BoundEventAssi
invokedAsExtensionMethod: invokedAsExtensionMethod);
}
private IInvalidExpression CreateInvalidExpressionForHasArgumentsExpression(BoundNode ReceiverOpt, ImmutableArray<BoundExpression> arguments, BoundExpression AdditionalNodeOpt, SyntaxNode syntax, ITypeSymbol type, Optional<object> constantValue, bool isImplicit)
private IInvalidExpression CreateInvalidExpressionForHasArgumentsExpression(BoundNode receiverOpt, ImmutableArray<BoundExpression> arguments, BoundExpression additionalNodeOpt, SyntaxNode syntax, ITypeSymbol type, Optional<object> constantValue, bool isImplicit)
{
Lazy<ImmutableArray<IOperation>> children = new Lazy<ImmutableArray<IOperation>>(
() =>
{
ArrayBuilder<IOperation> builder = ArrayBuilder<IOperation>.GetInstance();
if (ReceiverOpt != null && !ReceiverOpt.WasCompilerGenerated)
if (receiverOpt != null
&& (!receiverOpt.WasCompilerGenerated
|| (receiverOpt.Kind != BoundKind.ThisReference
&& receiverOpt.Kind != BoundKind.BaseReference
&& receiverOpt.Kind != BoundKind.ImplicitReceiver)))
{
builder.Add(Create(ReceiverOpt));
builder.Add(Create(receiverOpt));
}
builder.AddRange(arguments.Select(a => Create(a)));
if (AdditionalNodeOpt != null)
if (additionalNodeOpt != null)
{
builder.Add(Create(AdditionalNodeOpt));
builder.Add(Create(additionalNodeOpt));
}
return builder.ToImmutableAndFree();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册