Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
9adebb61
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,发现更多精彩内容 >>
提交
9adebb61
编写于
9月 23, 2020
作者:
C
Cyrus Najmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Do not show unspeakable names in override completion
上级
542be342
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
34 addition
and
21 deletion
+34
-21
src/EditorFeatures/CSharpTest/Completion/CompletionProviders/OverrideCompletionProviderTests.cs
...on/CompletionProviders/OverrideCompletionProviderTests.cs
+18
-0
src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/INamedTypeSymbolExtensions.cs
...ns/Compiler/Core/Extensions/INamedTypeSymbolExtensions.cs
+16
-21
未找到文件。
src/EditorFeatures/CSharpTest/Completion/CompletionProviders/OverrideCompletionProviderTests.cs
浏览文件 @
9adebb61
...
...
@@ -4,6 +4,7 @@
using
System
;
using
System.Linq
;
using
System.Reflection
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Xml.Linq
;
...
...
@@ -3044,6 +3045,7 @@ public override bool Bar(Baz baz)
}
[
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)]
[
WorkItem
(
47941
,
"https://github.com/dotnet/roslyn/issues/47941"
)]
public
async
Task
OverrideInRecordWithoutExplicitOverriddenMember
()
{
await
VerifyItemExistsAsync
(
@"record Program
...
...
@@ -3053,6 +3055,7 @@ public async Task OverrideInRecordWithoutExplicitOverriddenMember()
}
[
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)]
[
WorkItem
(
47941
,
"https://github.com/dotnet/roslyn/issues/47941"
)]
public
async
Task
OverrideInRecordWithExplicitOverriddenMember
()
{
await
VerifyItemIsAbsentAsync
(
@"record Program
...
...
@@ -3062,5 +3065,20 @@ public async Task OverrideInRecordWithExplicitOverriddenMember()
override $$
}"
,
"ToString()"
);
}
[
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)]
[
WorkItem
(
47973
,
"https://github.com/dotnet/roslyn/issues/47973"
)]
public
async
Task
NoCloneInOverriddenRecord
()
{
var
cloneMemberName
=
(
string
)
typeof
(
WellKnownMemberNames
).
GetField
(
"CloneMethodName"
,
BindingFlags
.
NonPublic
|
BindingFlags
.
Static
).
GetValue
(
null
);
Assert
.
Equal
(
"<Clone>$"
,
cloneMemberName
);
await
VerifyItemIsAbsentAsync
(
@"
record Base();
record Program : Base
{
override $$
}"
,
cloneMemberName
);
}
}
}
src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/INamedTypeSymbolExtensions.cs
浏览文件 @
9adebb61
...
...
@@ -551,30 +551,25 @@ private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol
private
static
bool
IsOverridable
(
ISymbol
member
,
INamedTypeSymbol
containingType
)
{
if
(
member
.
IsAbstract
||
member
.
IsVirtual
||
member
.
IsOverride
)
{
if
(
member
.
IsSealed
)
{
return
false
;
}
if
(!
member
.
IsAbstract
&&
!
member
.
IsVirtual
&&
!
member
.
IsOverride
)
return
false
;
if
(!
member
.
IsAccessibleWithin
(
containingType
))
{
return
false
;
}
if
(
member
.
IsSealed
)
return
false
;
switch
(
member
.
Kind
)
{
case
SymbolKind
.
Event
:
return
true
;
case
SymbolKind
.
Method
:
return
((
IMethodSymbol
)
member
).
MethodKind
==
MethodKind
.
Ordinary
;
case
SymbolKind
.
Property
:
return
!((
IPropertySymbol
)
member
).
IsWithEvents
;
}
}
if
(!
member
.
CanBeReferencedByName
)
return
false
;
return
false
;
if
(!
member
.
IsAccessibleWithin
(
containingType
))
return
false
;
return
member
switch
{
IEventSymbol
_
=>
true
,
IMethodSymbol
method
when
method
.
MethodKind
==
MethodKind
.
Ordinary
=>
true
,
IPropertySymbol
property
when
!
property
.
IsWithEvents
=>
true
,
_
=>
false
,
};
}
private
static
void
RemoveOverriddenMembers
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录