From 01956f1b90ecc091f7451018fa036c5e04baeb72 Mon Sep 17 00:00:00 2001 From: Fredric Silberberg Date: Mon, 18 Sep 2017 18:13:24 -0400 Subject: [PATCH] Fix tests, refactor ReceiverSymbol. --- .../CSharp/Portable/BoundTree/BoundNodes.xml | 2 +- .../Generated/BoundNodes.xml.Generated.cs | 20 +++++++++---------- ...ObjectOrCollectionInitializerExpression.cs | 2 +- .../Lowering/MethodToClassRewriter.cs | 2 +- .../Operations/CSharpOperationFactory.cs | 2 +- .../IOperationTests_IWithStatement.vb | 10 +++++----- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Compilers/CSharp/Portable/BoundTree/BoundNodes.xml b/src/Compilers/CSharp/Portable/BoundTree/BoundNodes.xml index 334198f3d9f..705e20a84cb 100644 --- a/src/Compilers/CSharp/Portable/BoundTree/BoundNodes.xml +++ b/src/Compilers/CSharp/Portable/BoundTree/BoundNodes.xml @@ -1324,7 +1324,7 @@ - + diff --git a/src/Compilers/CSharp/Portable/Generated/BoundNodes.xml.Generated.cs b/src/Compilers/CSharp/Portable/Generated/BoundNodes.xml.Generated.cs index 8557c21de7c..14ad2c0bdd5 100644 --- a/src/Compilers/CSharp/Portable/Generated/BoundNodes.xml.Generated.cs +++ b/src/Compilers/CSharp/Portable/Generated/BoundNodes.xml.Generated.cs @@ -4765,12 +4765,12 @@ public BoundObjectInitializerExpression Update(ImmutableArray i internal sealed partial class BoundObjectInitializerMember : BoundExpression { - public BoundObjectInitializerMember(SyntaxNode syntax, Symbol memberSymbol, ImmutableArray arguments, ImmutableArray argumentNamesOpt, ImmutableArray argumentRefKindsOpt, bool expanded, ImmutableArray argsToParamsOpt, LookupResultKind resultKind, TypeSymbol receiverSymbol, Binder binderOpt, TypeSymbol type, bool hasErrors = false) + public BoundObjectInitializerMember(SyntaxNode syntax, Symbol memberSymbol, ImmutableArray arguments, ImmutableArray argumentNamesOpt, ImmutableArray argumentRefKindsOpt, bool expanded, ImmutableArray argsToParamsOpt, LookupResultKind resultKind, TypeSymbol receiverType, Binder binderOpt, TypeSymbol type, bool hasErrors = false) : base(BoundKind.ObjectInitializerMember, syntax, type, hasErrors || arguments.HasErrors()) { Debug.Assert(!arguments.IsDefault, "Field 'arguments' cannot be null (use Null=\"allow\" in BoundNodes.xml to remove this check)"); - Debug.Assert(receiverSymbol != null, "Field 'receiverSymbol' cannot be null (use Null=\"allow\" in BoundNodes.xml to remove this check)"); + Debug.Assert(receiverType != null, "Field 'receiverType' cannot be null (use Null=\"allow\" in BoundNodes.xml to remove this check)"); Debug.Assert(type != null, "Field 'type' cannot be null (use Null=\"allow\" in BoundNodes.xml to remove this check)"); this.MemberSymbol = memberSymbol; @@ -4780,7 +4780,7 @@ public BoundObjectInitializerMember(SyntaxNode syntax, Symbol memberSymbol, Immu this.Expanded = expanded; this.ArgsToParamsOpt = argsToParamsOpt; this._ResultKind = resultKind; - this.ReceiverSymbol = receiverSymbol; + this.ReceiverType = receiverType; this.BinderOpt = binderOpt; } @@ -4800,7 +4800,7 @@ public BoundObjectInitializerMember(SyntaxNode syntax, Symbol memberSymbol, Immu private readonly LookupResultKind _ResultKind; public override LookupResultKind ResultKind { get { return _ResultKind;} } - public TypeSymbol ReceiverSymbol { get; } + public TypeSymbol ReceiverType { get; } public Binder BinderOpt { get; } @@ -4809,11 +4809,11 @@ public override BoundNode Accept(BoundTreeVisitor visitor) return visitor.VisitObjectInitializerMember(this); } - public BoundObjectInitializerMember Update(Symbol memberSymbol, ImmutableArray arguments, ImmutableArray argumentNamesOpt, ImmutableArray argumentRefKindsOpt, bool expanded, ImmutableArray argsToParamsOpt, LookupResultKind resultKind, TypeSymbol receiverSymbol, Binder binderOpt, TypeSymbol type) + public BoundObjectInitializerMember Update(Symbol memberSymbol, ImmutableArray arguments, ImmutableArray argumentNamesOpt, ImmutableArray argumentRefKindsOpt, bool expanded, ImmutableArray argsToParamsOpt, LookupResultKind resultKind, TypeSymbol receiverType, Binder binderOpt, TypeSymbol type) { - if (memberSymbol != this.MemberSymbol || arguments != this.Arguments || argumentNamesOpt != this.ArgumentNamesOpt || argumentRefKindsOpt != this.ArgumentRefKindsOpt || expanded != this.Expanded || argsToParamsOpt != this.ArgsToParamsOpt || resultKind != this.ResultKind || receiverSymbol != this.ReceiverSymbol || binderOpt != this.BinderOpt || type != this.Type) + if (memberSymbol != this.MemberSymbol || arguments != this.Arguments || argumentNamesOpt != this.ArgumentNamesOpt || argumentRefKindsOpt != this.ArgumentRefKindsOpt || expanded != this.Expanded || argsToParamsOpt != this.ArgsToParamsOpt || resultKind != this.ResultKind || receiverType != this.ReceiverType || binderOpt != this.BinderOpt || type != this.Type) { - var result = new BoundObjectInitializerMember(this.Syntax, memberSymbol, arguments, argumentNamesOpt, argumentRefKindsOpt, expanded, argsToParamsOpt, resultKind, receiverSymbol, binderOpt, type, this.HasErrors); + var result = new BoundObjectInitializerMember(this.Syntax, memberSymbol, arguments, argumentNamesOpt, argumentRefKindsOpt, expanded, argsToParamsOpt, resultKind, receiverType, binderOpt, type, this.HasErrors); result.WasCompilerGenerated = this.WasCompilerGenerated; return result; } @@ -9048,9 +9048,9 @@ public override BoundNode VisitObjectInitializerExpression(BoundObjectInitialize public override BoundNode VisitObjectInitializerMember(BoundObjectInitializerMember node) { ImmutableArray arguments = (ImmutableArray)this.VisitList(node.Arguments); - TypeSymbol receiverSymbol = this.VisitType(node.ReceiverSymbol); + TypeSymbol receiverType = this.VisitType(node.ReceiverType); TypeSymbol type = this.VisitType(node.Type); - return node.Update(node.MemberSymbol, arguments, node.ArgumentNamesOpt, node.ArgumentRefKindsOpt, node.Expanded, node.ArgsToParamsOpt, node.ResultKind, receiverSymbol, node.BinderOpt, type); + return node.Update(node.MemberSymbol, arguments, node.ArgumentNamesOpt, node.ArgumentRefKindsOpt, node.Expanded, node.ArgsToParamsOpt, node.ResultKind, receiverType, node.BinderOpt, type); } public override BoundNode VisitDynamicObjectInitializerMember(BoundDynamicObjectInitializerMember node) { @@ -10454,7 +10454,7 @@ public override TreeDumperNode VisitObjectInitializerMember(BoundObjectInitializ new TreeDumperNode("expanded", node.Expanded, null), new TreeDumperNode("argsToParamsOpt", node.ArgsToParamsOpt, null), new TreeDumperNode("resultKind", node.ResultKind, null), - new TreeDumperNode("receiverSymbol", node.ReceiverSymbol, null), + new TreeDumperNode("receiverType", node.ReceiverType, null), new TreeDumperNode("binderOpt", node.BinderOpt, null), new TreeDumperNode("type", node.Type, null) } diff --git a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ObjectOrCollectionInitializerExpression.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ObjectOrCollectionInitializerExpression.cs index 8b2bb45d1d2..8121ec9d1f7 100644 --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ObjectOrCollectionInitializerExpression.cs +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ObjectOrCollectionInitializerExpression.cs @@ -239,7 +239,7 @@ private BoundExpression MakeCollectionInitializer(BoundExpression rewrittenRecei memberInit.Expanded, memberInit.ArgsToParamsOpt, memberInit.ResultKind, - memberInit.ReceiverSymbol, + memberInit.ReceiverType, memberInit.BinderOpt, memberInit.Type); } diff --git a/src/Compilers/CSharp/Portable/Lowering/MethodToClassRewriter.cs b/src/Compilers/CSharp/Portable/Lowering/MethodToClassRewriter.cs index a2cd4030ae1..7f6e494aa7a 100644 --- a/src/Compilers/CSharp/Portable/Lowering/MethodToClassRewriter.cs +++ b/src/Compilers/CSharp/Portable/Lowering/MethodToClassRewriter.cs @@ -633,7 +633,7 @@ public override BoundNode VisitObjectInitializerMember(BoundObjectInitializerMem break; } - return node.Update(member, arguments, node.ArgumentNamesOpt, node.ArgumentRefKindsOpt, node.Expanded, node.ArgsToParamsOpt, node.ResultKind, node.ReceiverSymbol, node.BinderOpt, type); + return node.Update(member, arguments, node.ArgumentNamesOpt, node.ArgumentRefKindsOpt, node.Expanded, node.ArgsToParamsOpt, node.ResultKind, node.ReceiverType, node.BinderOpt, type); } private static bool BaseReferenceInReceiverWasRewritten(BoundExpression originalReceiver, BoundExpression rewrittenReceiver) diff --git a/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs b/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs index 4b214775dce..cc36b1a7a19 100644 --- a/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs +++ b/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs @@ -573,7 +573,7 @@ private IMemberReferenceExpression CreateBoundObjectInitializerMemberOperation(B Lazy instance = new Lazy(() => new InstanceReferenceExpression( semanticModel: _semanticModel, syntax: boundObjectInitializerMember.Syntax, - type: boundObjectInitializerMember.ReceiverSymbol, + type: boundObjectInitializerMember.ReceiverType, constantValue: default(Optional), isImplicit: boundObjectInitializerMember.WasCompilerGenerated)); diff --git a/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IWithStatement.vb b/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IWithStatement.vb index fdfe1c60a38..80e6e26ded1 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IWithStatement.vb +++ b/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IWithStatement.vb @@ -1,4 +1,4 @@ -' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Microsoft.CodeAnalysis.Test.Utilities @@ -33,12 +33,12 @@ IWithStatement (OperationKind.None) (Syntax: 'With c'BIND ... End With') IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: '.I = 0') Expression: ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: System.Int32) (Syntax: '.I = 0') Left: IFieldReferenceExpression: C.I As System.Int32 (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: '.I') - Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'c') + Instance Receiver: IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: C) (Syntax: 'c') Right: ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: '.J = 0') Expression: ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: System.Int32) (Syntax: '.J = 0') Left: IFieldReferenceExpression: C.J As System.Int32 (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: '.J') - Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'c') + Instance Receiver: IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: C) (Syntax: 'c') Right: ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') ]]>.Value @@ -73,12 +73,12 @@ IBlockStatement (3 statements) (OperationKind.BlockStatement) (Syntax: 'Private IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: '.I = 0') Expression: ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: System.Int32) (Syntax: '.I = 0') Left: IFieldReferenceExpression: C.I As System.Int32 (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: '.I') - Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'c') + Instance Receiver: IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: C) (Syntax: 'c') Right: ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: '.J = 0') Expression: ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: System.Int32) (Syntax: '.J = 0') Left: IFieldReferenceExpression: C.J As System.Int32 (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: '.J') - Instance Receiver: IOperation: (OperationKind.None) (Syntax: 'c') + Instance Receiver: IInstanceReferenceExpression (OperationKind.InstanceReferenceExpression, Type: C) (Syntax: 'c') Right: ILiteralExpression (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') ILabeledStatement (Label: exit) (OperationKind.LabeledStatement) (Syntax: 'End Sub') Statement: null -- GitLab