Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
41a275b2
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,发现更多精彩内容 >>
提交
41a275b2
编写于
9月 01, 2017
作者:
C
Cyrus Najmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add comment.
上级
af1d63e7
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
12 deletion
+10
-12
src/Features/CSharp/Portable/UseDeconstruction/CSharpUseDeconstructionCodeFixProvider.cs
...eDeconstruction/CSharpUseDeconstructionCodeFixProvider.cs
+2
-4
src/Features/CSharp/Portable/UseDeconstruction/CSharpUseDeconstructionDiagnosticAnalyzer.cs
...construction/CSharpUseDeconstructionDiagnosticAnalyzer.cs
+8
-8
未找到文件。
src/Features/CSharp/Portable/UseDeconstruction/CSharpUseDeconstructionCodeFixProvider.cs
浏览文件 @
41a275b2
...
...
@@ -20,8 +20,6 @@ namespace Microsoft.CodeAnalysis.CSharp.UseDeconstruction
[
ExportCodeFixProvider
(
LanguageNames
.
CSharp
),
Shared
]
internal
class
CSharpUseDeconstructionCodeFixProvider
:
SyntaxEditorBasedCodeFixProvider
{
private
readonly
CSharpUseDeconstructionDiagnosticAnalyzer
s_analyzer
=
new
CSharpUseDeconstructionDiagnosticAnalyzer
();
public
override
ImmutableArray
<
string
>
FixableDiagnosticIds
=>
ImmutableArray
.
Create
(
IDEDiagnosticIds
.
UseDeconstructionDiagnosticId
);
...
...
@@ -65,7 +63,7 @@ private SyntaxNode UpdateRoot(SemanticModel semanticModel, SyntaxNode root, Synt
if
(
node
is
VariableDeclaratorSyntax
variableDeclarator
)
{
var
variableDeclaration
=
(
VariableDeclarationSyntax
)
variableDeclarator
.
Parent
;
if
(
s_a
nalyzer
.
TryAnalyzeVariableDeclaration
(
if
(
CSharpUseDeconstructionDiagnosticA
nalyzer
.
TryAnalyzeVariableDeclaration
(
semanticModel
,
variableDeclaration
,
out
var
tupleType
,
out
memberAccessExpressions
,
cancellationToken
))
...
...
@@ -81,7 +79,7 @@ private SyntaxNode UpdateRoot(SemanticModel semanticModel, SyntaxNode root, Synt
}
else
if
(
node
is
ForEachStatementSyntax
forEachStatement
)
{
if
(
s_a
nalyzer
.
TryAnalyzeForEachStatement
(
if
(
CSharpUseDeconstructionDiagnosticA
nalyzer
.
TryAnalyzeForEachStatement
(
semanticModel
,
forEachStatement
,
out
var
tupleType
,
out
memberAccessExpressions
,
cancellationToken
))
...
...
src/Features/CSharp/Portable/UseDeconstruction/CSharpUseDeconstructionDiagnosticAnalyzer.cs
浏览文件 @
41a275b2
...
...
@@ -67,7 +67,7 @@ private void AnalyzeNode(SyntaxNodeAnalysisContext context)
private
void
AnalyzeVariableDeclaration
(
SyntaxNodeAnalysisContext
context
,
VariableDeclarationSyntax
variableDeclaration
,
DiagnosticSeverity
severity
)
{
if
(!
this
.
TryAnalyzeVariableDeclaration
(
if
(!
TryAnalyzeVariableDeclaration
(
context
.
SemanticModel
,
variableDeclaration
,
out
_
,
out
var
memberAccessExpressions
,
context
.
CancellationToken
))
{
...
...
@@ -82,7 +82,7 @@ private void AnalyzeNode(SyntaxNodeAnalysisContext context)
private
void
AnalyzeForEachStatement
(
SyntaxNodeAnalysisContext
context
,
ForEachStatementSyntax
forEachStatement
,
DiagnosticSeverity
severity
)
{
if
(!
this
.
TryAnalyzeForEachStatement
(
if
(!
TryAnalyzeForEachStatement
(
context
.
SemanticModel
,
forEachStatement
,
out
_
,
out
var
memberAccessExpressions
,
context
.
CancellationToken
))
{
...
...
@@ -94,7 +94,7 @@ private void AnalyzeNode(SyntaxNodeAnalysisContext context)
forEachStatement
.
Identifier
.
GetLocation
()));
}
public
bool
TryAnalyzeVariableDeclaration
(
public
static
bool
TryAnalyzeVariableDeclaration
(
SemanticModel
semanticModel
,
VariableDeclarationSyntax
variableDeclaration
,
out
INamedTypeSymbol
tupleType
,
...
...
@@ -132,7 +132,7 @@ private void AnalyzeNode(SyntaxNodeAnalysisContext context)
out
tupleType
,
out
memberAccessExpressions
,
cancellationToken
);
}
public
bool
TryAnalyzeForEachStatement
(
public
static
bool
TryAnalyzeForEachStatement
(
SemanticModel
semanticModel
,
ForEachStatementSyntax
forEachStatement
,
out
INamedTypeSymbol
tupleType
,
...
...
@@ -146,7 +146,7 @@ private void AnalyzeNode(SyntaxNodeAnalysisContext context)
forEachStatement
,
out
tupleType
,
out
memberAccessExpressions
,
cancellationToken
);
}
private
bool
TryAnalyze
(
private
static
bool
TryAnalyze
(
SemanticModel
semanticModel
,
ILocalSymbol
local
,
TypeSyntax
typeNode
,
...
...
@@ -220,7 +220,7 @@ private void AnalyzeNode(SyntaxNodeAnalysisContext context)
}
}
private
bool
AnyTupleFieldNamesCollideWithExistingNames
(
private
static
bool
AnyTupleFieldNamesCollideWithExistingNames
(
SemanticModel
semanticModel
,
INamedTypeSymbol
tupleType
,
SyntaxNode
container
,
CancellationToken
cancellationToken
)
{
...
...
@@ -242,7 +242,7 @@ private void AnalyzeNode(SyntaxNodeAnalysisContext context)
return
false
;
}
private
bool
IsViableTupleTypeSyntax
(
TypeSyntax
type
)
private
static
bool
IsViableTupleTypeSyntax
(
TypeSyntax
type
)
{
if
(
type
.
IsVar
)
{
...
...
@@ -270,7 +270,7 @@ private bool IsViableTupleTypeSyntax(TypeSyntax type)
return
false
;
}
private
bool
OnlyUsedToAccessTupleFields
(
private
static
bool
OnlyUsedToAccessTupleFields
(
SemanticModel
semanticModel
,
SyntaxNode
searchScope
,
ILocalSymbol
local
,
ArrayBuilder
<
MemberAccessExpressionSyntax
>
memberAccessLocations
,
CancellationToken
cancellationToken
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录