From ef25ee7d4002afb8f9b89b5b076f5a3385d460b4 Mon Sep 17 00:00:00 2001 From: Fredric Silberberg Date: Wed, 16 Aug 2017 17:32:59 -0700 Subject: [PATCH] Refactor IConditionalChoiceExpression. --- .../Operations/CSharpOperationFactory.cs | 4 +- .../IOperationTests_IForLoopStatement.cs | 6 +-- ...OperationTests_IWhileUntilLoopStatement.cs | 6 +-- .../Symbols/AnonymousTypesSemanticsTests.cs | 6 +-- .../Generated/Operations.xml.Generated.cs | 50 ++++++++--------- ...xpression.cs => IConditionalExpression.cs} | 6 +-- .../Portable/Operations/OperationCloner.cs | 4 +- .../Portable/Operations/OperationFactory.cs | 4 +- .../Core/Portable/Operations/OperationKind.cs | 4 +- .../Portable/Operations/OperationVisitor.cs | 4 +- .../Core/Portable/PublicAPI.Unshipped.txt | 14 ++--- .../Operations/VisualBasicOperationFactory.vb | 4 +- .../VisualBasicOperationFactory_Methods.vb | 2 +- .../IOperationTests_IForLoopStatement.vb | 54 +++++++++---------- .../IOperationTests_InvalidStatement.vb | 12 ++--- .../Compilation/OperationTreeVerifier.cs | 8 +-- .../Compilation/TestOperationWalker.cs | 4 +- 17 files changed, 96 insertions(+), 96 deletions(-) rename src/Compilers/Core/Portable/Operations/{IConditionalChoiceExpression.cs => IConditionalExpression.cs} (85%) diff --git a/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs b/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs index 067f7fa8a83..6a85e4f84de 100644 --- a/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs +++ b/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs @@ -902,7 +902,7 @@ private IBinaryOperatorExpression CreateBoundBinaryOperatorOperation(BoundBinary return new LazyBinaryOperatorExpression(binaryOperationKind, leftOperand, rightOperand, isLifted, usesOperatorMethod, operatorMethod, _semanticModel, syntax, type, constantValue, isImplicit); } - private IConditionalChoiceExpression CreateBoundConditionalOperatorOperation(BoundConditionalOperator boundConditionalOperator) + private IConditionalExpression CreateBoundConditionalOperatorOperation(BoundConditionalOperator boundConditionalOperator) { Lazy condition = new Lazy(() => Create(boundConditionalOperator.Condition)); Lazy ifTrueValue = new Lazy(() => Create(boundConditionalOperator.Consequence)); @@ -911,7 +911,7 @@ private IConditionalChoiceExpression CreateBoundConditionalOperatorOperation(Bou ITypeSymbol type = boundConditionalOperator.Type; Optional constantValue = ConvertToOptional(boundConditionalOperator.ConstantValue); bool isImplicit = boundConditionalOperator.WasCompilerGenerated; - return new LazyConditionalChoiceExpression(condition, ifTrueValue, ifFalseValue, _semanticModel, syntax, type, constantValue, isImplicit); + return new LazyConditionalExpression(condition, ifTrueValue, ifFalseValue, _semanticModel, syntax, type, constantValue, isImplicit); } private ICoalesceExpression CreateBoundNullCoalescingOperatorOperation(BoundNullCoalescingOperator boundNullCoalescingOperator) diff --git a/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.cs b/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.cs index a962c15b792..1531531db30 100644 --- a/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.cs +++ b/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.cs @@ -2063,7 +2063,7 @@ private void M() IVariableDeclarationStatement (1 declarations) (OperationKind.VariableDeclarationStatement) (Syntax: 'j = int.Try ... i) ? i : 0') IVariableDeclaration (1 variables) (OperationKind.VariableDeclaration) (Syntax: 'j = int.Try ... i) ? i : 0') Variables: Local_1: System.Int32 j - Initializer: IConditionalChoiceExpression (OperationKind.ConditionalChoiceExpression, Type: System.Int32) (Syntax: 'int.TryPars ... i) ? i : 0') + Initializer: IConditionalExpression (OperationKind.ConditionalExpression, Type: System.Int32) (Syntax: 'int.TryPars ... i) ? i : 0') Condition: IInvocationExpression (System.Boolean System.Int32.TryParse(System.String s, out System.Int32 result)) (OperationKind.InvocationExpression, Type: System.Boolean) (Syntax: 'int.TryPars ... out var i)') Instance Receiver: null Arguments(2): @@ -2075,8 +2075,8 @@ private void M() ILocalReferenceExpression: i (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'var i') InConversion: null OutConversion: null - IfTrue: ILocalReferenceExpression: i (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'i') - IfFalse: ILiteralExpression (Text: 0) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') + WhenTrue: ILocalReferenceExpression: i (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'i') + WhenFalse: ILiteralExpression (Text: 0) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 0) (Syntax: '0') AtLoopBottom: IExpressionStatement (OperationKind.ExpressionStatement) (Syntax: 'i++') Expression: IIncrementExpression (UnaryOperandKind.IntegerPostfixIncrement) (OperationKind.IncrementExpression, Type: System.Int32) (Syntax: 'i++') diff --git a/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IWhileUntilLoopStatement.cs b/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IWhileUntilLoopStatement.cs index 01ab790f0be..22936b3b6f8 100644 --- a/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IWhileUntilLoopStatement.cs +++ b/src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IWhileUntilLoopStatement.cs @@ -965,10 +965,10 @@ static bool TakeOutParam(T y, out T x) Instance Receiver: null Arguments(2): IArgument (ArgumentKind.Explicit, Matching Parameter: y) (OperationKind.Argument) (Syntax: 'f ? 1 : 2') - IConditionalChoiceExpression (OperationKind.ConditionalChoiceExpression, Type: System.Int32) (Syntax: 'f ? 1 : 2') + IConditionalExpression (OperationKind.ConditionalExpression, Type: System.Int32) (Syntax: 'f ? 1 : 2') Condition: ILocalReferenceExpression: f (OperationKind.LocalReferenceExpression, Type: System.Boolean) (Syntax: 'f') - IfTrue: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') - IfFalse: ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2') + WhenTrue: ILiteralExpression (Text: 1) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 1) (Syntax: '1') + WhenFalse: ILiteralExpression (Text: 2) (OperationKind.LiteralExpression, Type: System.Int32, Constant: 2) (Syntax: '2') InConversion: null OutConversion: null IArgument (ArgumentKind.Explicit, Matching Parameter: x) (OperationKind.Argument) (Syntax: 'var x1') diff --git a/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSemanticsTests.cs b/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSemanticsTests.cs index f4389ed4bce..b41feed62d6 100644 --- a/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSemanticsTests.cs +++ b/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSemanticsTests.cs @@ -1385,9 +1385,9 @@ public static void Main() ISimpleAssignmentExpression (OperationKind.SimpleAssignmentExpression, Type: ) (Syntax: 'Conditional ... upplierID }') Left: IPropertyReferenceExpression: Conditional>.Conditional { get; } (Static) (OperationKind.PropertyReferenceExpression, Type: ) (Syntax: 'Conditional') Instance Receiver: null - Right: IConditionalChoiceExpression (OperationKind.ConditionalChoiceExpression, Type: ) (Syntax: 'false ? new ... upplierID }') + Right: IConditionalExpression (OperationKind.ConditionalExpression, Type: ) (Syntax: 'false ? new ... upplierID }') Condition: ILiteralExpression (OperationKind.LiteralExpression, Type: System.Boolean, Constant: False) (Syntax: 'false') - IfTrue: IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpression, Type: ) (Syntax: 'new { p.Pro ... upplierID }') + WhenTrue: IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpression, Type: ) (Syntax: 'new { p.Pro ... upplierID }') Initializers(3): IFieldReferenceExpression: System.Int32 Product.ProductID (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: 'p.ProductID') Instance Receiver: IParameterReferenceExpression: p (OperationKind.ParameterReferenceExpression, Type: Product) (Syntax: 'p') @@ -1395,7 +1395,7 @@ public static void Main() Instance Receiver: IParameterReferenceExpression: p (OperationKind.ParameterReferenceExpression, Type: Product) (Syntax: 'p') IFieldReferenceExpression: System.Int32 Product.SupplierID (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: 'p.SupplierID') Instance Receiver: IParameterReferenceExpression: p (OperationKind.ParameterReferenceExpression, Type: Product) (Syntax: 'p') - IfFalse: IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpression, Type: ) (Syntax: 'new { p.Pro ... upplierID }') + WhenFalse: IAnonymousObjectCreationExpression (OperationKind.AnonymousObjectCreationExpression, Type: ) (Syntax: 'new { p.Pro ... upplierID }') Initializers(3): IFieldReferenceExpression: System.Int32 Product.ProductID (OperationKind.FieldReferenceExpression, Type: System.Int32) (Syntax: 'p.ProductID') Instance Receiver: IParameterReferenceExpression: p (OperationKind.ParameterReferenceExpression, Type: Product) (Syntax: 'p') diff --git a/src/Compilers/Core/Portable/Generated/Operations.xml.Generated.cs b/src/Compilers/Core/Portable/Generated/Operations.xml.Generated.cs index ac85a320cc7..0248ea47998 100644 --- a/src/Compilers/Core/Portable/Generated/Operations.xml.Generated.cs +++ b/src/Compilers/Core/Portable/Generated/Operations.xml.Generated.cs @@ -1121,23 +1121,23 @@ public override void Accept(OperationVisitor visitor) /// /// Represents a C# ?: or VB If expression. /// - internal abstract partial class BaseConditionalChoiceExpression : Operation, IConditionalChoiceExpression + internal abstract partial class BaseConditionalExpression : Operation, IConditionalExpression { - protected BaseConditionalChoiceExpression(SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, Optional constantValue, bool isImplicit) : - base(OperationKind.ConditionalChoiceExpression, semanticModel, syntax, type, constantValue, isImplicit) + protected BaseConditionalExpression(SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, Optional constantValue, bool isImplicit) : + base(OperationKind.ConditionalExpression, semanticModel, syntax, type, constantValue, isImplicit) { } protected abstract IOperation ConditionImpl { get; } - protected abstract IOperation IfTrueValueImpl { get; } - protected abstract IOperation IfFalseValueImpl { get; } + protected abstract IOperation WhenTrueImpl { get; } + protected abstract IOperation WhenFalseImpl { get; } public override IEnumerable Children { get { yield return Condition; - yield return IfTrueValue; - yield return IfFalseValue; + yield return WhenTrue; + yield return WhenFalse; } } /// @@ -1147,60 +1147,60 @@ public override IEnumerable Children /// /// Value evaluated if the Condition is true. /// - public IOperation IfTrueValue => Operation.SetParentOperation(IfTrueValueImpl, this); + public IOperation WhenTrue => Operation.SetParentOperation(WhenTrueImpl, this); /// /// Value evaluated if the Condition is false. /// - public IOperation IfFalseValue => Operation.SetParentOperation(IfFalseValueImpl, this); + public IOperation WhenFalse => Operation.SetParentOperation(WhenFalseImpl, this); public override void Accept(OperationVisitor visitor) { - visitor.VisitConditionalChoiceExpression(this); + visitor.VisitConditionalExpression(this); } public override TResult Accept(OperationVisitor visitor, TArgument argument) { - return visitor.VisitConditionalChoiceExpression(this, argument); + return visitor.VisitConditionalExpression(this, argument); } } /// /// Represents a C# ?: or VB If expression. /// - internal sealed partial class ConditionalChoiceExpression : BaseConditionalChoiceExpression, IConditionalChoiceExpression + internal sealed partial class ConditionalExpression : BaseConditionalExpression, IConditionalExpression { - public ConditionalChoiceExpression(IOperation condition, IOperation ifTrueValue, IOperation ifFalseValue, SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, Optional constantValue, bool isImplicit) : + public ConditionalExpression(IOperation condition, IOperation whenTrue, IOperation whenFalse, SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, Optional constantValue, bool isImplicit) : base(semanticModel, syntax, type, constantValue, isImplicit) { ConditionImpl = condition; - IfTrueValueImpl = ifTrueValue; - IfFalseValueImpl = ifFalseValue; + WhenTrueImpl = whenTrue; + WhenFalseImpl = whenFalse; } protected override IOperation ConditionImpl { get; } - protected override IOperation IfTrueValueImpl { get; } - protected override IOperation IfFalseValueImpl { get; } + protected override IOperation WhenTrueImpl { get; } + protected override IOperation WhenFalseImpl { get; } } /// /// Represents a C# ?: or VB If expression. /// - internal sealed partial class LazyConditionalChoiceExpression : BaseConditionalChoiceExpression, IConditionalChoiceExpression + internal sealed partial class LazyConditionalExpression : BaseConditionalExpression, IConditionalExpression { private readonly Lazy _lazyCondition; - private readonly Lazy _lazyIfTrueValue; - private readonly Lazy _lazyIfFalseValue; + private readonly Lazy _lazyWhenTrue; + private readonly Lazy _lazyWhenFalse; - public LazyConditionalChoiceExpression(Lazy condition, Lazy ifTrueValue, Lazy ifFalseValue, SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, Optional constantValue, bool isImplicit) : base(semanticModel, syntax, type, constantValue, isImplicit) + public LazyConditionalExpression(Lazy condition, Lazy whenTrue, Lazy whenFalse, SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, Optional constantValue, bool isImplicit) : base(semanticModel, syntax, type, constantValue, isImplicit) { _lazyCondition = condition ?? throw new System.ArgumentNullException(nameof(condition)); - _lazyIfTrueValue = ifTrueValue ?? throw new System.ArgumentNullException(nameof(ifTrueValue)); - _lazyIfFalseValue = ifFalseValue ?? throw new System.ArgumentNullException(nameof(ifFalseValue)); + _lazyWhenTrue = whenTrue ?? throw new System.ArgumentNullException(nameof(whenTrue)); + _lazyWhenFalse = whenFalse ?? throw new System.ArgumentNullException(nameof(whenFalse)); } protected override IOperation ConditionImpl => _lazyCondition.Value; - protected override IOperation IfTrueValueImpl => _lazyIfTrueValue.Value; + protected override IOperation WhenTrueImpl => _lazyWhenTrue.Value; - protected override IOperation IfFalseValueImpl => _lazyIfFalseValue.Value; + protected override IOperation WhenFalseImpl => _lazyWhenFalse.Value; } /// diff --git a/src/Compilers/Core/Portable/Operations/IConditionalChoiceExpression.cs b/src/Compilers/Core/Portable/Operations/IConditionalExpression.cs similarity index 85% rename from src/Compilers/Core/Portable/Operations/IConditionalChoiceExpression.cs rename to src/Compilers/Core/Portable/Operations/IConditionalExpression.cs index da8ac960833..473bc070e65 100644 --- a/src/Compilers/Core/Portable/Operations/IConditionalChoiceExpression.cs +++ b/src/Compilers/Core/Portable/Operations/IConditionalExpression.cs @@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Semantics /// This interface is reserved for implementation by its associated APIs. We reserve the right to /// change it in the future. /// - public interface IConditionalChoiceExpression : IOperation + public interface IConditionalExpression : IOperation { /// /// Condition to be tested. @@ -20,11 +20,11 @@ public interface IConditionalChoiceExpression : IOperation /// /// Value evaluated if the Condition is true. /// - IOperation IfTrueValue { get; } + IOperation WhenTrue { get; } /// /// Value evaluated if the Condition is false. /// - IOperation IfFalseValue { get; } + IOperation WhenFalse { get; } } } diff --git a/src/Compilers/Core/Portable/Operations/OperationCloner.cs b/src/Compilers/Core/Portable/Operations/OperationCloner.cs index 2356658bc9b..92c3d6ebd2b 100644 --- a/src/Compilers/Core/Portable/Operations/OperationCloner.cs +++ b/src/Compilers/Core/Portable/Operations/OperationCloner.cs @@ -269,9 +269,9 @@ public override IOperation VisitBinaryOperatorExpression(IBinaryOperatorExpressi return new BinaryOperatorExpression(operation.BinaryOperationKind, Visit(operation.LeftOperand), Visit(operation.RightOperand), operation.IsLifted, operation.UsesOperatorMethod, operation.OperatorMethod, ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit); } - public override IOperation VisitConditionalChoiceExpression(IConditionalChoiceExpression operation, object argument) + public override IOperation VisitConditionalExpression(IConditionalExpression operation, object argument) { - return new ConditionalChoiceExpression(Visit(operation.Condition), Visit(operation.IfTrueValue), Visit(operation.IfFalseValue), ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit); + return new ConditionalExpression(Visit(operation.Condition), Visit(operation.WhenTrue), Visit(operation.WhenFalse), ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit); } public override IOperation VisitCoalesceExpression(ICoalesceExpression operation, object argument) diff --git a/src/Compilers/Core/Portable/Operations/OperationFactory.cs b/src/Compilers/Core/Portable/Operations/OperationFactory.cs index 9be28f1fe03..d0fe67b3497 100644 --- a/src/Compilers/Core/Portable/Operations/OperationFactory.cs +++ b/src/Compilers/Core/Portable/Operations/OperationFactory.cs @@ -24,9 +24,9 @@ public static VariableDeclaration CreateVariableDeclaration(ImmutableArrayIndicates an . BinaryOperatorExpression = 0x10e, - /// Indicates an . - ConditionalChoiceExpression = 0x10f, + /// Indicates an . + ConditionalExpression = 0x10f, /// Indicates an . CoalesceExpression = 0x110, /// Indicates an . diff --git a/src/Compilers/Core/Portable/Operations/OperationVisitor.cs b/src/Compilers/Core/Portable/Operations/OperationVisitor.cs index 65fc9d9c192..4c2acd5764a 100644 --- a/src/Compilers/Core/Portable/Operations/OperationVisitor.cs +++ b/src/Compilers/Core/Portable/Operations/OperationVisitor.cs @@ -265,7 +265,7 @@ public virtual void VisitConversionExpression(IConversionExpression operation) DefaultVisit(operation); } - public virtual void VisitConditionalChoiceExpression(IConditionalChoiceExpression operation) + public virtual void VisitConditionalExpression(IConditionalExpression operation) { DefaultVisit(operation); } @@ -735,7 +735,7 @@ public virtual TResult VisitConversionExpression(IConversionExpression operation return DefaultVisit(operation, argument); } - public virtual TResult VisitConditionalChoiceExpression(IConditionalChoiceExpression operation, TArgument argument) + public virtual TResult VisitConditionalExpression(IConditionalExpression operation, TArgument argument) { return DefaultVisit(operation, argument); } diff --git a/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt b/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt index f20a10b7d3c..88d84997c1c 100644 --- a/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt +++ b/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt @@ -63,7 +63,7 @@ Microsoft.CodeAnalysis.OperationKind.CollectionElementInitializerExpression = 29 Microsoft.CodeAnalysis.OperationKind.CompoundAssignmentExpression = 281 -> Microsoft.CodeAnalysis.OperationKind Microsoft.CodeAnalysis.OperationKind.ConditionalAccessExpression = 284 -> Microsoft.CodeAnalysis.OperationKind Microsoft.CodeAnalysis.OperationKind.ConditionalAccessInstanceExpression = 285 -> Microsoft.CodeAnalysis.OperationKind -Microsoft.CodeAnalysis.OperationKind.ConditionalChoiceExpression = 271 -> Microsoft.CodeAnalysis.OperationKind +Microsoft.CodeAnalysis.OperationKind.ConditionalExpression = 271 -> Microsoft.CodeAnalysis.OperationKind Microsoft.CodeAnalysis.OperationKind.ConstantPattern = 1039 -> Microsoft.CodeAnalysis.OperationKind Microsoft.CodeAnalysis.OperationKind.ConversionExpression = 258 -> Microsoft.CodeAnalysis.OperationKind Microsoft.CodeAnalysis.OperationKind.DeclarationPattern = 1040 -> Microsoft.CodeAnalysis.OperationKind @@ -392,10 +392,10 @@ Microsoft.CodeAnalysis.Semantics.IConditionalAccessExpression Microsoft.CodeAnalysis.Semantics.IConditionalAccessExpression.ConditionalInstance.get -> Microsoft.CodeAnalysis.IOperation Microsoft.CodeAnalysis.Semantics.IConditionalAccessExpression.ConditionalValue.get -> Microsoft.CodeAnalysis.IOperation Microsoft.CodeAnalysis.Semantics.IConditionalAccessInstanceExpression -Microsoft.CodeAnalysis.Semantics.IConditionalChoiceExpression -Microsoft.CodeAnalysis.Semantics.IConditionalChoiceExpression.Condition.get -> Microsoft.CodeAnalysis.IOperation -Microsoft.CodeAnalysis.Semantics.IConditionalChoiceExpression.IfFalseValue.get -> Microsoft.CodeAnalysis.IOperation -Microsoft.CodeAnalysis.Semantics.IConditionalChoiceExpression.IfTrueValue.get -> Microsoft.CodeAnalysis.IOperation +Microsoft.CodeAnalysis.Semantics.IConditionalExpression +Microsoft.CodeAnalysis.Semantics.IConditionalExpression.Condition.get -> Microsoft.CodeAnalysis.IOperation +Microsoft.CodeAnalysis.Semantics.IConditionalExpression.WhenFalse.get -> Microsoft.CodeAnalysis.IOperation +Microsoft.CodeAnalysis.Semantics.IConditionalExpression.WhenTrue.get -> Microsoft.CodeAnalysis.IOperation Microsoft.CodeAnalysis.Semantics.IConstantPattern Microsoft.CodeAnalysis.Semantics.IConstantPattern.Value.get -> Microsoft.CodeAnalysis.IOperation Microsoft.CodeAnalysis.Semantics.IConversionExpression @@ -790,7 +790,7 @@ virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitCollectionElement virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitCompoundAssignmentExpression(Microsoft.CodeAnalysis.Semantics.ICompoundAssignmentExpression operation) -> void virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalAccessExpression(Microsoft.CodeAnalysis.Semantics.IConditionalAccessExpression operation) -> void virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalAccessInstanceExpression(Microsoft.CodeAnalysis.Semantics.IConditionalAccessInstanceExpression operation) -> void -virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalChoiceExpression(Microsoft.CodeAnalysis.Semantics.IConditionalChoiceExpression operation) -> void +virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalExpression(Microsoft.CodeAnalysis.Semantics.IConditionalExpression operation) -> void virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConstantPattern(Microsoft.CodeAnalysis.Semantics.IConstantPattern operation) -> void virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConversionExpression(Microsoft.CodeAnalysis.Semantics.IConversionExpression operation) -> void virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitDeclarationPattern(Microsoft.CodeAnalysis.Semantics.IDeclarationPattern operation) -> void @@ -880,7 +880,7 @@ virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.Vi virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitCompoundAssignmentExpression(Microsoft.CodeAnalysis.Semantics.ICompoundAssignmentExpression operation, TArgument argument) -> TResult virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalAccessExpression(Microsoft.CodeAnalysis.Semantics.IConditionalAccessExpression operation, TArgument argument) -> TResult virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalAccessInstanceExpression(Microsoft.CodeAnalysis.Semantics.IConditionalAccessInstanceExpression operation, TArgument argument) -> TResult -virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalChoiceExpression(Microsoft.CodeAnalysis.Semantics.IConditionalChoiceExpression operation, TArgument argument) -> TResult +virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConditionalExpression(Microsoft.CodeAnalysis.Semantics.IConditionalExpression operation, TArgument argument) -> TResult virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConstantPattern(Microsoft.CodeAnalysis.Semantics.IConstantPattern operation, TArgument argument) -> TResult virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitConversionExpression(Microsoft.CodeAnalysis.Semantics.IConversionExpression operation, TArgument argument) -> TResult virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor.VisitDeclarationPattern(Microsoft.CodeAnalysis.Semantics.IDeclarationPattern operation, TArgument argument) -> TResult diff --git a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb index 39efdbd4746..f5e3aca5aaf 100644 --- a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb +++ b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb @@ -545,7 +545,7 @@ Namespace Microsoft.CodeAnalysis.Semantics Return New LazyVisualBasicConversionExpression(operand, conversion, isExplicit, isTryCast, isChecked, _semanticModel, syntax, type, constantValue, isImplicit) End Function - Private Function CreateBoundTernaryConditionalExpressionOperation(boundTernaryConditionalExpression As BoundTernaryConditionalExpression) As IConditionalChoiceExpression + Private Function CreateBoundTernaryConditionalExpressionOperation(boundTernaryConditionalExpression As BoundTernaryConditionalExpression) As IConditionalExpression Dim condition As Lazy(Of IOperation) = New Lazy(Of IOperation)(Function() Create(boundTernaryConditionalExpression.Condition)) Dim ifTrueValue As Lazy(Of IOperation) = New Lazy(Of IOperation)(Function() Create(boundTernaryConditionalExpression.WhenTrue)) Dim ifFalseValue As Lazy(Of IOperation) = New Lazy(Of IOperation)(Function() Create(boundTernaryConditionalExpression.WhenFalse)) @@ -553,7 +553,7 @@ Namespace Microsoft.CodeAnalysis.Semantics Dim type As ITypeSymbol = boundTernaryConditionalExpression.Type Dim constantValue As [Optional](Of Object) = ConvertToOptional(boundTernaryConditionalExpression.ConstantValueOpt) Dim isImplicit As Boolean = boundTernaryConditionalExpression.WasCompilerGenerated - Return New LazyConditionalChoiceExpression(condition, ifTrueValue, ifFalseValue, _semanticModel, syntax, type, constantValue, isImplicit) + Return New LazyConditionalExpression(condition, ifTrueValue, ifFalseValue, _semanticModel, syntax, type, constantValue, isImplicit) End Function Private Function CreateBoundTypeOfOperation(boundTypeOf As BoundTypeOf) As IIsTypeExpression diff --git a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory_Methods.vb b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory_Methods.vb index 86fd3987709..3f21145238c 100644 --- a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory_Methods.vb +++ b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory_Methods.vb @@ -403,7 +403,7 @@ Namespace Microsoft.CodeAnalysis.Semantics Dim negativeStepRelationalCode As BinaryOperationKind = Helper.DeriveBinaryOperationKind(BinaryOperatorKind.GreaterThanOrEqual, controlVariable) Dim negativeStepCondition As IOperation = OperationFactory.CreateBinaryOperatorExpression(negativeStepRelationalCode, _semanticModel.CloneOperation(Create(controlVariable)), _semanticModel.CloneOperation(limitValueReference), booleanType, _semanticModel, limitValueReference.Syntax, isLifted, limitValueReference.IsImplicit) - Return OperationFactory.CreateConditionalChoiceExpression(stepCondition, positiveStepCondition, negativeStepCondition, booleanType, _semanticModel, limitValueReference.Syntax, limitValueReference.IsImplicit) + Return OperationFactory.CreateConditionalExpression(stepCondition, positiveStepCondition, negativeStepCondition, booleanType, _semanticModel, limitValueReference.Syntax, limitValueReference.IsImplicit) End If End If End Function diff --git a/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.vb b/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.vb index c0ed64c7ca2..4e0177ba6fd 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.vb +++ b/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests_IForLoopStatement.vb @@ -87,14 +87,14 @@ End Class Dim expectedOperationTree = .Value Dim expectedOperationTree = .Value Dim expectedOperationTree =