Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
85caf941
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,发现更多精彩内容 >>
提交
85caf941
编写于
5月 28, 2015
作者:
D
David Poeschl
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3070 from dpoeschl/RenameKeyNotFoundCrash
Handle rename decl conflicts when decl file contains no refs
上级
6ed0f45e
968da597
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
75 addition
and
0 deletion
+75
-0
src/EditorFeatures/Test2/Rename/RenameEngineTests.CSharpConflicts.vb
...eatures/Test2/Rename/RenameEngineTests.CSharpConflicts.vb
+67
-0
src/Workspaces/Core/Portable/Rename/ConflictEngine/ConflictResolver.Session.cs
...ortable/Rename/ConflictEngine/ConflictResolver.Session.cs
+8
-0
未找到文件。
src/EditorFeatures/Test2/Rename/RenameEngineTests.CSharpConflicts.vb
浏览文件 @
85caf941
...
...
@@ -3344,5 +3344,72 @@ class {|conflict:C$$|} { }
result.AssertLabeledSpansAre("
conflict
", renameTo, RelatedLocationType.UnresolvedConflict)
End Using
End Sub
<WorkItem(2352, "
https
:
//
github
.
com
/
dotnet
/
roslyn
/
issues
/
2352
")>
<Fact>
<Trait(Traits.Feature, Traits.Features.Rename)>
Public Sub DeclarationConflictInFileWithoutReferences_SameProject()
Using result = RenameEngineResult.Create(
<Workspace>
<Project Language="C
#
" CommonReferences="
true
">
<Document FilePath="
Test1
.
cs
">
class Program
{
internal void [|A$$|]() { }
internal void {|conflict:B|}() { }
}
</Document>
<Document FilePath="
Test2
.
cs
">
class Program2
{
void M()
{
Program p = null;
p.{|conflict:A|}();
p.{|conflict:B|}();
}
}
</Document>
</Project>
</Workspace>, renameTo:="
B
")
result.AssertLabeledSpansAre("
conflict
", "
B
", RelatedLocationType.UnresolvedConflict)
End Using
End Sub
<WorkItem(2352, "
https
:
//
github
.
com
/
dotnet
/
roslyn
/
issues
/
2352
")>
<Fact>
<Trait(Traits.Feature, Traits.Features.Rename)>
Public Sub DeclarationConflictInFileWithoutReferences_DifferentProjects()
Using result = RenameEngineResult.Create(
<Workspace>
<Project Language="C
#
" CommonReferences="
true
" AssemblyName="C
SAssembly1
">
<Document FilePath="
Test1
.
cs
">
public class Program
{
public void [|A$$|]() { }
public void {|conflict:B|}() { }
}
</Document>
</Project>
<Project Language="C
#
" CommonReferences="
true
" AssemblyName="C
SAssembly2
">
<ProjectReference>CSAssembly1</ProjectReference>
<Document FilePath="
Test2
.
cs
">
class Program2
{
void M()
{
Program p = null;
p.{|conflict:A|}();
p.{|conflict:B|}();
}
}
</Document>
</Project>
</Workspace>, renameTo:="
B
")
result.AssertLabeledSpansAre("
conflict
", "
B
", RelatedLocationType.UnresolvedConflict)
End Using
End Sub
End Class
End Namespace
src/Workspaces/Core/Portable/Rename/ConflictEngine/ConflictResolver.Session.cs
浏览文件 @
85caf941
...
...
@@ -170,6 +170,14 @@ public async Task<ConflictResolution> ResolveConflictsAsync()
// Note that we need to get the conflictLocations here since we're going to remove some locations below if phase == 2
documentIdsThatGetsAnnotatedAndRenamed
=
new
HashSet
<
DocumentId
>(
_conflictLocations
.
Select
(
l
=>
l
.
DocumentId
));
// Include the declaration document if we are processing its project to
// ensure declaration conflicts are calculated correctly when the
// declaration document does not contain any references.
if
(
documentsByProject
.
Key
==
_documentIdOfRenameSymbolDeclaration
.
ProjectId
)
{
documentIdsThatGetsAnnotatedAndRenamed
.
Add
(
_documentIdOfRenameSymbolDeclaration
);
}
if
(
phase
==
2
)
{
// After phase 2, if there are still conflicts then remove the conflict locations from being expanded
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录