Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
988c0e15
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,发现更多精彩内容 >>
未验证
提交
988c0e15
编写于
8月 01, 2019
作者:
M
Manish Vasani
提交者:
GitHub
8月 01, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #37638 from mavasani/AddIntegrationTest
Add an integration test for #37623
上级
cbbe362a
0d4753ec
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
89 addition
and
4 deletion
+89
-4
src/Compilers/Core/Portable/DiagnosticAnalyzer/CompilationWithAnalyzers.cs
...e/Portable/DiagnosticAnalyzer/CompilationWithAnalyzers.cs
+4
-4
src/VisualStudio/IntegrationTest/IntegrationTests/CSharp/CSharpTyping.cs
...o/IntegrationTest/IntegrationTests/CSharp/CSharpTyping.cs
+85
-0
未找到文件。
src/Compilers/Core/Portable/DiagnosticAnalyzer/CompilationWithAnalyzers.cs
浏览文件 @
988c0e15
...
...
@@ -566,7 +566,7 @@ public async Task<ImmutableArray<Diagnostic>> GetAnalyzerSemanticDiagnosticsAsyn
return
await
GetAnalyzerSemanticDiagnosticsCoreAsync
(
model
,
filterSpan
,
analyzers
,
cancellationToken
).
ConfigureAwait
(
false
);
}
private
async
Task
<
ImmutableArray
<
Diagnostic
>>
GetAnalyzerSemanticDiagnosticsCoreAsync
(
SemanticModel
model
,
TextSpan
?
filterSpan
,
ImmutableArray
<
DiagnosticAnalyzer
>
analyzers
,
CancellationToken
cancellationToken
)
private
async
Task
<
ImmutableArray
<
Diagnostic
>>
GetAnalyzerSemanticDiagnosticsCoreAsync
(
SemanticModel
model
,
TextSpan
?
filterSpan
,
ImmutableArray
<
DiagnosticAnalyzer
>
analyzers
,
CancellationToken
cancellationToken
,
bool
forceCompletePartialTrees
=
true
)
{
try
{
...
...
@@ -588,7 +588,7 @@ private async Task<ImmutableArray<Diagnostic>> GetAnalyzerSemanticDiagnosticsCor
cancellationToken
.
ThrowIfCancellationRequested
();
(
ImmutableArray
<
CompilationEvent
>
compilationEvents
,
bool
hasSymbolStartActions
)
=
await
ComputeAnalyzerDiagnosticsAsync
(
pendingAnalysisScope
,
getPendingEvents
,
taskToken
,
cancellationToken
).
ConfigureAwait
(
false
);
if
(
hasSymbolStartActions
)
if
(
hasSymbolStartActions
&&
forceCompletePartialTrees
)
{
await
processPartialSymbolLocationsAsync
(
compilationEvents
,
analysisScope
).
ConfigureAwait
(
false
);
}
...
...
@@ -649,7 +649,7 @@ async Task processPartialSymbolLocationsAsync(ImmutableArray<CompilationEvent> c
Task
.
Run
(()
=>
{
var
treeModel
=
_compilationData
.
GetOrCreateCachedSemanticModel
(
tree
,
_compilation
,
cancellationToken
);
return
GetAnalyzerSemanticDiagnosticsCoreAsync
(
treeModel
,
filterSpan
:
null
,
analysisScope
.
Analyzers
,
cancellationToken
);
return
GetAnalyzerSemanticDiagnosticsCoreAsync
(
treeModel
,
filterSpan
:
null
,
analysisScope
.
Analyzers
,
cancellationToken
,
forceCompletePartialTrees
:
false
);
},
cancellationToken
))).
ConfigureAwait
(
false
);
}
else
...
...
@@ -658,7 +658,7 @@ async Task processPartialSymbolLocationsAsync(ImmutableArray<CompilationEvent> c
{
cancellationToken
.
ThrowIfCancellationRequested
();
var
treeModel
=
_compilationData
.
GetOrCreateCachedSemanticModel
(
tree
,
_compilation
,
cancellationToken
);
await
GetAnalyzerSemanticDiagnosticsCoreAsync
(
treeModel
,
filterSpan
:
null
,
analysisScope
.
Analyzers
,
cancellationToken
).
ConfigureAwait
(
false
);
await
GetAnalyzerSemanticDiagnosticsCoreAsync
(
treeModel
,
filterSpan
:
null
,
analysisScope
.
Analyzers
,
cancellationToken
,
forceCompletePartialTrees
:
false
).
ConfigureAwait
(
false
);
}
}
}
...
...
src/VisualStudio/IntegrationTest/IntegrationTests/CSharp/CSharpTyping.cs
0 → 100644
浏览文件 @
988c0e15
// 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
Microsoft.CodeAnalysis
;
using
Microsoft.VisualStudio.IntegrationTest.Utilities
;
using
Microsoft.VisualStudio.IntegrationTest.Utilities.Input
;
using
Roslyn.Test.Utilities
;
using
Xunit
;
using
Xunit.Abstractions
;
using
ProjectUtils
=
Microsoft
.
VisualStudio
.
IntegrationTest
.
Utilities
.
Common
.
ProjectUtils
;
namespace
Roslyn.VisualStudio.IntegrationTests.CSharp
{
[
Collection
(
nameof
(
SharedIntegrationHostFixture
))]
public
class
CSharpTyping
:
AbstractEditorTest
{
protected
override
string
LanguageName
=>
LanguageNames
.
CSharp
;
public
CSharpTyping
(
VisualStudioInstanceFactory
instanceFactory
,
ITestOutputHelper
testOutputHelper
)
:
base
(
instanceFactory
,
testOutputHelper
,
nameof
(
CSharpTyping
))
{
}
[
WpfFact
,
WorkItem
(
957250
,
"https://devdiv.visualstudio.com/DevDiv/_workitems/edit/957250"
)]
public
void
TypingInPartialType
()
{
SetUpEditor
(
@"
public partial class Test
{
private int f;
static void Main(string[] args) { }
public void Noop()
{
f = 1;$$
}
}
"
);
var
secondPartialDecl
=
@"
public partial class Test
{
int val1 = 1, val2 = 2;
public void TestA()
{
TestB();
}
}
"
;
var
thirdPartialDecl
=
@"
public partial class Test
{
public void TestB()
{
int val1x = this.val1, val2x = this.val2;
}
}"
;
VisualStudio
.
SolutionExplorer
.
AddFile
(
new
ProjectUtils
.
Project
(
ProjectName
),
"PartialType2.cs"
,
secondPartialDecl
,
open
:
false
);
VisualStudio
.
SolutionExplorer
.
AddFile
(
new
ProjectUtils
.
Project
(
ProjectName
),
"PartialType3.cs"
,
thirdPartialDecl
,
open
:
false
);
// Typing intermixed with explicit Wait operations to ensure that
// we trigger multiple open file analyses along with cancellations.
VisualStudio
.
Editor
.
SendKeys
(
VirtualKey
.
Enter
);
Wait
(
seconds
:
1
);
VisualStudio
.
Editor
.
SendKeys
(
"f = 1;"
);
Wait
(
seconds
:
1
);
VisualStudio
.
Editor
.
SendKeys
(
VirtualKey
.
Backspace
);
VisualStudio
.
Editor
.
SendKeys
(
VirtualKey
.
Backspace
);
Wait
(
seconds
:
1
);
VisualStudio
.
Editor
.
SendKeys
(
"2;"
);
VisualStudio
.
Editor
.
Verify
.
TextContains
(
@"
public partial class Test
{
private int f;
static void Main(string[] args) { }
public void Noop()
{
f = 1;
f = 2;
}
}"
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录