提交 8e33e984 编写于 作者: V VSadov

Making conditional access operators in VB not experimental.

***NO_CI***
 (changeset 1342366)
上级 9f0d9add
......@@ -387,7 +387,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax
' This looks like ?. or ?!
Dim qToken = DirectCast(start, PunctuationSyntax)
AssertLanguageFeature(ERRID.FEATUREID_NullPropagatingOperator, qToken)
qToken = AssertLanguageFeature(ERRID.FEATUREID_NullPropagatingOperator, qToken)
GetNextToken()
term = SyntaxFactory.ConditionalAccessExpression(term, qToken, ParsePostFixExpression(RedimOrNewParent, term:=Nothing))
......@@ -453,7 +453,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax
' This looks like ?. ?! or ?(
Dim qToken = DirectCast([Next], PunctuationSyntax)
AssertLanguageFeature(ERRID.FEATUREID_NullPropagatingOperator, qToken)
GetNextToken()
......@@ -481,11 +480,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax
End Function
Private Function CanStartConsequenceExpression(kind As SyntaxKind, qualified As Boolean) As Boolean
If _scanner.Options.LanguageVersion <> LanguageVersion.Experimental Then
Return False
End If
Return kind = SyntaxKind.DotToken OrElse kind = SyntaxKind.ExclamationToken OrElse (qualified AndAlso kind = SyntaxKind.OpenParenToken)
End Function
......
......@@ -344,7 +344,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax
Not m_EvaluatingConditionCompilationExpression Then
If Not NextLineStartsWithStatementTerminator() Then
If Not AssertLanguageFeature(ERRID.FEATUREID_LineContinuation, CurrentToken) Then
If Not AssertLanguageFeature(ERRID.FEATUREID_LineContinuation) Then
Return False
End If
......
......@@ -2395,7 +2395,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax
Private Function ParseObjectCollectionInitializer(fromKeyword As KeywordSyntax) As ObjectCollectionInitializerSyntax
Debug.Assert(fromKeyword IsNot Nothing)
AssertLanguageFeature(ERRID.FEATUREID_CollectionInitializers, fromKeyword)
fromKeyword = AssertLanguageFeature(ERRID.FEATUREID_CollectionInitializers, fromKeyword)
' Allow implicit line continuation after FROM (dev10_508839) but only if followed by "{".
' This is to avoid reporting an error at the beginning of then next line and then skipping the next statement.
......@@ -4061,7 +4061,7 @@ checkNullable:
If CurrentToken.Kind = SyntaxKind.InKeyword Then
optionalVarianceModifier = DirectCast(CurrentToken, KeywordSyntax)
AssertLanguageFeature(ERRID.FEATUREID_CoContraVariance, CurrentToken)
optionalVarianceModifier = AssertLanguageFeature(ERRID.FEATUREID_CoContraVariance, optionalVarianceModifier)
GetNextToken()
Else
......@@ -4079,7 +4079,7 @@ checkNullable:
name = id
optionalVarianceModifier = Nothing
Else
AssertLanguageFeature(ERRID.FEATUREID_CoContraVariance, CurrentToken)
outKeyword = AssertLanguageFeature(ERRID.FEATUREID_CoContraVariance, outKeyword)
optionalVarianceModifier = outKeyword
End If
End If
......@@ -5790,15 +5790,28 @@ checkNullable:
_currentToken = Nothing
End Sub
' .Parser::AssertLanguageFeature( [ unsigned feature ] [ _Inout_ Token* ErrorLocationToken ] )
''' <summary>
''' returns true if feature is available
''' </summary>
Private Function AssertLanguageFeature(
feature As ERRID,
ErrorLocationToken As SyntaxToken
feature As ERRID
) As Boolean
Return True
End Function
''' <summary>
''' Attaches an error to the node if feature is not available
''' </summary>
Private Function AssertLanguageFeature(Of T As VisualBasicSyntaxNode)(
feature As ERRID,
node As T
) As T
' If we are targeting the latest version of the compiler, all features are fair game
Return True
Return node
#If MUSTCONVERT Then
If m_CompilingLanguageVersion = LANGUAGE_CURRENT Then
Return True
......@@ -5819,7 +5832,6 @@ checkNullable:
ReportSyntaxErrorForLanguageFeature(ERRID.ERR_LanguageVersion, ErrorLocationToken, feature, wszVersion)
End If
#End If
Return False
End Function
'============ Methods to test properties of NodeKind. ====================
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册