Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
91faab29
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,发现更多精彩内容 >>
未验证
提交
91faab29
编写于
11月 11, 2019
作者:
M
msftbot[bot]
提交者:
GitHub
11月 11, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #39760 from dotnet/merges/release/dev16.4-to-release/dev16.4-vs-deps
Merge release/dev16.4 to release/dev16.4-vs-deps
上级
f53cffe5
dc37aba1
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
29 addition
and
6 deletion
+29
-6
src/Compilers/Core/CodeAnalysisTest/AnalyzerConfigTests.cs
src/Compilers/Core/CodeAnalysisTest/AnalyzerConfigTests.cs
+1
-0
src/Compilers/Core/Portable/CommandLine/AnalyzerConfigSet.cs
src/Compilers/Core/Portable/CommandLine/AnalyzerConfigSet.cs
+19
-3
src/VisualStudio/Core/Def/Implementation/LanguageService/AbstractPackage.cs
...ore/Def/Implementation/LanguageService/AbstractPackage.cs
+7
-2
src/VisualStudio/Core/Def/Implementation/ProjectSystem/VisualStudioWorkspaceImpl.cs
...Implementation/ProjectSystem/VisualStudioWorkspaceImpl.cs
+2
-1
未找到文件。
src/Compilers/Core/CodeAnalysisTest/AnalyzerConfigTests.cs
浏览文件 @
91faab29
...
...
@@ -1460,6 +1460,7 @@ public void TreesShareOptionsInstances()
new
[]
{
"/a.cs"
,
"/b.cs"
,
"/c.cs"
},
configs
);
configs
.
Free
();
Assert
.
Equal
(
KeyValuePair
.
Create
(
"cs000"
,
ReportDiagnostic
.
Warn
),
options
[
0
].
TreeOptions
.
Single
());
Assert
.
Same
(
options
[
0
].
TreeOptions
,
options
[
1
].
TreeOptions
);
Assert
.
Same
(
options
[
0
].
AnalyzerOptions
,
options
[
1
].
AnalyzerOptions
);
...
...
src/Compilers/Core/Portable/CommandLine/AnalyzerConfigSet.cs
浏览文件 @
91faab29
...
...
@@ -193,18 +193,34 @@ public AnalyzerConfigOptionsResult GetOptionsForSourcePath(string sourcePath)
treeOptionsBuilder
.
Count
>
0
?
treeOptionsBuilder
.
ToImmutable
()
:
SyntaxTree
.
EmptyDiagnosticOptions
,
analyzerOptionsBuilder
.
Count
>
0
?
analyzerOptionsBuilder
.
ToImmutable
()
:
AnalyzerConfigOptions
.
EmptyDictionary
,
diagnosticBuilder
.
ToImmutableAndFree
());
_optionsCache
.
TryAdd
(
sectionKey
,
result
);
if
(
_optionsCache
.
TryAdd
(
sectionKey
,
result
))
{
// Release the pooled object to be used as a key
_sectionKeyPool
.
ForgetTrackedObject
(
sectionKey
);
}
else
{
freeKey
(
sectionKey
,
_sectionKeyPool
);
}
}
else
{
freeKey
(
sectionKey
,
_sectionKeyPool
);
}
sectionKey
.
Clear
();
treeOptionsBuilder
.
Clear
();
analyzerOptionsBuilder
.
Clear
();
_sectionKeyPool
.
Free
(
sectionKey
);
_treeOptionsPool
.
Free
(
treeOptionsBuilder
);
_analyzerOptionsPool
.
Free
(
analyzerOptionsBuilder
);
return
result
;
static
void
freeKey
(
List
<
Section
>
sectionKey
,
ObjectPool
<
List
<
Section
>>
pool
)
{
sectionKey
.
Clear
();
pool
.
Free
(
sectionKey
);
}
static
void
addOptions
(
AnalyzerConfig
.
Section
section
,
TreeOptions
.
Builder
treeBuilder
,
...
...
src/VisualStudio/Core/Def/Implementation/LanguageService/AbstractPackage.cs
浏览文件 @
91faab29
...
...
@@ -10,8 +10,13 @@ internal abstract class AbstractPackage : AsyncPackage
{
protected
async
Task
LoadComponentsInUIContextOnceSolutionFullyLoadedAsync
(
CancellationToken
cancellationToken
)
{
await
KnownUIContexts
.
SolutionExistsAndFullyLoadedContext
;
await
LoadComponentsAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
// UIContexts can be "zombied" if UIContexts aren't supported because we're in a command line build or in other scenarios.
// Trying to await them will throw.
if
(!
KnownUIContexts
.
SolutionExistsAndFullyLoadedContext
.
IsZombie
)
{
await
KnownUIContexts
.
SolutionExistsAndFullyLoadedContext
;
await
LoadComponentsAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
}
}
protected
abstract
Task
LoadComponentsAsync
(
CancellationToken
cancellationToken
);
...
...
src/VisualStudio/Core/Def/Implementation/ProjectSystem/VisualStudioWorkspaceImpl.cs
浏览文件 @
91faab29
...
...
@@ -1953,7 +1953,8 @@ internal void RefreshProjectExistsUIContextForLanguage(string language)
language
,
l
=>
Services
.
GetLanguageServices
(
l
).
GetService
<
IProjectExistsUIContextProviderLanguageService
>()?.
GetUIContext
());
if
(
uiContext
!=
null
)
// UIContexts can be "zombied" if UIContexts aren't supported because we're in a command line build or in other scenarios.
if
(
uiContext
!=
null
&&
!
uiContext
.
IsZombie
)
{
uiContext
.
IsActive
=
CurrentSolution
.
Projects
.
Any
(
p
=>
p
.
Language
==
language
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录