Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
6c322ae6
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,发现更多精彩内容 >>
提交
6c322ae6
编写于
6月 01, 2017
作者:
C
CyrusNajmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Switch to using a string instead of a full diagnostic.
上级
26d9b997
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
37 addition
and
37 deletion
+37
-37
src/Features/CSharp/Portable/AddImport/CSharpAddImportCodeFixProvider.cs
...harp/Portable/AddImport/CSharpAddImportCodeFixProvider.cs
+9
-9
src/Features/Core/Portable/AddImport/AbstractAddImportCodeFixProvider.cs
...re/Portable/AddImport/AbstractAddImportCodeFixProvider.cs
+8
-8
src/Features/Core/Portable/AddImport/SymbolReferenceFinder.cs
...Features/Core/Portable/AddImport/SymbolReferenceFinder.cs
+10
-10
src/Features/Core/Portable/AddImport/SymbolReferenceFinder_PackageAssemblySearch.cs
.../AddImport/SymbolReferenceFinder_PackageAssemblySearch.cs
+1
-1
src/Features/VisualBasic/Portable/AddImport/VisualBasicAddImportCodeFixProvider.vb
...Portable/AddImport/VisualBasicAddImportCodeFixProvider.vb
+9
-9
未找到文件。
src/Features/CSharp/Portable/AddImport/CSharpAddImportCodeFixProvider.cs
浏览文件 @
6c322ae6
...
...
@@ -174,11 +174,11 @@ protected override bool CanAddImport(SyntaxNode node, CancellationToken cancella
}
protected
override
bool
CanAddImportForMethod
(
Diagnostic
diagnostic
,
ISyntaxFactsService
syntaxFacts
,
SyntaxNode
node
,
out
SimpleNameSyntax
nameNode
)
string
diagnosticId
,
ISyntaxFactsService
syntaxFacts
,
SyntaxNode
node
,
out
SimpleNameSyntax
nameNode
)
{
nameNode
=
null
;
switch
(
diagnostic
.
Id
)
switch
(
diagnosticId
)
{
case
CS7036
:
case
CS0428
:
...
...
@@ -264,18 +264,18 @@ protected override bool CanAddImport(SyntaxNode node, CancellationToken cancella
return
true
;
}
protected
override
bool
CanAddImportForDeconstruct
(
Diagnostic
diagnostic
,
SyntaxNode
node
)
=>
diagnostic
.
Id
==
CS8129
;
protected
override
bool
CanAddImportForDeconstruct
(
string
diagnosticId
,
SyntaxNode
node
)
=>
diagnosticId
==
CS8129
;
protected
override
bool
CanAddImportForNamespace
(
Diagnostic
diagnostic
,
SyntaxNode
node
,
out
SimpleNameSyntax
nameNode
)
protected
override
bool
CanAddImportForNamespace
(
string
diagnosticId
,
SyntaxNode
node
,
out
SimpleNameSyntax
nameNode
)
{
nameNode
=
null
;
return
false
;
}
protected
override
bool
CanAddImportForQuery
(
Diagnostic
diagnostic
,
SyntaxNode
node
)
protected
override
bool
CanAddImportForQuery
(
string
diagnosticId
,
SyntaxNode
node
)
{
if
(
diagnostic
.
Id
!=
CS1935
)
if
(
diagnosticId
!=
CS1935
)
{
return
false
;
}
...
...
@@ -283,10 +283,10 @@ protected override bool CanAddImportForQuery(Diagnostic diagnostic, SyntaxNode n
return
node
.
AncestorsAndSelf
().
Any
(
n
=>
n
is
QueryExpressionSyntax
&&
!(
n
.
Parent
is
QueryContinuationSyntax
));
}
protected
override
bool
CanAddImportForType
(
Diagnostic
diagnostic
,
SyntaxNode
node
,
out
SimpleNameSyntax
nameNode
)
protected
override
bool
CanAddImportForType
(
string
diagnosticId
,
SyntaxNode
node
,
out
SimpleNameSyntax
nameNode
)
{
nameNode
=
null
;
switch
(
diagnostic
.
Id
)
switch
(
diagnosticId
)
{
case
CS0103
:
case
CS0246
:
...
...
src/Features/Core/Portable/AddImport/AbstractAddImportCodeFixProvider.cs
浏览文件 @
6c322ae6
...
...
@@ -41,11 +41,11 @@ internal abstract partial class AbstractAddImportCodeFixProvider<TSimpleNameSynt
}
protected
abstract
bool
CanAddImport
(
SyntaxNode
node
,
CancellationToken
cancellationToken
);
protected
abstract
bool
CanAddImportForMethod
(
Diagnostic
diagnostic
,
ISyntaxFactsService
syntaxFacts
,
SyntaxNode
node
,
out
TSimpleNameSyntax
nameNode
);
protected
abstract
bool
CanAddImportForNamespace
(
Diagnostic
diagnostic
,
SyntaxNode
node
,
out
TSimpleNameSyntax
nameNode
);
protected
abstract
bool
CanAddImportForDeconstruct
(
Diagnostic
diagnostic
,
SyntaxNode
node
);
protected
abstract
bool
CanAddImportForQuery
(
Diagnostic
diagnostic
,
SyntaxNode
node
);
protected
abstract
bool
CanAddImportForType
(
Diagnostic
diagnostic
,
SyntaxNode
node
,
out
TSimpleNameSyntax
nameNode
);
protected
abstract
bool
CanAddImportForMethod
(
string
diagnosticId
,
ISyntaxFactsService
syntaxFacts
,
SyntaxNode
node
,
out
TSimpleNameSyntax
nameNode
);
protected
abstract
bool
CanAddImportForNamespace
(
string
diagnosticId
,
SyntaxNode
node
,
out
TSimpleNameSyntax
nameNode
);
protected
abstract
bool
CanAddImportForDeconstruct
(
string
diagnosticId
,
SyntaxNode
node
);
protected
abstract
bool
CanAddImportForQuery
(
string
diagnosticId
,
SyntaxNode
node
);
protected
abstract
bool
CanAddImportForType
(
string
diagnosticId
,
SyntaxNode
node
,
out
TSimpleNameSyntax
nameNode
);
protected
abstract
ISet
<
INamespaceSymbol
>
GetImportNamespacesInScope
(
SemanticModel
semanticModel
,
SyntaxNode
node
,
CancellationToken
cancellationToken
);
protected
abstract
ITypeSymbol
GetDeconstructInfo
(
SemanticModel
semanticModel
,
SyntaxNode
node
,
CancellationToken
cancellationToken
);
...
...
@@ -99,7 +99,7 @@ private async Task<int> HandleDiagnosticAsync(CodeFixContext context, Diagnostic
if
(
this
.
CanAddImport
(
node
,
cancellationToken
))
{
var
semanticModel
=
await
document
.
GetSemanticModelAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
var
allSymbolReferences
=
await
FindResultsAsync
(
document
,
semanticModel
,
diagnostic
,
node
,
cancellationToken
).
ConfigureAwait
(
false
);
var
allSymbolReferences
=
await
FindResultsAsync
(
document
,
semanticModel
,
diagnostic
.
Id
,
node
,
cancellationToken
).
ConfigureAwait
(
false
);
// Nothing found at all. No need to proceed.
foreach
(
var
reference
in
allSymbolReferences
)
...
...
@@ -150,7 +150,7 @@ private IPackageInstallerService GetPackageInstallerService(Document document)
}
private
async
Task
<
ImmutableArray
<
Reference
>>
FindResultsAsync
(
Document
document
,
SemanticModel
semanticModel
,
Diagnostic
diagnostic
,
SyntaxNode
node
,
CancellationToken
cancellationToken
)
Document
document
,
SemanticModel
semanticModel
,
string
diagnosticId
,
SyntaxNode
node
,
CancellationToken
cancellationToken
)
{
// Caches so we don't produce the same data multiple times while searching
// all over the solution.
...
...
@@ -158,7 +158,7 @@ private IPackageInstallerService GetPackageInstallerService(Document document)
var
projectToAssembly
=
new
ConcurrentDictionary
<
Project
,
AsyncLazy
<
IAssemblySymbol
>>(
concurrencyLevel
:
2
,
capacity
:
project
.
Solution
.
ProjectIds
.
Count
);
var
referenceToCompilation
=
new
ConcurrentDictionary
<
PortableExecutableReference
,
Compilation
>(
concurrencyLevel
:
2
,
capacity
:
project
.
Solution
.
Projects
.
Sum
(
p
=>
p
.
MetadataReferences
.
Count
));
var
finder
=
new
SymbolReferenceFinder
(
this
,
document
,
semanticModel
,
diagnostic
,
node
,
cancellationToken
);
var
finder
=
new
SymbolReferenceFinder
(
this
,
document
,
semanticModel
,
diagnostic
Id
,
node
,
cancellationToken
);
// Look for exact matches first:
var
exactReferences
=
await
FindResultsAsync
(
projectToAssembly
,
referenceToCompilation
,
project
,
finder
,
exact
:
true
,
cancellationToken
:
cancellationToken
).
ConfigureAwait
(
false
);
...
...
src/Features/Core/Portable/AddImport/SymbolReferenceFinder.cs
浏览文件 @
6c322ae6
...
...
@@ -20,7 +20,7 @@ private partial class SymbolReferenceFinder
{
private
const
string
AttributeSuffix
=
nameof
(
Attribute
);
private
readonly
Diagnostic
_diagnostic
;
private
readonly
string
_diagnosticId
;
private
readonly
Document
_document
;
private
readonly
SemanticModel
_semanticModel
;
...
...
@@ -35,13 +35,13 @@ private partial class SymbolReferenceFinder
public
SymbolReferenceFinder
(
AbstractAddImportCodeFixProvider
<
TSimpleNameSyntax
>
owner
,
Document
document
,
SemanticModel
semanticModel
,
Diagnostic
diagnostic
,
SyntaxNode
node
,
string
diagnosticId
,
SyntaxNode
node
,
CancellationToken
cancellationToken
)
{
_owner
=
owner
;
_document
=
document
;
_semanticModel
=
semanticModel
;
_diagnostic
=
diagnostic
;
_diagnostic
Id
=
diagnosticId
;
_node
=
node
;
_containingType
=
semanticModel
.
GetEnclosingNamedType
(
node
.
SpanStart
,
cancellationToken
);
...
...
@@ -155,7 +155,7 @@ private ImmutableArray<SymbolReference> DeDupeAndSortReferences(ImmutableArray<S
private
async
Task
<
ImmutableArray
<
SymbolReference
>>
GetReferencesForMatchingTypesAsync
(
SearchScope
searchScope
)
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
if
(!
_owner
.
CanAddImportForType
(
_diagnostic
,
_node
,
out
var
nameNode
))
if
(!
_owner
.
CanAddImportForType
(
_diagnostic
Id
,
_node
,
out
var
nameNode
))
{
return
ImmutableArray
<
SymbolReference
>.
Empty
;
}
...
...
@@ -223,7 +223,7 @@ private async Task<ImmutableArray<SymbolReference>> GetReferencesForMatchingType
SearchScope
searchScope
)
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
if
(
_owner
.
CanAddImportForNamespace
(
_diagnostic
,
_node
,
out
var
nameNode
))
if
(
_owner
.
CanAddImportForNamespace
(
_diagnostic
Id
,
_node
,
out
var
nameNode
))
{
_syntaxFacts
.
GetNameAndArityOfSimpleName
(
nameNode
,
out
var
name
,
out
var
arity
);
...
...
@@ -250,7 +250,7 @@ private async Task<ImmutableArray<SymbolReference>> GetReferencesForMatchingType
SearchScope
searchScope
)
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
if
(
_owner
.
CanAddImportForMethod
(
_diagnostic
,
_syntaxFacts
,
_node
,
out
var
nameNode
)
&&
if
(
_owner
.
CanAddImportForMethod
(
_diagnostic
Id
,
_syntaxFacts
,
_node
,
out
var
nameNode
)
&&
nameNode
!=
null
)
{
// We have code like "Color.Black". "Color" bound to a 'Color Color' property, and
...
...
@@ -310,7 +310,7 @@ private bool HasAccessibleStaticFieldOrProperty(INamedTypeSymbol namedType, stri
private
async
Task
<
ImmutableArray
<
SymbolReference
>>
GetReferencesForMatchingExtensionMethodsAsync
(
SearchScope
searchScope
)
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
if
(
_owner
.
CanAddImportForMethod
(
_diagnostic
,
_syntaxFacts
,
_node
,
out
var
nameNode
)
&&
if
(
_owner
.
CanAddImportForMethod
(
_diagnostic
Id
,
_syntaxFacts
,
_node
,
out
var
nameNode
)
&&
nameNode
!=
null
)
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
...
...
@@ -368,7 +368,7 @@ private async Task<ImmutableArray<SymbolReference>> GetReferencesForMatchingExte
private
async
Task
<
ImmutableArray
<
SymbolReference
>>
GetReferencesForCollectionInitializerMethodsAsync
(
SearchScope
searchScope
)
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
if
(!
_owner
.
CanAddImportForMethod
(
_diagnostic
,
_syntaxFacts
,
_node
,
out
var
nameNode
))
if
(!
_owner
.
CanAddImportForMethod
(
_diagnostic
Id
,
_syntaxFacts
,
_node
,
out
var
nameNode
))
{
return
ImmutableArray
<
SymbolReference
>.
Empty
;
}
...
...
@@ -403,7 +403,7 @@ private async Task<ImmutableArray<SymbolReference>> GetReferencesForQueryPattern
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
if
(
_owner
.
CanAddImportForQuery
(
_diagnostic
,
_node
))
if
(
_owner
.
CanAddImportForQuery
(
_diagnostic
Id
,
_node
))
{
var
type
=
_owner
.
GetQueryClauseInfo
(
_semanticModel
,
_node
,
searchScope
.
CancellationToken
);
if
(
type
!=
null
)
...
...
@@ -426,7 +426,7 @@ private async Task<ImmutableArray<SymbolReference>> GetReferencesForDeconstructA
{
searchScope
.
CancellationToken
.
ThrowIfCancellationRequested
();
if
(
_owner
.
CanAddImportForDeconstruct
(
_diagnostic
,
_node
))
if
(
_owner
.
CanAddImportForDeconstruct
(
_diagnostic
Id
,
_node
))
{
var
type
=
_owner
.
GetDeconstructInfo
(
_semanticModel
,
_node
,
searchScope
.
CancellationToken
);
if
(
type
!=
null
)
...
...
src/Features/Core/Portable/AddImport/SymbolReferenceFinder_PackageAssemblySearch.cs
浏览文件 @
6c322ae6
...
...
@@ -23,7 +23,7 @@ private partial class SymbolReferenceFinder
return
;
}
if
(!
_owner
.
CanAddImportForType
(
_diagnostic
,
_node
,
out
var
nameNode
))
if
(!
_owner
.
CanAddImportForType
(
_diagnostic
Id
,
_node
,
out
var
nameNode
))
{
return
;
}
...
...
src/Features/VisualBasic/Portable/AddImport/VisualBasicAddImportCodeFixProvider.vb
浏览文件 @
6c322ae6
...
...
@@ -120,11 +120,11 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.AddImport
End
Function
Protected
Overrides
Function
CanAddImportForMethod
(
diagnostic
As
Diagnostic
,
diagnostic
Id
As
String
,
syntaxFacts
As
ISyntaxFactsService
,
node
As
SyntaxNode
,
ByRef
nameNode
As
SimpleNameSyntax
)
As
Boolean
Select
Case
diagnostic
.
Id
Select
Case
diagnosticId
Case
BC30456
,
BC30390
,
BC42309
,
BC30451
Exit
Select
Case
BC30512
...
...
@@ -177,8 +177,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.AddImport
Return
True
End
Function
Protected
Overrides
Function
CanAddImportForNamespace
(
diagnostic
As
Diagnostic
,
node
As
SyntaxNode
,
ByRef
nameNode
As
SimpleNameSyntax
)
As
Boolean
Select
Case
diagnostic
.
Id
Protected
Overrides
Function
CanAddImportForNamespace
(
diagnostic
Id
As
String
,
node
As
SyntaxNode
,
ByRef
nameNode
As
SimpleNameSyntax
)
As
Boolean
Select
Case
diagnosticId
Case
BC30002
,
BC30451
Exit
Select
Case
Else
...
...
@@ -188,13 +188,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.AddImport
Return
CanAddImportForTypeOrNamespaceCore
(
node
,
nameNode
)
End
Function
Protected
Overrides
Function
CanAddImportForDeconstruct
(
diagnostic
As
Diagnostic
,
node
As
SyntaxNode
)
As
Boolean
Protected
Overrides
Function
CanAddImportForDeconstruct
(
diagnostic
Id
As
String
,
node
As
SyntaxNode
)
As
Boolean
' Not supported yet.
Return
False
End
Function
Protected
Overrides
Function
CanAddImportForQuery
(
diagnostic
As
Diagnostic
,
node
As
SyntaxNode
)
As
Boolean
If
diagnostic
.
Id
<>
BC36593
Then
Protected
Overrides
Function
CanAddImportForQuery
(
diagnostic
Id
As
String
,
node
As
SyntaxNode
)
As
Boolean
If
diagnosticId
<>
BC36593
Then
Return
False
End
If
...
...
@@ -208,8 +208,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.AddImport
End
Function
Protected
Overrides
Function
CanAddImportForType
(
diagnostic
As
Diagnostic
,
node
As
SyntaxNode
,
ByRef
nameNode
As
SimpleNameSyntax
)
As
Boolean
Select
Case
diagnostic
.
Id
diagnostic
Id
As
String
,
node
As
SyntaxNode
,
ByRef
nameNode
As
SimpleNameSyntax
)
As
Boolean
Select
Case
diagnosticId
Case
BC30002
,
BC30451
,
BC32042
,
BC32045
,
BC30389
,
BC31504
,
BC36610
,
BC30182
Exit
Select
Case
BC42309
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录