Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
8e33e984
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8e33e984
编写于
9月 25, 2014
作者:
V
VSadov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Making conditional access operators in VB not experimental.
***NO_CI*** (changeset 1342366)
上级
9f0d9add
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
65 addition
and
107 deletion
+65
-107
Src/Compilers/VisualBasic/Portable/Parser/ParseExpression.vb
Src/Compilers/VisualBasic/Portable/Parser/ParseExpression.vb
+1
-7
Src/Compilers/VisualBasic/Portable/Parser/ParseScan.vb
Src/Compilers/VisualBasic/Portable/Parser/ParseScan.vb
+1
-1
Src/Compilers/VisualBasic/Portable/Parser/Parser.vb
Src/Compilers/VisualBasic/Portable/Parser/Parser.vb
+20
-8
Src/Compilers/VisualBasic/Test/Semantic/Semantics/ConditionalAccessTests.vb
...alBasic/Test/Semantic/Semantics/ConditionalAccessTests.vb
+43
-91
未找到文件。
Src/Compilers/VisualBasic/Portable/Parser/ParseExpression.vb
浏览文件 @
8e33e984
...
...
@@ -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
...
...
Src/Compilers/VisualBasic/Portable/Parser/ParseScan.vb
浏览文件 @
8e33e984
...
...
@@ -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
...
...
Src/Compilers/VisualBasic/Portable/Parser/Parser.vb
浏览文件 @
8e33e984
...
...
@@ -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. ====================
...
...
Src/Compilers/VisualBasic/Test/Semantic/Semantics/ConditionalAccessTests.vb
浏览文件 @
8e33e984
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录