Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
d570bc79
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,发现更多精彩内容 >>
提交
d570bc79
编写于
5月 25, 2017
作者:
M
Manish Vasani
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ensure that IOperations nodes within an IsPatternExpression are part of the Operation tree
Fixes #19790
上级
ff80e150
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
0 deletion
+25
-0
src/Compilers/CSharp/Portable/BoundTree/Expression.cs
src/Compilers/CSharp/Portable/BoundTree/Expression.cs
+2
-0
src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IParameterReferenceExpression.cs
...peration/IOperationTests_IParameterReferenceExpression.cs
+23
-0
未找到文件。
src/Compilers/CSharp/Portable/BoundTree/Expression.cs
浏览文件 @
d570bc79
...
...
@@ -2820,6 +2820,8 @@ public override void Accept(OperationVisitor visitor)
// TODO: implement IOperation for pattern-matching constructs (https://github.com/dotnet/roslyn/issues/8699)
protected
override
OperationKind
ExpressionKind
=>
OperationKind
.
None
;
protected
override
ImmutableArray
<
IOperation
>
Children
=>
ImmutableArray
.
Create
<
IOperation
>(
this
.
Expression
,
this
.
Pattern
);
}
/// <summary>
...
...
src/Compilers/CSharp/Test/Semantic/IOperation/IOperationTests_IParameterReferenceExpression.cs
浏览文件 @
d570bc79
...
...
@@ -827,5 +827,28 @@ static void M(int x, __arglist)
VerifyOperationTreeAndDiagnosticsForTest
<
InvocationExpressionSyntax
>(
source
,
expectedOperationTree
,
expectedDiagnostics
);
}
[
Fact
,
WorkItem
(
19790
,
"https://github.com/dotnet/roslyn/issues/19790"
)]
public
void
ParameterReference_IsPatternExpression
()
{
string
source
=
@"
class Class1
{
public void Method1(object x)
{
if (/*<bind>*/x is int y/*</bind>*/) { }
}
}
"
;
string
expectedOperationTree
=
@"
IOperation: (OperationKind.None) (Syntax: 'x is int y')
Children(2): IParameterReferenceExpression: x (OperationKind.ParameterReferenceExpression, Type: System.Object) (Syntax: 'x')
IOperation: (OperationKind.None) (Syntax: 'int y')
Children(1): ILocalReferenceExpression: y (OperationKind.LocalReferenceExpression, Type: System.Int32) (Syntax: 'int y')
"
;
var
expectedDiagnostics
=
DiagnosticDescription
.
None
;
VerifyOperationTreeAndDiagnosticsForTest
<
IsPatternExpressionSyntax
>(
source
,
expectedOperationTree
,
expectedDiagnostics
);
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录