Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
f13b5c75
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,发现更多精彩内容 >>
未验证
提交
f13b5c75
编写于
4月 15, 2017
作者:
F
Fredric Silberberg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated GetDeclaredVariables and comments with pr feedback.
上级
28d84520
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
13 addition
and
7 deletion
+13
-7
src/Compilers/Core/Portable/Operations/IVariableDeclaration.cs
...ompilers/Core/Portable/Operations/IVariableDeclaration.cs
+4
-2
src/Compilers/Core/Portable/Operations/OperationExtensions.cs
...Compilers/Core/Portable/Operations/OperationExtensions.cs
+6
-2
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
+1
-1
src/Test/Utilities/Portable/Diagnostics/OperationTestAnalyzer.cs
...t/Utilities/Portable/Diagnostics/OperationTestAnalyzer.cs
+2
-2
未找到文件。
src/Compilers/Core/Portable/Operations/IVariableDeclaration.cs
浏览文件 @
f13b5c75
...
...
@@ -14,11 +14,13 @@ namespace Microsoft.CodeAnalysis.Semantics
public
interface
IVariableDeclaration
:
IOperation
{
/// <summary>
/// Symbols declared by the declaration.
/// Symbols declared by the declaration. In VB, it's possible to declare multiple variables with the
/// same initializer. In C#, this will always have a single symbol.
/// </summary>
ImmutableArray
<
ILocalSymbol
>
Variables
{
get
;
}
/// <summary>
///
I
nitializer of the variable.
///
Optional i
nitializer of the variable.
/// </summary>
IOperation
Initializer
{
get
;
}
}
...
...
src/Compilers/Core/Portable/Operations/OperationExtensions.cs
浏览文件 @
f13b5c75
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using
System.Collections.Generic
;
using
System.Collections.Immutable
;
using
System.Threading
;
using
Roslyn.Utilities
;
...
...
@@ -46,15 +47,18 @@ public static IOperation GetRootOperation(this ISymbol symbol, CancellationToken
}
}
public
static
I
Enumerable
<
ILocalSymbol
>
GetDeclaredVariables
(
this
IVariableDeclarationStatement
declarationStatement
)
public
static
I
mmutableArray
<
ILocalSymbol
>
GetDeclaredVariables
(
this
IVariableDeclarationStatement
declarationStatement
)
{
var
arrayBuilder
=
ArrayBuilder
<
ILocalSymbol
>.
GetInstance
();
foreach
(
IVariableDeclaration
group
in
declarationStatement
.
Declarations
)
{
foreach
(
ILocalSymbol
symbol
in
group
.
Variables
)
{
yield
return
symbol
;
arrayBuilder
.
Add
(
symbol
)
;
}
}
return
arrayBuilder
.
ToImmutableAndFree
();
}
private
sealed
class
OperationCollector
:
OperationWalker
...
...
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
浏览文件 @
f13b5c75
...
...
@@ -738,7 +738,7 @@ override Microsoft.CodeAnalysis.Semantics.OperationWalker.VisitYieldBreakStateme
static Microsoft.CodeAnalysis.Compilation.GetRequiredLanguageVersion(Microsoft.CodeAnalysis.Diagnostic diagnostic) -> string
static Microsoft.CodeAnalysis.Semantics.OperationExtensions.Descendants(this Microsoft.CodeAnalysis.IOperation operation) -> System.Collections.Generic.IEnumerable<Microsoft.CodeAnalysis.IOperation>
static Microsoft.CodeAnalysis.Semantics.OperationExtensions.DescendantsAndSelf(this Microsoft.CodeAnalysis.IOperation operation) -> System.Collections.Generic.IEnumerable<Microsoft.CodeAnalysis.IOperation>
static Microsoft.CodeAnalysis.Semantics.OperationExtensions.GetDeclaredVariables(this Microsoft.CodeAnalysis.Semantics.IVariableDeclarationStatement declarationStatement) -> System.Collections.
Generic.IEnumerable
<Microsoft.CodeAnalysis.ILocalSymbol>
static Microsoft.CodeAnalysis.Semantics.OperationExtensions.GetDeclaredVariables(this Microsoft.CodeAnalysis.Semantics.IVariableDeclarationStatement declarationStatement) -> System.Collections.
Immutable.ImmutableArray
<Microsoft.CodeAnalysis.ILocalSymbol>
static Microsoft.CodeAnalysis.Semantics.OperationExtensions.GetRootOperation(this Microsoft.CodeAnalysis.ISymbol symbol, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> Microsoft.CodeAnalysis.IOperation
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetBinaryOperandsKind(Microsoft.CodeAnalysis.Semantics.BinaryOperationKind kind) -> Microsoft.CodeAnalysis.Semantics.BinaryOperandsKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetBinaryOperandsKind(this Microsoft.CodeAnalysis.Semantics.IBinaryOperatorExpression binary) -> Microsoft.CodeAnalysis.Semantics.BinaryOperandsKind
...
...
src/Test/Utilities/Portable/Diagnostics/OperationTestAnalyzer.cs
浏览文件 @
f13b5c75
...
...
@@ -820,7 +820,7 @@ public sealed override void Initialize(AnalysisContext context)
(
operationContext
)
=>
{
var
declarationStatement
=
(
IVariableDeclarationStatement
)
operationContext
.
Operation
;
if
(
declarationStatement
.
GetDeclared
Symbol
s
().
Count
()
>
3
)
if
(
declarationStatement
.
GetDeclared
Variable
s
().
Count
()
>
3
)
{
Report
(
operationContext
,
declarationStatement
.
Syntax
,
TooManyLocalVarDeclarationsDescriptor
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录