diff --git a/Src/Compilers/Test/Utilities/VisualBasic/ParserTestUtilities.vb b/Src/Compilers/Test/Utilities/VisualBasic/ParserTestUtilities.vb index 9cf97cc756f468b64b6472006a1e3f5738a6e036..810ec46418ae793ff086a2ba02a351bd92b3ba70 100644 --- a/Src/Compilers/Test/Utilities/VisualBasic/ParserTestUtilities.vb +++ b/Src/Compilers/Test/Utilities/VisualBasic/ParserTestUtilities.vb @@ -943,9 +943,9 @@ Public Module VerificationHelpers MyBase.VisitPartitionWhileClause(node) End Sub - Public Overrides Sub VisitCaseRangeClause(node As CaseRangeClauseSyntax) + Public Overrides Sub VisitRangeCaseClause(node As RangeCaseClauseSyntax) IncrementTypeCounter(node, node.Kind.ToString) - MyBase.VisitCaseRangeClause(node) + MyBase.VisitRangeCaseClause(node) End Sub Public Overrides Sub VisitRangeArgument(node As RangeArgumentSyntax) diff --git a/Src/Compilers/VisualBasic/Source/Analysis/FlowAnalysis/AbstractFlowPass.vb b/Src/Compilers/VisualBasic/Source/Analysis/FlowAnalysis/AbstractFlowPass.vb index bf416d8e9f2a500e9aea5aeae358fc04c1b9fd18..9f55b0d4ffbc188ffc94facfc0b91c741ecd2ca7 100644 --- a/Src/Compilers/VisualBasic/Source/Analysis/FlowAnalysis/AbstractFlowPass.vb +++ b/Src/Compilers/VisualBasic/Source/Analysis/FlowAnalysis/AbstractFlowPass.vb @@ -1749,12 +1749,12 @@ lUnsplitAndFinish: Else For Each clause In node.CaseClauses Select Case clause.Kind - Case BoundKind.CaseRelationalClause - VisitCaseRelationalClause(DirectCast(clause, BoundCaseRelationalClause)) - Case BoundKind.CaseValueClause - VisitCaseValueClause(DirectCast(clause, BoundCaseValueClause)) - Case BoundKind.CaseRangeClause - VisitCaseRangeClause(DirectCast(clause, BoundCaseRangeClause)) + Case BoundKind.RelationalCaseClause + VisitRelationalCaseClause(DirectCast(clause, BoundRelationalCaseClause)) + Case BoundKind.SimpleCaseClause + VisitSimpleCaseClause(DirectCast(clause, BoundSimpleCaseClause)) + Case BoundKind.RangeCaseClause + VisitRangeCaseClause(DirectCast(clause, BoundRangeCaseClause)) Case Else Throw ExceptionUtilities.UnexpectedValue(clause.Kind) End Select @@ -1764,7 +1764,7 @@ lUnsplitAndFinish: Return Nothing End Function - Public Overrides Function VisitCaseRelationalClause(node As BoundCaseRelationalClause) As BoundNode + Public Overrides Function VisitRelationalCaseClause(node As BoundRelationalCaseClause) As BoundNode ' Exactly one of the operand or condition must be non-null Debug.Assert(node.OperandOpt IsNot Nothing Xor node.ConditionOpt IsNot Nothing) @@ -1777,7 +1777,7 @@ lUnsplitAndFinish: Return Nothing End Function - Public Overrides Function VisitCaseValueClause(node As BoundCaseValueClause) As BoundNode + Public Overrides Function VisitSimpleCaseClause(node As BoundSimpleCaseClause) As BoundNode ' Exactly one of the value or condition must be non-null Debug.Assert(node.ValueOpt IsNot Nothing Xor node.ConditionOpt IsNot Nothing) @@ -1790,7 +1790,7 @@ lUnsplitAndFinish: Return Nothing End Function - Public Overrides Function VisitCaseRangeClause(node As BoundCaseRangeClause) As BoundNode + Public Overrides Function VisitRangeCaseClause(node As BoundRangeCaseClause) As BoundNode ' Exactly one of the LowerBoundOpt or LowerBoundConditionOpt must be non-null Debug.Assert(node.LowerBoundOpt IsNot Nothing Xor node.LowerBoundConditionOpt IsNot Nothing) diff --git a/Src/Compilers/VisualBasic/Source/Binding/Binder_SelectCase.vb b/Src/Compilers/VisualBasic/Source/Binding/Binder_SelectCase.vb index f592ce5bcba3e8787325284cfc82c927b79987a3..9cb2cbc90d1b2761e814eba7408b884676633234 100644 --- a/Src/Compilers/VisualBasic/Source/Binding/Binder_SelectCase.vb +++ b/Src/Compilers/VisualBasic/Source/Binding/Binder_SelectCase.vb @@ -166,21 +166,21 @@ Namespace Microsoft.CodeAnalysis.VisualBasic SyntaxKind.CaseGreaterThanClause, SyntaxKind.CaseGreaterThanOrEqualClause, SyntaxKind.CaseLessThanClause, SyntaxKind.CaseLessThanOrEqualClause - Return BindCaseRelationalClause(DirectCast(node, CaseRelationalClauseSyntax), selectExpression, convertCaseElements, diagnostics) + Return BindRelationalCaseClause(DirectCast(node, RelationalCaseClauseSyntax), selectExpression, convertCaseElements, diagnostics) - Case SyntaxKind.CaseValueClause - Return BindCaseValueClause(DirectCast(node, CaseValueClauseSyntax), selectExpression, convertCaseElements, diagnostics) + Case SyntaxKind.SimpleCaseClause + Return BindSimpleCaseClause(DirectCast(node, SimpleCaseClauseSyntax), selectExpression, convertCaseElements, diagnostics) - Case SyntaxKind.CaseRangeClause - Return BindCaseRangeClause(DirectCast(node, CaseRangeClauseSyntax), selectExpression, convertCaseElements, diagnostics) + Case SyntaxKind.RangeCaseClause + Return BindRangeCaseClause(DirectCast(node, RangeCaseClauseSyntax), selectExpression, convertCaseElements, diagnostics) Case Else Throw ExceptionUtilities.UnexpectedValue(node.Kind) End Select End Function - Private Function BindCaseRelationalClause( - node As CaseRelationalClauseSyntax, + Private Function BindRelationalCaseClause( + node As RelationalCaseClauseSyntax, selectExpression As BoundExpression, convertCaseElements As Boolean, diagnostics As DiagnosticBag @@ -223,11 +223,11 @@ Namespace Microsoft.CodeAnalysis.VisualBasic conditionOpt:=conditionOpt, diagnostics:=diagnostics) - Return New BoundCaseRelationalClause(node, operatorKind, operandE1, conditionOpt) + Return New BoundRelationalCaseClause(node, operatorKind, operandE1, conditionOpt) End Function - Private Function BindCaseValueClause( - node As CaseValueClauseSyntax, + Private Function BindSimpleCaseClause( + node As SimpleCaseClauseSyntax, selectExpression As BoundExpression, convertCaseElements As Boolean, diagnostics As DiagnosticBag @@ -255,11 +255,11 @@ Namespace Microsoft.CodeAnalysis.VisualBasic conditionOpt:=conditionOpt, diagnostics:=diagnostics) - Return New BoundCaseValueClause(node, value, conditionOpt) + Return New BoundSimpleCaseClause(node, value, conditionOpt) End Function - Private Function BindCaseRangeClause( - node As CaseRangeClauseSyntax, + Private Function BindRangeCaseClause( + node As RangeCaseClauseSyntax, selectExpression As BoundExpression, convertCaseElements As Boolean, diagnostics As DiagnosticBag @@ -299,7 +299,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic conditionOpt:=upperBoundConditionOpt, diagnostics:=diagnostics) - Return New BoundCaseRangeClause(node, lowerBound, upperBound, lowerBoundConditionOpt, upperBoundConditionOpt) + Return New BoundRangeCaseClause(node, lowerBound, upperBound, lowerBoundConditionOpt, upperBoundConditionOpt) End Function Private Function BindCaseClauseExpression( @@ -441,22 +441,22 @@ Namespace Microsoft.CodeAnalysis.VisualBasic Private Function ComputeCaseClauseCondition(caseClause As BoundCaseClause, ByRef conditionOpt As BoundExpression, selectExpression As BoundExpression, diagnostics As DiagnosticBag) As BoundCaseClause Select Case caseClause.Kind - Case BoundKind.CaseRelationalClause - Return ComputeCaseRelationalClauseCondition(DirectCast(caseClause, BoundCaseRelationalClause), conditionOpt, selectExpression, diagnostics) + Case BoundKind.RelationalCaseClause + Return ComputeRelationalCaseClauseCondition(DirectCast(caseClause, BoundRelationalCaseClause), conditionOpt, selectExpression, diagnostics) - Case BoundKind.CaseValueClause - Return ComputeCaseValueClauseCondition(DirectCast(caseClause, BoundCaseValueClause), conditionOpt, selectExpression, diagnostics) + Case BoundKind.SimpleCaseClause + Return ComputeSimpleCaseClauseCondition(DirectCast(caseClause, BoundSimpleCaseClause), conditionOpt, selectExpression, diagnostics) - Case BoundKind.CaseRangeClause - Return ComputeCaseRangeClauseCondition(DirectCast(caseClause, BoundCaseRangeClause), conditionOpt, selectExpression, diagnostics) + Case BoundKind.RangeCaseClause + Return ComputeRangeCaseClauseCondition(DirectCast(caseClause, BoundRangeCaseClause), conditionOpt, selectExpression, diagnostics) Case Else Throw ExceptionUtilities.UnexpectedValue(caseClause.Kind) End Select End Function - Private Function ComputeCaseRelationalClauseCondition(boundClause As BoundCaseRelationalClause, ByRef conditionOpt As BoundExpression, selectExpression As BoundExpression, diagnostics As DiagnosticBag) As BoundCaseClause - Dim syntax = DirectCast(boundClause.Syntax, CaseRelationalClauseSyntax) + Private Function ComputeRelationalCaseClauseCondition(boundClause As BoundRelationalCaseClause, ByRef conditionOpt As BoundExpression, selectExpression As BoundExpression, diagnostics As DiagnosticBag) As BoundCaseClause + Dim syntax = DirectCast(boundClause.Syntax, RelationalCaseClauseSyntax) ' Exactly one of the operand or condition must be non-null Debug.Assert(boundClause.ConditionOpt IsNot Nothing Xor boundClause.OperandOpt IsNot Nothing) @@ -473,7 +473,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic Return boundClause.Update(boundClause.OperatorKind, operandOpt:=Nothing, conditionOpt:=conditionOpt) End Function - Private Function ComputeCaseValueClauseCondition(boundClause As BoundCaseValueClause, ByRef conditionOpt As BoundExpression, selectExpression As BoundExpression, diagnostics As DiagnosticBag) As BoundCaseClause + Private Function ComputeSimpleCaseClauseCondition(boundClause As BoundSimpleCaseClause, ByRef conditionOpt As BoundExpression, selectExpression As BoundExpression, diagnostics As DiagnosticBag) As BoundCaseClause ' Exactly one of the value or condition must be non-null Debug.Assert(boundClause.ConditionOpt IsNot Nothing Xor boundClause.ValueOpt IsNot Nothing) @@ -489,7 +489,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic Return boundClause.Update(valueOpt:=Nothing, conditionOpt:=conditionOpt) End Function - Private Function ComputeCaseRangeClauseCondition(boundClause As BoundCaseRangeClause, ByRef conditionOpt As BoundExpression, selectExpression As BoundExpression, diagnostics As DiagnosticBag) As BoundCaseClause + Private Function ComputeRangeCaseClauseCondition(boundClause As BoundRangeCaseClause, ByRef conditionOpt As BoundExpression, selectExpression As BoundExpression, diagnostics As DiagnosticBag) As BoundCaseClause Dim syntax = boundClause.Syntax ' Exactly one of the LowerBoundOpt or LowerBoundConditionOpt must be non-null @@ -551,7 +551,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ' ranges must have lower bound first ' We also generate warnings for Invalid range clauses in this function. - ' Ideally we would like to generate them in BindCaseRangeClause. + ' Ideally we would like to generate them in BindRangeCaseClause. ' However, Dev10 doesn't do this check individually for each CaseClause. ' It is performed only if bounds for all clauses in the Select are integer constants and ' all clauses are either range clauses or equality clause. @@ -571,8 +571,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic For Each caseBlock In caseBlocks For Each caseClause In caseBlock.CaseStatement.CaseClauses Select Case caseClause.Kind - Case BoundKind.CaseRelationalClause - Dim relationalClause = DirectCast(caseClause, BoundCaseRelationalClause) + Case BoundKind.RelationalCaseClause + Dim relationalClause = DirectCast(caseClause, BoundRelationalCaseClause) ' Exactly one of the operand or condition must be non-null Debug.Assert(relationalClause.OperandOpt IsNot Nothing Xor relationalClause.ConditionOpt IsNot Nothing) @@ -587,7 +587,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic Return False End If - Case BoundKind.CaseRangeClause + Case BoundKind.RangeCaseClause ' TODO: RecommendSwitchTable for Range clause. ' TODO: If we decide to implement it we will need to ' TODO: add heuristic to determine when the range is @@ -595,17 +595,17 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ' TODO: We will also need to add logic in the emitter ' TODO: to iterate through ConstantValues in a range. - ' For now we use IF lists if we encounter BoundCaseRangeClause - Dim caseRangeClause = DirectCast(caseClause, BoundCaseRangeClause) + ' For now we use IF lists if we encounter BoundRangeCaseClause + Dim rangeCaseClause = DirectCast(caseClause, BoundRangeCaseClause) ' Exactly one of the LowerBoundOpt or LowerBoundConditionOpt must be non-null - Debug.Assert(caseRangeClause.LowerBoundOpt IsNot Nothing Xor caseRangeClause.LowerBoundConditionOpt IsNot Nothing) + Debug.Assert(rangeCaseClause.LowerBoundOpt IsNot Nothing Xor rangeCaseClause.LowerBoundConditionOpt IsNot Nothing) ' Exactly one of the UpperBoundOpt or UpperBoundConditionOpt must be non-null - Debug.Assert(caseRangeClause.UpperBoundOpt IsNot Nothing Xor caseRangeClause.UpperBoundConditionOpt IsNot Nothing) + Debug.Assert(rangeCaseClause.UpperBoundOpt IsNot Nothing Xor rangeCaseClause.UpperBoundConditionOpt IsNot Nothing) - Dim lowerBound = caseRangeClause.LowerBoundOpt - Dim upperBound = caseRangeClause.UpperBoundOpt + Dim lowerBound = rangeCaseClause.LowerBoundOpt + Dim upperBound = rangeCaseClause.UpperBoundOpt If lowerBound Is Nothing OrElse upperBound Is Nothing OrElse @@ -620,12 +620,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic recommendSwitch = False Case Else - Dim caseValueClause = DirectCast(caseClause, BoundCaseValueClause) + Dim simpleCaseClause = DirectCast(caseClause, BoundSimpleCaseClause) ' Exactly one of the value or condition must be non-null - Debug.Assert(caseValueClause.ValueOpt IsNot Nothing Xor caseValueClause.ConditionOpt IsNot Nothing) + Debug.Assert(simpleCaseClause.ValueOpt IsNot Nothing Xor simpleCaseClause.ConditionOpt IsNot Nothing) - Dim value = caseValueClause.ValueOpt + Dim value = simpleCaseClause.ValueOpt If value Is Nothing OrElse value.ConstantValueOpt Is Nothing OrElse @@ -648,21 +648,21 @@ Namespace Microsoft.CodeAnalysis.VisualBasic For Each caseBlock In caseBlocks For Each caseClause In caseBlock.CaseStatement.CaseClauses Select Case caseClause.Kind - Case BoundKind.CaseRangeClause - Dim caseRangeClause = DirectCast(caseClause, BoundCaseRangeClause) + Case BoundKind.RangeCaseClause + Dim rangeCaseClause = DirectCast(caseClause, BoundRangeCaseClause) - Dim lowerBound = caseRangeClause.LowerBoundOpt - Dim upperBound = caseRangeClause.UpperBoundOpt + Dim lowerBound = rangeCaseClause.LowerBoundOpt + Dim upperBound = rangeCaseClause.UpperBoundOpt Debug.Assert(lowerBound IsNot Nothing) Debug.Assert(lowerBound.ConstantValueOpt IsNot Nothing) Debug.Assert(upperBound IsNot Nothing) Debug.Assert(upperBound.ConstantValueOpt IsNot Nothing) - Debug.Assert(caseRangeClause.LowerBoundConditionOpt Is Nothing) - Debug.Assert(caseRangeClause.UpperBoundConditionOpt Is Nothing) + Debug.Assert(rangeCaseClause.LowerBoundConditionOpt Is Nothing) + Debug.Assert(rangeCaseClause.UpperBoundConditionOpt Is Nothing) If IsInvalidSelectCaseRange(lowerBound.ConstantValueOpt, upperBound.ConstantValueOpt) Then - ReportDiagnostic(diagnostics, caseRangeClause.Syntax, ERRID.WRN_SelectCaseInvalidRange) + ReportDiagnostic(diagnostics, rangeCaseClause.Syntax, ERRID.WRN_SelectCaseInvalidRange) Return True End If End Select diff --git a/Src/Compilers/VisualBasic/Source/BoundTree/BoundNodes.xml b/Src/Compilers/VisualBasic/Source/BoundTree/BoundNodes.xml index 1ab09744d748860d9d22857a26a979a4df8d8eb9..e8bc65d67700a83472227ea8181bf06ce3c7c236 100644 --- a/Src/Compilers/VisualBasic/Source/BoundTree/BoundNodes.xml +++ b/Src/Compilers/VisualBasic/Source/BoundTree/BoundNodes.xml @@ -1006,19 +1006,19 @@ - + - + - + diff --git a/Src/Compilers/VisualBasic/Source/CodeGen/EmitStatement.vb b/Src/Compilers/VisualBasic/Source/CodeGen/EmitStatement.vb index e715d375eae16d2f746695abeebe281faa790a69..a83e4c1662f1947195b4f9e575443554508cc25d 100644 --- a/Src/Compilers/VisualBasic/Source/CodeGen/EmitStatement.vb +++ b/Src/Compilers/VisualBasic/Source/CodeGen/EmitStatement.vb @@ -981,26 +981,26 @@ OtherExpressions: Dim constant As ConstantValue Select Case caseClause.Kind - Case BoundKind.CaseValueClause - Dim caseValueClause = DirectCast(caseClause, BoundCaseValueClause) + Case BoundKind.SimpleCaseClause + Dim simpleCaseClause = DirectCast(caseClause, BoundSimpleCaseClause) - Debug.Assert(caseValueClause.ValueOpt IsNot Nothing) - Debug.Assert(caseValueClause.ConditionOpt Is Nothing) + Debug.Assert(simpleCaseClause.ValueOpt IsNot Nothing) + Debug.Assert(simpleCaseClause.ConditionOpt Is Nothing) - constant = caseValueClause.ValueOpt.ConstantValueOpt + constant = simpleCaseClause.ValueOpt.ConstantValueOpt - Case BoundKind.CaseRelationalClause - Dim caseRelationalClause = DirectCast(caseClause, BoundCaseRelationalClause) + Case BoundKind.RelationalCaseClause + Dim relationalCaseClause = DirectCast(caseClause, BoundRelationalCaseClause) - Debug.Assert(caseRelationalClause.OperatorKind = BinaryOperatorKind.Equals) - Debug.Assert(caseRelationalClause.OperandOpt IsNot Nothing) - Debug.Assert(caseRelationalClause.ConditionOpt Is Nothing) + Debug.Assert(relationalCaseClause.OperatorKind = BinaryOperatorKind.Equals) + Debug.Assert(relationalCaseClause.OperandOpt IsNot Nothing) + Debug.Assert(relationalCaseClause.ConditionOpt Is Nothing) - constant = caseRelationalClause.OperandOpt.ConstantValueOpt + constant = relationalCaseClause.OperandOpt.ConstantValueOpt - Case BoundKind.CaseRangeClause + Case BoundKind.RangeCaseClause ' TODO: For now we use IF lists if we encounter - ' TODO: BoundCaseRangeClause, we should not reach here. + ' TODO: BoundRangeCaseClause, we should not reach here. Throw ExceptionUtilities.UnexpectedValue(caseClause.Kind) Case Else diff --git a/Src/Compilers/VisualBasic/Source/Lowering/LocalRewriter/LocalRewriter_SelectCase.vb b/Src/Compilers/VisualBasic/Source/Lowering/LocalRewriter/LocalRewriter_SelectCase.vb index eacddea90fad8f0f498ae5947e32a02abe35e8ac..48afd04ddbec0e65330cb84fca7b0e5b362ca98a 100644 --- a/Src/Compilers/VisualBasic/Source/Lowering/LocalRewriter/LocalRewriter_SelectCase.vb +++ b/Src/Compilers/VisualBasic/Source/Lowering/LocalRewriter/LocalRewriter_SelectCase.vb @@ -330,22 +330,22 @@ Namespace Microsoft.CodeAnalysis.VisualBasic For Each caseClause In caseBlock.CaseStatement.CaseClauses Dim constant As ConstantValue = Nothing Select Case caseClause.Kind - Case BoundKind.CaseValueClause - Dim caseValueClause = DirectCast(caseClause, BoundCaseValueClause) + Case BoundKind.SimpleCaseClause + Dim simpleCaseClause = DirectCast(caseClause, BoundSimpleCaseClause) - Debug.Assert(caseValueClause.ValueOpt IsNot Nothing) - Debug.Assert(caseValueClause.ConditionOpt Is Nothing) + Debug.Assert(simpleCaseClause.ValueOpt IsNot Nothing) + Debug.Assert(simpleCaseClause.ConditionOpt Is Nothing) - constant = caseValueClause.ValueOpt.ConstantValueOpt + constant = simpleCaseClause.ValueOpt.ConstantValueOpt - Case BoundKind.CaseRelationalClause - Dim caseRelationalClause = DirectCast(caseClause, BoundCaseRelationalClause) + Case BoundKind.RelationalCaseClause + Dim relationalCaseClause = DirectCast(caseClause, BoundRelationalCaseClause) - Debug.Assert(caseRelationalClause.OperatorKind = BinaryOperatorKind.Equals) - Debug.Assert(caseRelationalClause.OperandOpt IsNot Nothing) - Debug.Assert(caseRelationalClause.ConditionOpt Is Nothing) + Debug.Assert(relationalCaseClause.OperatorKind = BinaryOperatorKind.Equals) + Debug.Assert(relationalCaseClause.OperandOpt IsNot Nothing) + Debug.Assert(relationalCaseClause.ConditionOpt Is Nothing) - constant = caseRelationalClause.OperandOpt.ConstantValueOpt + constant = relationalCaseClause.OperandOpt.ConstantValueOpt Case Else Throw ExceptionUtilities.UnexpectedValue(caseClause.Kind) diff --git a/Src/Compilers/VisualBasic/Source/Lowering/SyntheticBoundNodeFactory.vb b/Src/Compilers/VisualBasic/Source/Lowering/SyntheticBoundNodeFactory.vb index d492d9bb825b9095d731c96b60d4cafdbd7edd16..41d1629b54947d5db3923e065e7408ae1b0dba56 100644 --- a/Src/Compilers/VisualBasic/Source/Lowering/SyntheticBoundNodeFactory.vb +++ b/Src/Compilers/VisualBasic/Source/Lowering/SyntheticBoundNodeFactory.vb @@ -655,7 +655,7 @@ nextm: Private Sub CheckSwitchSections(sections As ImmutableArray(Of BoundCaseBlock)) Dim labels = New HashSet(Of Integer)() For Each s In sections - For Each l As BoundCaseValueClause In s.CaseStatement.CaseClauses + For Each l As BoundSimpleCaseClause In s.CaseStatement.CaseClauses Dim v1 = l.ValueOpt.ConstantValueOpt.Int32Value Debug.Assert(Not labels.Contains(v1)) labels.Add(v1) @@ -664,7 +664,7 @@ nextm: End Sub 'Public Function SwitchSection(value As Integer, ParamArray statements As BoundStatement()) As BoundCaseBlock - ' Dim boundCaseClause = New BoundCaseValueClause(_syntax, Literal(value), Nothing) + ' Dim boundCaseClause = New BoundSimpleCaseClause(_syntax, Literal(value), Nothing) ' boundCaseClause.SetWasCompilerGenerated() ' Dim boundCaseStatement = New BoundCaseStatement(_syntax, ImmutableArray(Of BoundCaseClause).CreateFrom(boundCaseClause), Nothing) ' boundCaseStatement.SetWasCompilerGenerated() @@ -676,7 +676,7 @@ nextm: Public Function SwitchSection(values As List(Of Integer), ParamArray statements As BoundStatement()) As BoundCaseBlock Dim builder = ArrayBuilder(Of BoundCaseClause).GetInstance() For Each i In values - Dim boundCaseClause = New BoundCaseValueClause(_syntax, Literal(i), Nothing) + Dim boundCaseClause = New BoundSimpleCaseClause(_syntax, Literal(i), Nothing) boundCaseClause.SetWasCompilerGenerated() builder.Add(boundCaseClause) Next diff --git a/Src/Compilers/VisualBasic/Source/Parser/ParseStatement.vb b/Src/Compilers/VisualBasic/Source/Parser/ParseStatement.vb index 2487c3b41fc0bd1344796fb19f32dc4321daa9cf..e7f1657142a5b91ec6e9d56f25b3407d9999a49b 100644 --- a/Src/Compilers/VisualBasic/Source/Parser/ParseStatement.vb +++ b/Src/Compilers/VisualBasic/Source/Parser/ParseStatement.vb @@ -247,7 +247,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax elseKeyword = DirectCast(CurrentToken, KeywordSyntax) GetNextToken() '// get off ELSE - Dim caseClause = SyntaxFactory.CaseElseClause(elseKeyword) + Dim caseClause = SyntaxFactory.ElseCaseClause(elseKeyword) caseClauses.Add(caseClause) Else @@ -274,7 +274,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax CaseExpr = ResyncAt(CaseExpr) End If - caseClause = SyntaxFactory.CaseRelationalClause(RelationalOperatorKindToCaseKind(relationalOperator.Kind), optionalIsKeyword, relationalOperator, CaseExpr) + caseClause = SyntaxFactory.RelationalCaseClause(RelationalOperatorKindToCaseKind(relationalOperator.Kind), optionalIsKeyword, relationalOperator, CaseExpr) Else ' Since we saw IS, create a relational case. @@ -282,7 +282,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax ' the operators that can follow "Is". Dim relationalOperator = ReportSyntaxError(InternalSyntaxFactory.MissingPunctuation(SyntaxKind.EqualsToken), ERRID.ERR_ExpectedRelational) - caseClause = ResyncAt(InternalSyntaxFactory.CaseRelationalClause(SyntaxKind.CaseEqualsClause, optionalIsKeyword, relationalOperator, InternalSyntaxFactory.MissingExpression)) + caseClause = ResyncAt(InternalSyntaxFactory.RelationalCaseClause(SyntaxKind.CaseEqualsClause, optionalIsKeyword, relationalOperator, InternalSyntaxFactory.MissingExpression)) End If Else @@ -302,10 +302,10 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax upperBound = ResyncAt(upperBound) End If - caseClause = SyntaxFactory.CaseRangeClause(value, toKeyword, upperBound) + caseClause = SyntaxFactory.RangeCaseClause(value, toKeyword, upperBound) Else - caseClause = SyntaxFactory.CaseValueClause(value) + caseClause = SyntaxFactory.SimpleCaseClause(value) End If End If diff --git a/Src/Compilers/VisualBasic/Source/Syntax/Syntax.xml b/Src/Compilers/VisualBasic/Source/Syntax/Syntax.xml index 57ccf264f1d42a4699232553abecc6eaad510145..5c6b8445d136bb8422b8e04f5495c9798884285b 100644 --- a/Src/Compilers/VisualBasic/Source/Syntax/Syntax.xml +++ b/Src/Compilers/VisualBasic/Source/Syntax/Syntax.xml @@ -3872,7 +3872,7 @@ Unify Enum declarations with other block type declarations. A list of clauses associated with this Case. If Kind=CaseElse, then this list has exactly one child, - which is a CaseElseClause. + which is a ElseCaseClause. @@ -3889,16 +3889,16 @@ Unify Enum declarations with other block type declarations. - + The "Else" part in a Case Else statement. 10.8.2 CaseElseStatement - + The "Else" keyword. @@ -3908,16 +3908,16 @@ Unify Enum declarations with other block type declarations. - + Represents a single value in a Case. 10.8.2 CaseClause - + @@ -3929,16 +3929,16 @@ Unify Enum declarations with other block type declarations. - + Represents a range "expression To expression" in a Case. 10.8.2 CaseClause - + @@ -3963,9 +3963,9 @@ Unify Enum declarations with other block type declarations. - + Represents a relation clause in a Case statement, such as "Is > expression". diff --git a/Src/Compilers/VisualBasic/Source/Syntax/SyntaxFormatter.vb b/Src/Compilers/VisualBasic/Source/Syntax/SyntaxFormatter.vb index 7fb31394b5168509fd43c242faa99710c4baf16a..24a296eb200e2c0a1a1e555dad4c07307c36ef25 100644 --- a/Src/Compilers/VisualBasic/Source/Syntax/SyntaxFormatter.vb +++ b/Src/Compilers/VisualBasic/Source/Syntax/SyntaxFormatter.vb @@ -477,8 +477,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax ' case > 100 should keep separator ' need to test before xml analysis below - If SyntaxFacts.IsCaseRelationalClause(token.Parent.VisualBasicKind()) OrElse - SyntaxFacts.IsCaseRelationalClause(nextToken.Parent.VisualBasicKind()) Then + If SyntaxFacts.IsRelationalCaseClause(token.Parent.VisualBasicKind()) OrElse + SyntaxFacts.IsRelationalCaseClause(nextToken.Parent.VisualBasicKind()) Then Return True End If diff --git a/Src/Compilers/VisualBasic/Test/Semantic/Semantics/SelectCaseTest.vb b/Src/Compilers/VisualBasic/Test/Semantic/Semantics/SelectCaseTest.vb index 21d6cb2f59ba6daba95390607b8f1fd75c636b93..28d0da1f7d97711a2435777bef865cf706a4ddcf 100644 --- a/Src/Compilers/VisualBasic/Test/Semantic/Semantics/SelectCaseTest.vb +++ b/Src/Compilers/VisualBasic/Test/Semantic/Semantics/SelectCaseTest.vb @@ -375,13 +375,13 @@ End Module End Sub - Public Sub SelectCase_CaseRelationalClauseExpression_Literal() + Public Sub SelectCase_RelationalCaseClauseExpression_Literal() Dim compilation = CreateCompilationWithMscorlib( - Public Sub SelectCase_CaseRangeClauseExpression_MethodCall() + Public Sub SelectCase_RangeCaseClauseExpression_MethodCall() Dim compilation = CreateCompilationWithMscorlib( - Public Sub SelectCase_CaseValueClauseExpression_DateTime() + Public Sub SelectCase_SimpleCaseClauseExpression_DateTime() Dim compilation = CreateCompilationWithMscorlib( - Public Sub IsCaseRelationalClause() + Public Sub IsRelationalCaseClause() Dim item As SyntaxKind For Each item In New SyntaxKind() {SyntaxKind.CaseEqualsClause, SyntaxKind.CaseNotEqualsClause, SyntaxKind.CaseLessThanClause, SyntaxKind.CaseLessThanOrEqualClause, SyntaxKind.CaseGreaterThanOrEqualClause, SyntaxKind.CaseGreaterThanClause} - Assert.True(SyntaxFacts.IsCaseRelationalClause(item)) + Assert.True(SyntaxFacts.IsRelationalCaseClause(item)) Next - Assert.False(SyntaxFacts.IsCaseRelationalClause(SyntaxKind.ExitKeyword)) - Assert.False(SyntaxFacts.IsCaseRelationalClause(SyntaxKind.None)) + Assert.False(SyntaxFacts.IsRelationalCaseClause(SyntaxKind.ExitKeyword)) + Assert.False(SyntaxFacts.IsRelationalCaseClause(SyntaxKind.None)) End Sub - Public Sub IsCaseRelationalClauseOperatorToken() + Public Sub IsRelationalCaseClauseOperatorToken() Dim item As SyntaxKind For Each item In New SyntaxKind() {SyntaxKind.EqualsToken, SyntaxKind.LessThanGreaterThanToken, SyntaxKind.LessThanToken, SyntaxKind.LessThanEqualsToken, SyntaxKind.GreaterThanEqualsToken, SyntaxKind.GreaterThanToken} - Assert.True(SyntaxFacts.IsCaseRelationalClauseOperatorToken(item)) + Assert.True(SyntaxFacts.IsRelationalCaseClauseOperatorToken(item)) Next - Assert.False(SyntaxFacts.IsCaseRelationalClauseOperatorToken(SyntaxKind.ExitKeyword)) - Assert.False(SyntaxFacts.IsCaseRelationalClauseOperatorToken(SyntaxKind.None)) + Assert.False(SyntaxFacts.IsRelationalCaseClauseOperatorToken(SyntaxKind.ExitKeyword)) + Assert.False(SyntaxFacts.IsRelationalCaseClauseOperatorToken(SyntaxKind.None)) End Sub diff --git a/Src/Compilers/VisualBasic/Test/Syntax/TestSyntaxNodes.vb b/Src/Compilers/VisualBasic/Test/Syntax/TestSyntaxNodes.vb index e105b2218a2cd2137d70d7c3b86520531b0629e1..37043ed9d34fd00a3d179a53af7dd7540fe322c3 100644 --- a/Src/Compilers/VisualBasic/Test/Syntax/TestSyntaxNodes.vb +++ b/Src/Compilers/VisualBasic/Test/Syntax/TestSyntaxNodes.vb @@ -3331,7 +3331,7 @@ End Module Dim root = tree.GetCompilationUnitRoot() Dim collector = New SyntaxWalkerVerifier() collector.Visit(root) - Assert.Equal(1, collector.GetCount(SyntaxKind.CaseRangeClause.ToString)) + Assert.Equal(1, collector.GetCount(SyntaxKind.RangeCaseClause.ToString)) End Sub diff --git a/Src/Workspaces/VisualBasic/CodeGeneration/VisualBasicSyntaxFactory.vb b/Src/Workspaces/VisualBasic/CodeGeneration/VisualBasicSyntaxFactory.vb index d565424c7c2f11ea58b08732e9ebc97923803558..ebe14a538f86a8b17307da7d17193c0c2e7c44df 100644 --- a/Src/Workspaces/VisualBasic/CodeGeneration/VisualBasicSyntaxFactory.vb +++ b/Src/Workspaces/VisualBasic/CodeGeneration/VisualBasicSyntaxFactory.vb @@ -242,9 +242,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeGeneration Public Overrides Function CreateSwitchLabel(Optional expressionOpt As SyntaxNode = Nothing) As SyntaxNode If expressionOpt Is Nothing Then - Return SyntaxFactory.CaseElseStatement(SyntaxFactory.CaseElseClause()) + Return SyntaxFactory.CaseElseStatement(SyntaxFactory.ElseCaseClause()) Else - Return SyntaxFactory.CaseStatement(SyntaxFactory.CaseValueClause(DirectCast(expressionOpt, ExpressionSyntax))) + Return SyntaxFactory.CaseStatement(SyntaxFactory.SimpleCaseClause(DirectCast(expressionOpt, ExpressionSyntax))) End If End Function diff --git a/Src/Workspaces/VisualBasic/Extensions/ContextQuery/SyntaxTreeExtensions.vb b/Src/Workspaces/VisualBasic/Extensions/ContextQuery/SyntaxTreeExtensions.vb index c5e96679339fab1b2baf18c3d5b264287c446978..3dee7a0d08f0e7a97b30de6d58d5ecb6580a0481 100644 --- a/Src/Workspaces/VisualBasic/Extensions/ContextQuery/SyntaxTreeExtensions.vb +++ b/Src/Workspaces/VisualBasic/Extensions/ContextQuery/SyntaxTreeExtensions.vb @@ -312,8 +312,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Extensions.ContextQuery targetToken.IsChildToken(Of CatchFilterClauseSyntax)(Function(catchFilterClauseSyntax) catchFilterClauseSyntax.WhenKeyword) OrElse targetToken.IsChildToken(Of CaseStatementSyntax)(Function(caseStatement) caseStatement.CaseKeyword) OrElse targetToken.IsChildSeparatorToken(Of CaseStatementSyntax, CaseClauseSyntax)(Function(caseStatement) caseStatement.Cases) OrElse - targetToken.IsChildToken(Of CaseRangeClauseSyntax)(Function(caseRangeClause) caseRangeClause.ToKeyword) OrElse - targetToken.IsChildToken(Of CaseRelationalClauseSyntax)(Function(caseRelationalClause) caseRelationalClause.OperatorToken) OrElse + targetToken.IsChildToken(Of RangeCaseClauseSyntax)(Function(rangeCaseClause) rangeCaseClause.ToKeyword) OrElse + targetToken.IsChildToken(Of RelationalCaseClauseSyntax)(Function(relationalCaseClause) relationalCaseClause.OperatorToken) OrElse targetToken.IsChildToken(Of CastExpressionSyntax)(Function(castExpression) castExpression.OpenParenToken) OrElse targetToken.IsChildToken(Of CollectionInitializerSyntax)(Function(collectionInitializer) collectionInitializer.OpenBraceToken) OrElse targetToken.IsChildToken(Of CollectionRangeVariableSyntax)(Function(collectionRange) collectionRange.InKeyword) OrElse diff --git a/Src/Workspaces/VisualBasic/LanguageServices/VisualBasicTypeInferenceService.TypeInferrer.vb b/Src/Workspaces/VisualBasic/LanguageServices/VisualBasicTypeInferenceService.TypeInferrer.vb index 9edc437479643ca3571a3c4d0f4dcfbf3d564636..a2fc80af2530419b70c2eb21ad1e5175e7a4350c 100644 --- a/Src/Workspaces/VisualBasic/LanguageServices/VisualBasicTypeInferenceService.TypeInferrer.vb +++ b/Src/Workspaces/VisualBasic/LanguageServices/VisualBasicTypeInferenceService.TypeInferrer.vb @@ -661,7 +661,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic Private Function InferTypeInSelectStatement(switchStatementSyntax As SelectStatementSyntax, Optional previousToken As SyntaxToken = Nothing) As IEnumerable(Of ITypeSymbol) ' Use the first case label to determine the return type. If TypeOf switchStatementSyntax.Parent Is SelectBlockSyntax Then - Dim firstCase = DirectCast(switchStatementSyntax.Parent, SelectBlockSyntax).CaseBlocks.SelectMany(Function(c) c.Begin.Cases).OfType(Of CaseValueClauseSyntax).FirstOrDefault() + Dim firstCase = DirectCast(switchStatementSyntax.Parent, SelectBlockSyntax).CaseBlocks.SelectMany(Function(c) c.Begin.Cases).OfType(Of SimpleCaseClauseSyntax).FirstOrDefault() If firstCase IsNot Nothing Then Return GetTypes(firstCase.Value) End If