Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
d7340e95
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,发现更多精彩内容 >>
提交
d7340e95
编写于
8月 12, 2016
作者:
N
Nick Guerrera
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make Empty.Set<T> conform to ISet<T> norms
上级
f93cffec
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
74 addition
and
16 deletion
+74
-16
src/Compilers/Core/CodeAnalysisTest/CodeAnalysisTest.csproj
src/Compilers/Core/CodeAnalysisTest/CodeAnalysisTest.csproj
+1
-0
src/Compilers/Core/CodeAnalysisTest/InternalUtilities/SpecializedCollectionsTests.cs
...ysisTest/InternalUtilities/SpecializedCollectionsTests.cs
+61
-0
src/Compilers/Core/Portable/InternalUtilities/SpecializedCollections.Empty.Collection.cs
...ernalUtilities/SpecializedCollections.Empty.Collection.cs
+1
-0
src/Compilers/Core/Portable/InternalUtilities/SpecializedCollections.Empty.Set.cs
...ble/InternalUtilities/SpecializedCollections.Empty.Set.cs
+11
-16
未找到文件。
src/Compilers/Core/CodeAnalysisTest/CodeAnalysisTest.csproj
浏览文件 @
d7340e95
...
...
@@ -42,6 +42,7 @@
<Compile
Include=
"Emit\EmitOptionsTests.cs"
/>
<Compile
Include=
"Emit\CustomDebugInfoTests.cs"
/>
<Compile
Include=
"FileSystem\PathUtilitiesTests.cs"
/>
<Compile
Include=
"InternalUtilities\SpecializedCollectionsTests.cs"
/>
<Compile
Include=
"InternalUtilities\StreamExtensionsTests.cs"
/>
<Compile
Include=
"InternalUtilities\JsonWriterTests.cs"
/>
<Compile
Include=
"InternalUtilities\StringExtensionsTests.cs"
/>
...
...
src/Compilers/Core/CodeAnalysisTest/InternalUtilities/SpecializedCollectionsTests.cs
0 → 100644
浏览文件 @
d7340e95
// 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
Roslyn.Utilities
;
using
System
;
using
System.Collections
;
using
System.Collections.Generic
;
using
System.Collections.Immutable
;
using
Xunit
;
namespace
Microsoft.CodeAnalysis.UnitTests.InternalUtilities
{
public
class
SpecializedCollectionsTests
{
[
Theory
]
[
InlineData
(
false
)]
[
InlineData
(
true
)]
// use same tests against a BCL implementation to demonstrate test correctness.
public
void
EmptySetRespectsInterfaceContract
(
bool
useReferenceImplementation
)
{
var
emptySet
=
useReferenceImplementation
?
ImmutableHashSet
<
int
>.
Empty
:
SpecializedCollections
.
EmptySet
<
int
>();
// IEnumerable
Assert
.
Empty
(
emptySet
);
Assert
.
False
(
emptySet
.
GetEnumerator
().
MoveNext
());
Assert
.
False
(((
IEnumerable
)
emptySet
).
GetEnumerator
().
MoveNext
());
// ICollection (read-only safe)
Assert
.
Equal
(
0
,
emptySet
.
Count
);
Assert
.
True
(
emptySet
.
IsReadOnly
);
Assert
.
False
(
emptySet
.
Contains
(
0
));
emptySet
.
CopyTo
(
new
int
[
0
],
0
);
// should not throw
// ICollection (not supported when read-only)
Assert
.
Throws
<
NotSupportedException
>(()
=>
((
ICollection
<
int
>)(
emptySet
)).
Add
(
0
));
Assert
.
Throws
<
NotSupportedException
>(()
=>
emptySet
.
Remove
(
0
));
Assert
.
Throws
<
NotSupportedException
>(()
=>
emptySet
.
Clear
());
// ISet (read-only safe)
Assert
.
False
(
emptySet
.
IsProperSubsetOf
(
new
int
[
0
]));
Assert
.
True
(
emptySet
.
IsProperSubsetOf
(
new
int
[
1
]));
Assert
.
False
(
emptySet
.
IsProperSupersetOf
(
new
int
[
0
]));
Assert
.
False
(
emptySet
.
IsProperSupersetOf
(
new
int
[
1
]));
Assert
.
True
(
emptySet
.
IsSubsetOf
(
new
int
[
0
]));
Assert
.
True
(
emptySet
.
IsSubsetOf
(
new
int
[
1
]));
Assert
.
True
(
emptySet
.
IsSupersetOf
(
new
int
[
0
]));
Assert
.
False
(
emptySet
.
IsSupersetOf
(
new
int
[
1
]));
Assert
.
False
(
emptySet
.
Overlaps
(
new
int
[
0
]));
Assert
.
False
(
emptySet
.
Overlaps
(
new
int
[
1
]));
Assert
.
True
(
emptySet
.
SetEquals
(
new
int
[
0
]));
Assert
.
False
(
emptySet
.
SetEquals
(
new
int
[
1
]));
// ISet (not supported when read-only)
Assert
.
Throws
<
NotSupportedException
>(()
=>
emptySet
.
Add
(
0
));
Assert
.
Throws
<
NotSupportedException
>(()
=>
emptySet
.
ExceptWith
(
new
int
[
0
]));
Assert
.
Throws
<
NotSupportedException
>(()
=>
emptySet
.
IntersectWith
(
new
int
[
0
]));
Assert
.
Throws
<
NotSupportedException
>(()
=>
emptySet
.
SymmetricExceptWith
(
new
int
[
0
]));
Assert
.
Throws
<
NotSupportedException
>(()
=>
emptySet
.
UnionWith
(
new
int
[
0
]));
}
}
}
src/Compilers/Core/Portable/InternalUtilities/SpecializedCollections.Empty.Collection.cs
浏览文件 @
d7340e95
...
...
@@ -24,6 +24,7 @@ public void Add(T item)
public
void
Clear
()
{
throw
new
NotSupportedException
();
}
public
bool
Contains
(
T
item
)
...
...
src/Compilers/Core/Portable/InternalUtilities/SpecializedCollections.Empty.Set.cs
浏览文件 @
d7340e95
...
...
@@ -19,62 +19,57 @@ protected Set()
public
new
bool
Add
(
T
item
)
{
throw
new
Not
Implemen
tedException
();
throw
new
Not
Suppor
tedException
();
}
public
void
ExceptWith
(
IEnumerable
<
T
>
other
)
{
throw
new
Not
Implemen
tedException
();
throw
new
Not
Suppor
tedException
();
}
public
void
IntersectWith
(
IEnumerable
<
T
>
other
)
{
throw
new
Not
Implemen
tedException
();
throw
new
Not
Suppor
tedException
();
}
public
bool
IsProperSubsetOf
(
IEnumerable
<
T
>
other
)
{
throw
new
NotImplementedException
();
return
!
other
.
IsEmpty
();
}
public
bool
IsProperSupersetOf
(
IEnumerable
<
T
>
other
)
{
throw
new
NotImplementedException
()
;
return
false
;
}
public
bool
IsSubsetOf
(
IEnumerable
<
T
>
other
)
{
throw
new
NotImplementedException
()
;
return
true
;
}
public
bool
IsSupersetOf
(
IEnumerable
<
T
>
other
)
{
throw
new
NotImplementedException
();
return
other
.
IsEmpty
();
}
public
bool
Overlaps
(
IEnumerable
<
T
>
other
)
{
throw
new
NotImplementedException
()
;
return
false
;
}
public
bool
SetEquals
(
IEnumerable
<
T
>
other
)
{
throw
new
NotImplementedException
();
return
other
.
IsEmpty
();
}
public
void
SymmetricExceptWith
(
IEnumerable
<
T
>
other
)
{
throw
new
Not
Implemen
tedException
();
throw
new
Not
Suppor
tedException
();
}
public
void
UnionWith
(
IEnumerable
<
T
>
other
)
{
throw
new
NotImplementedException
();
}
public
new
System
.
Collections
.
IEnumerator
GetEnumerator
()
{
return
Set
<
T
>.
Instance
.
GetEnumerator
();
throw
new
NotSupportedException
();
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录