Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
3ffbbd83
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,发现更多精彩内容 >>
提交
3ffbbd83
编写于
5月 08, 2017
作者:
C
CyrusNajmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rename type.
上级
a752d1bb
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
137 addition
and
137 deletion
+137
-137
src/Workspaces/Core/Portable/Execution/CustomAsset.cs
src/Workspaces/Core/Portable/Execution/CustomAsset.cs
+4
-4
src/Workspaces/Core/Portable/Execution/CustomAssetBuilder.cs
src/Workspaces/Core/Portable/Execution/CustomAssetBuilder.cs
+1
-1
src/Workspaces/Core/Portable/Execution/Extensions.cs
src/Workspaces/Core/Portable/Execution/Extensions.cs
+21
-21
src/Workspaces/Core/Portable/Execution/RemotableData.cs
src/Workspaces/Core/Portable/Execution/RemotableData.cs
+4
-4
src/Workspaces/Core/Portable/Execution/Serializer.cs
src/Workspaces/Core/Portable/Execution/Serializer.cs
+38
-38
src/Workspaces/Core/Portable/Execution/Serializer_ChecksumWithChildren.cs
...ore/Portable/Execution/Serializer_ChecksumWithChildren.cs
+13
-13
src/Workspaces/Core/Portable/Execution/SolutionAsset.cs
src/Workspaces/Core/Portable/Execution/SolutionAsset.cs
+2
-2
src/Workspaces/Core/Portable/Execution/WellKnownSynchronizationKind.cs
...s/Core/Portable/Execution/WellKnownSynchronizationKind.cs
+1
-1
src/Workspaces/Core/Portable/FindSymbols/SymbolTree/SymbolTreeInfo_Source.cs
.../Portable/FindSymbols/SymbolTree/SymbolTreeInfo_Source.cs
+1
-1
src/Workspaces/Core/Portable/FindSymbols/SyntaxTree/SyntaxTreeIndex_Persistence.cs
...ble/FindSymbols/SyntaxTree/SyntaxTreeIndex_Persistence.cs
+1
-1
src/Workspaces/Core/Portable/Workspace/Solution/ChecksumCollection.cs
...es/Core/Portable/Workspace/Solution/ChecksumCollection.cs
+8
-8
src/Workspaces/Core/Portable/Workspace/Solution/ChecksumWithChildren.cs
.../Core/Portable/Workspace/Solution/ChecksumWithChildren.cs
+2
-2
src/Workspaces/Core/Portable/Workspace/Solution/Checksum_Factory.cs
...aces/Core/Portable/Workspace/Solution/Checksum_Factory.cs
+4
-4
src/Workspaces/Core/Portable/Workspace/Solution/DocumentInfo.cs
...rkspaces/Core/Portable/Workspace/Solution/DocumentInfo.cs
+1
-1
src/Workspaces/Core/Portable/Workspace/Solution/ProjectInfo.cs
...orkspaces/Core/Portable/Workspace/Solution/ProjectInfo.cs
+1
-1
src/Workspaces/Core/Portable/Workspace/Solution/SolutionInfo.cs
...rkspaces/Core/Portable/Workspace/Solution/SolutionInfo.cs
+1
-1
src/Workspaces/Core/Portable/Workspace/Solution/StateChecksums.cs
...spaces/Core/Portable/Workspace/Solution/StateChecksums.cs
+3
-3
src/Workspaces/Core/Portable/Workspaces.csproj
src/Workspaces/Core/Portable/Workspaces.csproj
+1
-1
src/Workspaces/CoreTest/Execution/SnapshotSerializationTestBase.cs
...paces/CoreTest/Execution/SnapshotSerializationTestBase.cs
+22
-22
src/Workspaces/CoreTest/Execution/SnapshotSerializationTests.cs
...rkspaces/CoreTest/Execution/SnapshotSerializationTests.cs
+6
-6
src/Workspaces/Remote/Core/Services/AssetService.cs
src/Workspaces/Remote/Core/Services/AssetService.cs
+1
-1
src/Workspaces/Remote/ServiceHub/Services/SnapshotService.JsonRpcAssetSource.cs
...ServiceHub/Services/SnapshotService.JsonRpcAssetSource.cs
+1
-1
未找到文件。
src/Workspaces/Core/Portable/Execution/CustomAsset.cs
浏览文件 @
3ffbbd83
...
...
@@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Execution
/// </summary>
internal
abstract
class
CustomAsset
:
RemotableData
{
public
CustomAsset
(
Checksum
checksum
,
WellKnownSynchronizationKind
s
kind
)
:
base
(
checksum
,
kind
)
public
CustomAsset
(
Checksum
checksum
,
WellKnownSynchronizationKind
kind
)
:
base
(
checksum
,
kind
)
{
}
}
...
...
@@ -26,7 +26,7 @@ internal sealed class SimpleCustomAsset : CustomAsset
{
private
readonly
Action
<
ObjectWriter
,
CancellationToken
>
_writer
;
public
SimpleCustomAsset
(
WellKnownSynchronizationKind
s
kind
,
Action
<
ObjectWriter
,
CancellationToken
>
writer
)
:
public
SimpleCustomAsset
(
WellKnownSynchronizationKind
kind
,
Action
<
ObjectWriter
,
CancellationToken
>
writer
)
:
base
(
CreateChecksumFromStreamWriter
(
kind
,
writer
),
kind
)
{
// unlike SolutionAsset which gets checksum from solution states, this one build one by itself.
...
...
@@ -39,7 +39,7 @@ public override Task WriteObjectToAsync(ObjectWriter writer, CancellationToken c
return
SpecializedTasks
.
EmptyTask
;
}
private
static
Checksum
CreateChecksumFromStreamWriter
(
WellKnownSynchronizationKind
s
kind
,
Action
<
ObjectWriter
,
CancellationToken
>
writer
)
private
static
Checksum
CreateChecksumFromStreamWriter
(
WellKnownSynchronizationKind
kind
,
Action
<
ObjectWriter
,
CancellationToken
>
writer
)
{
using
(
var
stream
=
SerializableBytes
.
CreateWritableStream
())
using
(
var
objectWriter
=
new
ObjectWriter
(
stream
))
...
...
@@ -68,7 +68,7 @@ internal sealed class WorkspaceAnalyzerReferenceAsset : CustomAsset
public
WorkspaceAnalyzerReferenceAsset
(
AnalyzerReference
reference
,
Serializer
serializer
)
:
base
(
serializer
.
CreateChecksum
(
reference
,
CancellationToken
.
None
),
WellKnownSynchronizationKind
s
.
AnalyzerReference
)
WellKnownSynchronizationKind
.
AnalyzerReference
)
{
_reference
=
reference
;
_serializer
=
serializer
;
...
...
src/Workspaces/Core/Portable/Execution/CustomAssetBuilder.cs
浏览文件 @
3ffbbd83
...
...
@@ -32,7 +32,7 @@ public CustomAsset Build(OptionSet options, string language, CancellationToken c
{
cancellationToken
.
ThrowIfCancellationRequested
();
return
new
SimpleCustomAsset
(
WellKnownSynchronizationKind
s
.
OptionSet
,
return
new
SimpleCustomAsset
(
WellKnownSynchronizationKind
.
OptionSet
,
(
writer
,
cancellationTokenOnStreamWriting
)
=>
_serializer
.
SerializeOptionSet
(
options
,
language
,
writer
,
cancellationTokenOnStreamWriting
));
}
...
...
src/Workspaces/Core/Portable/Execution/Extensions.cs
浏览文件 @
3ffbbd83
...
...
@@ -15,30 +15,30 @@ public static T[] ReadArray<T>(this ObjectReader reader)
return
(
T
[])
reader
.
ReadValue
();
}
public
static
WellKnownSynchronizationKind
s
GetWellKnownSynchronizationKind
(
this
object
value
)
public
static
WellKnownSynchronizationKind
GetWellKnownSynchronizationKind
(
this
object
value
)
{
switch
(
value
)
{
case
SolutionStateChecksums
_
:
return
WellKnownSynchronizationKind
s
.
SolutionState
;
case
ProjectStateChecksums
_
:
return
WellKnownSynchronizationKind
s
.
ProjectState
;
case
DocumentStateChecksums
_
:
return
WellKnownSynchronizationKind
s
.
DocumentState
;
case
ProjectChecksumCollection
_
:
return
WellKnownSynchronizationKind
s
.
Projects
;
case
DocumentChecksumCollection
_
:
return
WellKnownSynchronizationKind
s
.
Documents
;
case
TextDocumentChecksumCollection
_
:
return
WellKnownSynchronizationKind
s
.
TextDocuments
;
case
ProjectReferenceChecksumCollection
_
:
return
WellKnownSynchronizationKind
s
.
ProjectReferences
;
case
MetadataReferenceChecksumCollection
_
:
return
WellKnownSynchronizationKind
s
.
MetadataReferences
;
case
AnalyzerReferenceChecksumCollection
_
:
return
WellKnownSynchronizationKind
s
.
AnalyzerReferences
;
case
SolutionInfo
.
SolutionAttributes
_
:
return
WellKnownSynchronizationKind
s
.
SolutionAttributes
;
case
ProjectInfo
.
ProjectAttributes
_
:
return
WellKnownSynchronizationKind
s
.
ProjectAttributes
;
case
DocumentInfo
.
DocumentAttributes
_
:
return
WellKnownSynchronizationKind
s
.
DocumentAttributes
;
case
CompilationOptions
_
:
return
WellKnownSynchronizationKind
s
.
CompilationOptions
;
case
ParseOptions
_
:
return
WellKnownSynchronizationKind
s
.
ParseOptions
;
case
ProjectReference
_
:
return
WellKnownSynchronizationKind
s
.
ProjectReference
;
case
MetadataReference
_
:
return
WellKnownSynchronizationKind
s
.
MetadataReference
;
case
AnalyzerReference
_
:
return
WellKnownSynchronizationKind
s
.
AnalyzerReference
;
case
TextDocumentState
_
:
return
WellKnownSynchronizationKind
s
.
RecoverableSourceText
;
case
SourceText
_
:
return
WellKnownSynchronizationKind
s
.
SourceText
;
case
OptionSet
_
:
return
WellKnownSynchronizationKind
s
.
OptionSet
;
case
SolutionStateChecksums
_
:
return
WellKnownSynchronizationKind
.
SolutionState
;
case
ProjectStateChecksums
_
:
return
WellKnownSynchronizationKind
.
ProjectState
;
case
DocumentStateChecksums
_
:
return
WellKnownSynchronizationKind
.
DocumentState
;
case
ProjectChecksumCollection
_
:
return
WellKnownSynchronizationKind
.
Projects
;
case
DocumentChecksumCollection
_
:
return
WellKnownSynchronizationKind
.
Documents
;
case
TextDocumentChecksumCollection
_
:
return
WellKnownSynchronizationKind
.
TextDocuments
;
case
ProjectReferenceChecksumCollection
_
:
return
WellKnownSynchronizationKind
.
ProjectReferences
;
case
MetadataReferenceChecksumCollection
_
:
return
WellKnownSynchronizationKind
.
MetadataReferences
;
case
AnalyzerReferenceChecksumCollection
_
:
return
WellKnownSynchronizationKind
.
AnalyzerReferences
;
case
SolutionInfo
.
SolutionAttributes
_
:
return
WellKnownSynchronizationKind
.
SolutionAttributes
;
case
ProjectInfo
.
ProjectAttributes
_
:
return
WellKnownSynchronizationKind
.
ProjectAttributes
;
case
DocumentInfo
.
DocumentAttributes
_
:
return
WellKnownSynchronizationKind
.
DocumentAttributes
;
case
CompilationOptions
_
:
return
WellKnownSynchronizationKind
.
CompilationOptions
;
case
ParseOptions
_
:
return
WellKnownSynchronizationKind
.
ParseOptions
;
case
ProjectReference
_
:
return
WellKnownSynchronizationKind
.
ProjectReference
;
case
MetadataReference
_
:
return
WellKnownSynchronizationKind
.
MetadataReference
;
case
AnalyzerReference
_
:
return
WellKnownSynchronizationKind
.
AnalyzerReference
;
case
TextDocumentState
_
:
return
WellKnownSynchronizationKind
.
RecoverableSourceText
;
case
SourceText
_
:
return
WellKnownSynchronizationKind
.
SourceText
;
case
OptionSet
_
:
return
WellKnownSynchronizationKind
.
OptionSet
;
}
throw
ExceptionUtilities
.
UnexpectedValue
(
value
);
...
...
src/Workspaces/Core/Portable/Execution/RemotableData.cs
浏览文件 @
3ffbbd83
...
...
@@ -16,19 +16,19 @@ internal abstract partial class RemotableData
/// <summary>
/// Indicates what kind of object it is
/// <see cref="WellKnownSynchronizationKind
s
"/> for examples.
/// <see cref="WellKnownSynchronizationKind"/> for examples.
///
/// this will be used in tranportation framework and deserialization service
/// to hand shake how to send over data and deserialize serialized data
/// </summary>
public
readonly
WellKnownSynchronizationKind
s
Kind
;
public
readonly
WellKnownSynchronizationKind
Kind
;
/// <summary>
/// Checksum of this object
/// </summary>
public
readonly
Checksum
Checksum
;
public
RemotableData
(
Checksum
checksum
,
WellKnownSynchronizationKind
s
kind
)
public
RemotableData
(
Checksum
checksum
,
WellKnownSynchronizationKind
kind
)
{
Checksum
=
checksum
;
Kind
=
kind
;
...
...
@@ -47,7 +47,7 @@ public RemotableData(Checksum checksum, WellKnownSynchronizationKinds kind)
private
sealed
class
NullRemotableData
:
RemotableData
{
public
NullRemotableData
()
:
base
(
Checksum
.
Null
,
WellKnownSynchronizationKind
s
.
Null
)
base
(
Checksum
.
Null
,
WellKnownSynchronizationKind
.
Null
)
{
// null object has null kind and null checksum.
// this null object is known to checksum framework and transportation framework to handle null case
...
...
src/Workspaces/Core/Portable/Execution/Serializer.cs
浏览文件 @
3ffbbd83
...
...
@@ -63,21 +63,21 @@ public Checksum CreateChecksum(object value, CancellationToken cancellationToken
switch
(
kind
)
{
case
WellKnownSynchronizationKind
s
.
Null
:
case
WellKnownSynchronizationKind
.
Null
:
return
Checksum
.
Null
;
case
WellKnownSynchronizationKind
s
.
CompilationOptions
:
case
WellKnownSynchronizationKind
s
.
ParseOptions
:
case
WellKnownSynchronizationKind
s
.
ProjectReference
:
case
WellKnownSynchronizationKind
.
CompilationOptions
:
case
WellKnownSynchronizationKind
.
ParseOptions
:
case
WellKnownSynchronizationKind
.
ProjectReference
:
return
Checksum
.
Create
(
kind
,
value
,
this
);
case
WellKnownSynchronizationKind
s
.
MetadataReference
:
case
WellKnownSynchronizationKind
.
MetadataReference
:
return
Checksum
.
Create
(
kind
,
_hostSerializationService
.
CreateChecksum
((
MetadataReference
)
value
,
cancellationToken
));
case
WellKnownSynchronizationKind
s
.
AnalyzerReference
:
case
WellKnownSynchronizationKind
.
AnalyzerReference
:
return
Checksum
.
Create
(
kind
,
_hostSerializationService
.
CreateChecksum
((
AnalyzerReference
)
value
,
cancellationToken
));
case
WellKnownSynchronizationKind
s
.
SourceText
:
case
WellKnownSynchronizationKind
.
SourceText
:
return
Checksum
.
Create
(
kind
,
((
SourceText
)
value
).
GetChecksum
());
default
:
...
...
@@ -104,37 +104,37 @@ public void Serialize(object value, ObjectWriter writer, CancellationToken cance
switch
(
kind
)
{
case
WellKnownSynchronizationKind
s
.
Null
:
case
WellKnownSynchronizationKind
.
Null
:
// do nothing
return
;
case
WellKnownSynchronizationKind
s
.
SolutionAttributes
:
case
WellKnownSynchronizationKind
s
.
ProjectAttributes
:
case
WellKnownSynchronizationKind
s
.
DocumentAttributes
:
case
WellKnownSynchronizationKind
.
SolutionAttributes
:
case
WellKnownSynchronizationKind
.
ProjectAttributes
:
case
WellKnownSynchronizationKind
.
DocumentAttributes
:
((
IObjectWritable
)
value
).
WriteTo
(
writer
);
return
;
case
WellKnownSynchronizationKind
s
.
CompilationOptions
:
case
WellKnownSynchronizationKind
.
CompilationOptions
:
SerializeCompilationOptions
((
CompilationOptions
)
value
,
writer
,
cancellationToken
);
return
;
case
WellKnownSynchronizationKind
s
.
ParseOptions
:
case
WellKnownSynchronizationKind
.
ParseOptions
:
SerializeParseOptions
((
ParseOptions
)
value
,
writer
,
cancellationToken
);
return
;
case
WellKnownSynchronizationKind
s
.
ProjectReference
:
case
WellKnownSynchronizationKind
.
ProjectReference
:
SerializeProjectReference
((
ProjectReference
)
value
,
writer
,
cancellationToken
);
return
;
case
WellKnownSynchronizationKind
s
.
MetadataReference
:
case
WellKnownSynchronizationKind
.
MetadataReference
:
SerializeMetadataReference
((
MetadataReference
)
value
,
writer
,
cancellationToken
);
return
;
case
WellKnownSynchronizationKind
s
.
AnalyzerReference
:
case
WellKnownSynchronizationKind
.
AnalyzerReference
:
SerializeAnalyzerReference
((
AnalyzerReference
)
value
,
writer
,
usePathFromAssembly
:
true
,
cancellationToken
:
cancellationToken
);
return
;
case
WellKnownSynchronizationKind
s
.
SourceText
:
case
WellKnownSynchronizationKind
.
SourceText
:
SerializeSourceText
(
storage
:
null
,
text
:
(
SourceText
)
value
,
writer
:
writer
,
cancellationToken
:
cancellationToken
);
return
;
...
...
@@ -146,7 +146,7 @@ public void Serialize(object value, ObjectWriter writer, CancellationToken cance
}
}
public
T
Deserialize
<
T
>(
WellKnownSynchronizationKind
s
kind
,
ObjectReader
reader
,
CancellationToken
cancellationToken
)
public
T
Deserialize
<
T
>(
WellKnownSynchronizationKind
kind
,
ObjectReader
reader
,
CancellationToken
cancellationToken
)
{
using
(
Logger
.
LogBlock
(
FunctionId
.
Serializer_Deserialize
,
kind
.
ToString
(),
cancellationToken
))
{
...
...
@@ -154,39 +154,39 @@ public T Deserialize<T>(WellKnownSynchronizationKinds kind, ObjectReader reader,
switch
(
kind
)
{
case
WellKnownSynchronizationKind
s
.
Null
:
case
WellKnownSynchronizationKind
.
Null
:
return
default
(
T
);
case
WellKnownSynchronizationKind
s
.
SolutionState
:
case
WellKnownSynchronizationKind
s
.
ProjectState
:
case
WellKnownSynchronizationKind
s
.
DocumentState
:
case
WellKnownSynchronizationKind
s
.
Projects
:
case
WellKnownSynchronizationKind
s
.
Documents
:
case
WellKnownSynchronizationKind
s
.
TextDocuments
:
case
WellKnownSynchronizationKind
s
.
ProjectReferences
:
case
WellKnownSynchronizationKind
s
.
MetadataReferences
:
case
WellKnownSynchronizationKind
s
.
AnalyzerReferences
:
case
WellKnownSynchronizationKind
.
SolutionState
:
case
WellKnownSynchronizationKind
.
ProjectState
:
case
WellKnownSynchronizationKind
.
DocumentState
:
case
WellKnownSynchronizationKind
.
Projects
:
case
WellKnownSynchronizationKind
.
Documents
:
case
WellKnownSynchronizationKind
.
TextDocuments
:
case
WellKnownSynchronizationKind
.
ProjectReferences
:
case
WellKnownSynchronizationKind
.
MetadataReferences
:
case
WellKnownSynchronizationKind
.
AnalyzerReferences
:
return
(
T
)(
object
)
DeserializeChecksumWithChildren
(
reader
,
cancellationToken
);
case
WellKnownSynchronizationKind
s
.
SolutionAttributes
:
case
WellKnownSynchronizationKind
.
SolutionAttributes
:
return
(
T
)(
object
)
SolutionInfo
.
SolutionAttributes
.
ReadFrom
(
reader
);
case
WellKnownSynchronizationKind
s
.
ProjectAttributes
:
case
WellKnownSynchronizationKind
.
ProjectAttributes
:
return
(
T
)(
object
)
ProjectInfo
.
ProjectAttributes
.
ReadFrom
(
reader
);
case
WellKnownSynchronizationKind
s
.
DocumentAttributes
:
case
WellKnownSynchronizationKind
.
DocumentAttributes
:
return
(
T
)(
object
)
DocumentInfo
.
DocumentAttributes
.
ReadFrom
(
reader
);
case
WellKnownSynchronizationKind
s
.
CompilationOptions
:
case
WellKnownSynchronizationKind
.
CompilationOptions
:
return
(
T
)(
object
)
DeserializeCompilationOptions
(
reader
,
cancellationToken
);
case
WellKnownSynchronizationKind
s
.
ParseOptions
:
case
WellKnownSynchronizationKind
.
ParseOptions
:
return
(
T
)(
object
)
DeserializeParseOptions
(
reader
,
cancellationToken
);
case
WellKnownSynchronizationKind
s
.
ProjectReference
:
case
WellKnownSynchronizationKind
.
ProjectReference
:
return
(
T
)(
object
)
DeserializeProjectReference
(
reader
,
cancellationToken
);
case
WellKnownSynchronizationKind
s
.
MetadataReference
:
case
WellKnownSynchronizationKind
.
MetadataReference
:
return
(
T
)(
object
)
DeserializeMetadataReference
(
reader
,
cancellationToken
);
case
WellKnownSynchronizationKind
s
.
AnalyzerReference
:
case
WellKnownSynchronizationKind
.
AnalyzerReference
:
return
(
T
)(
object
)
DeserializeAnalyzerReference
(
reader
,
cancellationToken
);
case
WellKnownSynchronizationKind
s
.
SourceText
:
case
WellKnownSynchronizationKind
.
SourceText
:
return
(
T
)(
object
)
DeserializeSourceText
(
reader
,
cancellationToken
);
case
WellKnownSynchronizationKind
s
.
OptionSet
:
case
WellKnownSynchronizationKind
.
OptionSet
:
return
(
T
)(
object
)
DeserializeOptionSet
(
reader
,
cancellationToken
);
default
:
...
...
src/Workspaces/Core/Portable/Execution/Serializer_ChecksumWithChildren.cs
浏览文件 @
3ffbbd83
...
...
@@ -17,7 +17,7 @@ internal partial class Serializer
private
const
byte
ChecksumKind
=
0
;
private
const
byte
ChecksumWithChildrenKind
=
1
;
private
static
readonly
ImmutableDictionary
<
WellKnownSynchronizationKind
s
,
Func
<
object
[],
ChecksumWithChildren
>>
s_creatorMap
=
CreateCreatorMap
();
private
static
readonly
ImmutableDictionary
<
WellKnownSynchronizationKind
,
Func
<
object
[],
ChecksumWithChildren
>>
s_creatorMap
=
CreateCreatorMap
();
public
void
SerializeChecksumWithChildren
(
ChecksumWithChildren
checksums
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
)
{
...
...
@@ -54,7 +54,7 @@ private ChecksumWithChildren DeserializeChecksumWithChildren(ObjectReader reader
{
cancellationToken
.
ThrowIfCancellationRequested
();
var
kind
=
(
WellKnownSynchronizationKind
s
)
reader
.
ReadInt32
();
var
kind
=
(
WellKnownSynchronizationKind
)
reader
.
ReadInt32
();
var
checksum
=
Checksum
.
ReadFrom
(
reader
);
var
childrenCount
=
reader
.
ReadInt32
();
...
...
@@ -84,18 +84,18 @@ private ChecksumWithChildren DeserializeChecksumWithChildren(ObjectReader reader
return
checksums
;
}
private
static
ImmutableDictionary
<
WellKnownSynchronizationKind
s
,
Func
<
object
[],
ChecksumWithChildren
>>
CreateCreatorMap
()
private
static
ImmutableDictionary
<
WellKnownSynchronizationKind
,
Func
<
object
[],
ChecksumWithChildren
>>
CreateCreatorMap
()
{
return
ImmutableDictionary
<
WellKnownSynchronizationKind
s
,
Func
<
object
[],
ChecksumWithChildren
>>.
Empty
.
Add
(
WellKnownSynchronizationKind
s
.
SolutionState
,
children
=>
new
SolutionStateChecksums
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
ProjectState
,
children
=>
new
ProjectStateChecksums
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
DocumentState
,
children
=>
new
DocumentStateChecksums
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
Projects
,
children
=>
new
ProjectChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
Documents
,
children
=>
new
DocumentChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
TextDocuments
,
children
=>
new
TextDocumentChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
ProjectReferences
,
children
=>
new
ProjectReferenceChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
MetadataReferences
,
children
=>
new
MetadataReferenceChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
s
.
AnalyzerReferences
,
children
=>
new
AnalyzerReferenceChecksumCollection
(
children
));
return
ImmutableDictionary
<
WellKnownSynchronizationKind
,
Func
<
object
[],
ChecksumWithChildren
>>.
Empty
.
Add
(
WellKnownSynchronizationKind
.
SolutionState
,
children
=>
new
SolutionStateChecksums
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
ProjectState
,
children
=>
new
ProjectStateChecksums
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
DocumentState
,
children
=>
new
DocumentStateChecksums
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
Projects
,
children
=>
new
ProjectChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
Documents
,
children
=>
new
DocumentChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
TextDocuments
,
children
=>
new
TextDocumentChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
ProjectReferences
,
children
=>
new
ProjectReferenceChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
MetadataReferences
,
children
=>
new
MetadataReferenceChecksumCollection
(
children
))
.
Add
(
WellKnownSynchronizationKind
.
AnalyzerReferences
,
children
=>
new
AnalyzerReferenceChecksumCollection
(
children
));
}
}
}
src/Workspaces/Core/Portable/Execution/SolutionAsset.cs
浏览文件 @
3ffbbd83
...
...
@@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Execution
/// </summary>
internal
abstract
class
SolutionAsset
:
RemotableData
{
protected
SolutionAsset
(
Checksum
checksum
,
WellKnownSynchronizationKind
s
kind
)
protected
SolutionAsset
(
Checksum
checksum
,
WellKnownSynchronizationKind
kind
)
:
base
(
checksum
,
kind
)
{
}
...
...
@@ -64,7 +64,7 @@ internal sealed class SourceTextAsset : SolutionAsset
private
readonly
Serializer
_serializer
;
public
SourceTextAsset
(
Checksum
checksum
,
TextDocumentState
state
,
Serializer
serializer
)
:
base
(
checksum
,
WellKnownSynchronizationKind
s
.
SourceText
)
base
(
checksum
,
WellKnownSynchronizationKind
.
SourceText
)
{
_state
=
state
;
_serializer
=
serializer
;
...
...
src/Workspaces/Core/Portable/Execution/WellKnownSynchronizationKind
s
.cs
→
src/Workspaces/Core/Portable/Execution/WellKnownSynchronizationKind.cs
浏览文件 @
3ffbbd83
...
...
@@ -3,7 +3,7 @@
namespace
Microsoft.CodeAnalysis.Serialization
{
// TODO: Kind might not actually needed. see whether we can get rid of this
internal
enum
WellKnownSynchronizationKind
s
internal
enum
WellKnownSynchronizationKind
{
Null
,
...
...
src/Workspaces/Core/Portable/FindSymbols/SymbolTree/SymbolTreeInfo_Source.cs
浏览文件 @
3ffbbd83
...
...
@@ -66,7 +66,7 @@ public static async Task<Checksum> GetSourceSymbolsChecksumAsync(Project project
allChecksums
.
Add
(
compilationOptionsChecksum
);
allChecksums
.
Add
(
parseOptionsChecksum
);
var
checksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
s
.
SymbolTreeInfo
,
allChecksums
);
var
checksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
.
SymbolTreeInfo
,
allChecksums
);
return
checksum
;
}
finally
...
...
src/Workspaces/Core/Portable/FindSymbols/SyntaxTree/SyntaxTreeIndex_Persistence.cs
浏览文件 @
3ffbbd83
...
...
@@ -89,7 +89,7 @@ private void WriteFormatAndChecksum(ObjectWriter writer, string formatVersion)
var
parseOptionsChecksum
=
ChecksumCache
.
GetOrCreate
(
parseOptions
,
_
=>
serializer
.
CreateChecksum
(
parseOptions
,
cancellationToken
));
return
Checksum
.
Create
(
WellKnownSynchronizationKind
s
.
SyntaxTreeIndex
,
new
[]
{
textChecksum
,
parseOptionsChecksum
});
return
Checksum
.
Create
(
WellKnownSynchronizationKind
.
SyntaxTreeIndex
,
new
[]
{
textChecksum
,
parseOptionsChecksum
});
}
private
async
Task
<
bool
>
SaveAsync
(
...
...
src/Workspaces/Core/Portable/Workspace/Solution/ChecksumCollection.cs
浏览文件 @
3ffbbd83
...
...
@@ -12,11 +12,11 @@ namespace Microsoft.CodeAnalysis.Serialization
/// </summary>
internal
abstract
class
ChecksumCollection
:
ChecksumWithChildren
,
IEnumerable
<
Checksum
>
{
protected
ChecksumCollection
(
WellKnownSynchronizationKind
s
kind
,
Checksum
[]
checksums
)
:
this
(
kind
,
(
object
[])
checksums
)
protected
ChecksumCollection
(
WellKnownSynchronizationKind
kind
,
Checksum
[]
checksums
)
:
this
(
kind
,
(
object
[])
checksums
)
{
}
protected
ChecksumCollection
(
WellKnownSynchronizationKind
s
kind
,
object
[]
checksums
)
:
base
(
kind
,
checksums
)
protected
ChecksumCollection
(
WellKnownSynchronizationKind
kind
,
object
[]
checksums
)
:
base
(
kind
,
checksums
)
{
}
...
...
@@ -38,36 +38,36 @@ IEnumerator IEnumerable.GetEnumerator()
internal
class
ProjectChecksumCollection
:
ChecksumCollection
{
public
ProjectChecksumCollection
(
Checksum
[]
checksums
)
:
this
((
object
[])
checksums
)
{
}
public
ProjectChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
s
.
ProjectChecksumCollection
,
checksums
)
{
}
public
ProjectChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
.
ProjectChecksumCollection
,
checksums
)
{
}
}
internal
class
DocumentChecksumCollection
:
ChecksumCollection
{
public
DocumentChecksumCollection
(
Checksum
[]
checksums
)
:
this
((
object
[])
checksums
)
{
}
public
DocumentChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
s
.
DocumentChecksumCollection
,
checksums
)
{
}
public
DocumentChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
.
DocumentChecksumCollection
,
checksums
)
{
}
}
internal
class
TextDocumentChecksumCollection
:
ChecksumCollection
{
public
TextDocumentChecksumCollection
(
Checksum
[]
checksums
)
:
this
((
object
[])
checksums
)
{
}
public
TextDocumentChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
s
.
TextDocumentChecksumCollection
,
checksums
)
{
}
public
TextDocumentChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
.
TextDocumentChecksumCollection
,
checksums
)
{
}
}
internal
class
ProjectReferenceChecksumCollection
:
ChecksumCollection
{
public
ProjectReferenceChecksumCollection
(
Checksum
[]
checksums
)
:
this
((
object
[])
checksums
)
{
}
public
ProjectReferenceChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
s
.
ProjectReferenceChecksumCollection
,
checksums
)
{
}
public
ProjectReferenceChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
.
ProjectReferenceChecksumCollection
,
checksums
)
{
}
}
internal
class
MetadataReferenceChecksumCollection
:
ChecksumCollection
{
public
MetadataReferenceChecksumCollection
(
Checksum
[]
checksums
)
:
this
((
object
[])
checksums
)
{
}
public
MetadataReferenceChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
s
.
MetadataReferenceChecksumCollection
,
checksums
)
{
}
public
MetadataReferenceChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
.
MetadataReferenceChecksumCollection
,
checksums
)
{
}
}
internal
class
AnalyzerReferenceChecksumCollection
:
ChecksumCollection
{
public
AnalyzerReferenceChecksumCollection
(
Checksum
[]
checksums
)
:
this
((
object
[])
checksums
)
{
}
public
AnalyzerReferenceChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
s
.
AnalyzerReferenceChecksumCollection
,
checksums
)
{
}
public
AnalyzerReferenceChecksumCollection
(
object
[]
checksums
)
:
base
(
WellKnownSynchronizationKind
.
AnalyzerReferenceChecksumCollection
,
checksums
)
{
}
}
}
src/Workspaces/Core/Portable/Workspace/Solution/ChecksumWithChildren.cs
浏览文件 @
3ffbbd83
...
...
@@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Serialization
/// </summary>
internal
abstract
class
ChecksumWithChildren
:
IChecksummedObject
{
public
ChecksumWithChildren
(
WellKnownSynchronizationKind
s
kind
,
params
object
[]
children
)
public
ChecksumWithChildren
(
WellKnownSynchronizationKind
kind
,
params
object
[]
children
)
{
Checksum
=
CreateChecksum
(
kind
,
children
);
Children
=
children
;
...
...
@@ -20,7 +20,7 @@ public ChecksumWithChildren(WellKnownSynchronizationKinds kind, params object[]
public
IReadOnlyList
<
object
>
Children
{
get
;
}
private
static
Checksum
CreateChecksum
(
WellKnownSynchronizationKind
s
kind
,
object
[]
children
)
private
static
Checksum
CreateChecksum
(
WellKnownSynchronizationKind
kind
,
object
[]
children
)
{
// given children must be either Checksum or Checksums (collection of a checksum)
return
Checksum
.
Create
(
kind
,
children
.
Select
(
c
=>
c
as
Checksum
??
((
ChecksumCollection
)
c
).
Checksum
));
...
...
src/Workspaces/Core/Portable/Workspace/Solution/Checksum_Factory.cs
浏览文件 @
3ffbbd83
...
...
@@ -24,7 +24,7 @@ public static Checksum Create(Stream stream)
}
}
public
static
Checksum
Create
(
WellKnownSynchronizationKind
s
kind
,
IObjectWritable
@object
)
public
static
Checksum
Create
(
WellKnownSynchronizationKind
kind
,
IObjectWritable
@object
)
{
using
(
var
stream
=
SerializableBytes
.
CreateWritableStream
())
using
(
var
objectWriter
=
new
ObjectWriter
(
stream
))
...
...
@@ -36,7 +36,7 @@ public static Checksum Create(WellKnownSynchronizationKinds kind, IObjectWritabl
}
}
public
static
Checksum
Create
(
WellKnownSynchronizationKind
s
kind
,
IEnumerable
<
Checksum
>
checksums
)
public
static
Checksum
Create
(
WellKnownSynchronizationKind
kind
,
IEnumerable
<
Checksum
>
checksums
)
{
using
(
var
stream
=
SerializableBytes
.
CreateWritableStream
())
using
(
var
writer
=
new
ObjectWriter
(
stream
))
...
...
@@ -52,7 +52,7 @@ public static Checksum Create(WellKnownSynchronizationKinds kind, IEnumerable<Ch
}
}
public
static
Checksum
Create
(
WellKnownSynchronizationKind
s
kind
,
ImmutableArray
<
byte
>
bytes
)
public
static
Checksum
Create
(
WellKnownSynchronizationKind
kind
,
ImmutableArray
<
byte
>
bytes
)
{
using
(
var
stream
=
SerializableBytes
.
CreateWritableStream
())
using
(
var
writer
=
new
ObjectWriter
(
stream
))
...
...
@@ -68,7 +68,7 @@ public static Checksum Create(WellKnownSynchronizationKinds kind, ImmutableArray
}
}
public
static
Checksum
Create
<
T
>(
WellKnownSynchronizationKind
s
kind
,
T
value
,
Serializer
serializer
)
public
static
Checksum
Create
<
T
>(
WellKnownSynchronizationKind
kind
,
T
value
,
Serializer
serializer
)
{
using
(
var
stream
=
SerializableBytes
.
CreateWritableStream
())
using
(
var
objectWriter
=
new
ObjectWriter
(
stream
))
...
...
src/Workspaces/Core/Portable/Workspace/Solution/DocumentInfo.cs
浏览文件 @
3ffbbd83
...
...
@@ -235,7 +235,7 @@ Checksum IChecksummedObject.Checksum
{
if
(
_lazyChecksum
==
null
)
{
_lazyChecksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
s
.
DocumentAttributes
,
this
);
_lazyChecksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
.
DocumentAttributes
,
this
);
}
return
_lazyChecksum
;
...
...
src/Workspaces/Core/Portable/Workspace/Solution/ProjectInfo.cs
浏览文件 @
3ffbbd83
...
...
@@ -475,7 +475,7 @@ Checksum IChecksummedObject.Checksum
{
if
(
_lazyChecksum
==
null
)
{
_lazyChecksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
s
.
ProjectAttributes
,
this
);
_lazyChecksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
.
ProjectAttributes
,
this
);
}
return
_lazyChecksum
;
...
...
src/Workspaces/Core/Portable/Workspace/Solution/SolutionInfo.cs
浏览文件 @
3ffbbd83
...
...
@@ -139,7 +139,7 @@ Checksum IChecksummedObject.Checksum
{
if
(
_lazyChecksum
==
null
)
{
_lazyChecksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
s
.
SolutionAttributes
,
this
);
_lazyChecksum
=
Checksum
.
Create
(
WellKnownSynchronizationKind
.
SolutionAttributes
,
this
);
}
return
_lazyChecksum
;
...
...
src/Workspaces/Core/Portable/Workspace/Solution/StateChecksums.cs
浏览文件 @
3ffbbd83
...
...
@@ -16,7 +16,7 @@ internal sealed class SolutionStateChecksums : ChecksumWithChildren
{
}
public
SolutionStateChecksums
(
params
object
[]
children
)
:
base
(
WellKnownSynchronizationKind
s
.
SolutionStateChecksums
,
children
)
public
SolutionStateChecksums
(
params
object
[]
children
)
:
base
(
WellKnownSynchronizationKind
.
SolutionStateChecksums
,
children
)
{
}
...
...
@@ -94,7 +94,7 @@ internal class ProjectStateChecksums : ChecksumWithChildren
{
}
public
ProjectStateChecksums
(
params
object
[]
children
)
:
base
(
WellKnownSynchronizationKind
s
.
ProjectStateChecksums
,
children
)
public
ProjectStateChecksums
(
params
object
[]
children
)
:
base
(
WellKnownSynchronizationKind
.
ProjectStateChecksums
,
children
)
{
}
...
...
@@ -228,7 +228,7 @@ internal class DocumentStateChecksums : ChecksumWithChildren
{
}
public
DocumentStateChecksums
(
params
object
[]
children
)
:
base
(
WellKnownSynchronizationKind
s
.
DocumentStateChecksums
,
children
)
public
DocumentStateChecksums
(
params
object
[]
children
)
:
base
(
WellKnownSynchronizationKind
.
DocumentStateChecksums
,
children
)
{
}
...
...
src/Workspaces/Core/Portable/Workspaces.csproj
浏览文件 @
3ffbbd83
...
...
@@ -368,7 +368,7 @@
<Compile
Include=
"Execution\CustomAsset.cs"
/>
<Compile
Include=
"Execution\CustomAssetBuilder.cs"
/>
<Compile
Include=
"Execution\SolutionAsset.cs"
/>
<Compile
Include=
"Execution\WellKnownSynchronizationKind
s
.cs"
/>
<Compile
Include=
"Execution\WellKnownSynchronizationKind.cs"
/>
<Compile
Include=
"Experiments\IExperimentationService.cs"
/>
<Compile
Include=
"FindSymbols\Declarations\DeclarationFinder.cs"
/>
<Compile
Include=
"FindSymbols\Declarations\DeclarationFinder_AllDeclarations.cs"
/>
...
...
src/Workspaces/CoreTest/Execution/SnapshotSerializationTestBase.cs
浏览文件 @
3ffbbd83
...
...
@@ -39,7 +39,7 @@ internal static Solution CreateFullSolution(HostServices hostServices = null)
internal
static
async
Task
VerifyAssetAsync
(
ISolutionSynchronizationService
service
,
SolutionStateChecksums
solutionObject
)
{
await
VerifyAssetSerializationAsync
<
SolutionInfo
.
SolutionAttributes
>(
service
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
s
.
SolutionAttributes
,
service
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
.
SolutionAttributes
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
)).
ConfigureAwait
(
false
);
foreach
(
var
projectChecksum
in
solutionObject
.
Projects
)
...
...
@@ -52,15 +52,15 @@ internal static async Task VerifyAssetAsync(ISolutionSynchronizationService serv
internal
static
async
Task
VerifyAssetAsync
(
ISolutionSynchronizationService
service
,
ProjectStateChecksums
projectObject
)
{
var
info
=
await
VerifyAssetSerializationAsync
<
ProjectInfo
.
ProjectAttributes
>(
service
,
projectObject
.
Info
,
WellKnownSynchronizationKind
s
.
ProjectAttributes
,
service
,
projectObject
.
Info
,
WellKnownSynchronizationKind
.
ProjectAttributes
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
)).
ConfigureAwait
(
false
);
await
VerifyAssetSerializationAsync
<
CompilationOptions
>(
service
,
projectObject
.
CompilationOptions
,
WellKnownSynchronizationKind
s
.
CompilationOptions
,
service
,
projectObject
.
CompilationOptions
,
WellKnownSynchronizationKind
.
CompilationOptions
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
));
await
VerifyAssetSerializationAsync
<
ParseOptions
>(
service
,
projectObject
.
ParseOptions
,
WellKnownSynchronizationKind
s
.
ParseOptions
,
service
,
projectObject
.
ParseOptions
,
WellKnownSynchronizationKind
.
ParseOptions
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
));
foreach
(
var
checksum
in
projectObject
.
Documents
)
...
...
@@ -72,21 +72,21 @@ internal static async Task VerifyAssetAsync(ISolutionSynchronizationService serv
foreach
(
var
checksum
in
projectObject
.
ProjectReferences
)
{
await
VerifyAssetSerializationAsync
<
ProjectReference
>(
service
,
checksum
,
WellKnownSynchronizationKind
s
.
ProjectReference
,
service
,
checksum
,
WellKnownSynchronizationKind
.
ProjectReference
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
));
}
foreach
(
var
checksum
in
projectObject
.
MetadataReferences
)
{
await
VerifyAssetSerializationAsync
<
MetadataReference
>(
service
,
checksum
,
WellKnownSynchronizationKind
s
.
MetadataReference
,
service
,
checksum
,
WellKnownSynchronizationKind
.
MetadataReference
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
));
}
foreach
(
var
checksum
in
projectObject
.
AnalyzerReferences
)
{
await
VerifyAssetSerializationAsync
<
AnalyzerReference
>(
service
,
checksum
,
WellKnownSynchronizationKind
s
.
AnalyzerReference
,
service
,
checksum
,
WellKnownSynchronizationKind
.
AnalyzerReference
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
));
}
...
...
@@ -100,19 +100,19 @@ internal static async Task VerifyAssetAsync(ISolutionSynchronizationService serv
internal
static
async
Task
VerifyAssetAsync
(
ISolutionSynchronizationService
service
,
DocumentStateChecksums
documentObject
)
{
var
info
=
await
VerifyAssetSerializationAsync
<
DocumentInfo
.
DocumentAttributes
>(
service
,
documentObject
.
Info
,
WellKnownSynchronizationKind
s
.
DocumentAttributes
,
service
,
documentObject
.
Info
,
WellKnownSynchronizationKind
.
DocumentAttributes
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
)).
ConfigureAwait
(
false
);
await
VerifyAssetSerializationAsync
<
SourceText
>(
service
,
documentObject
.
Text
,
WellKnownSynchronizationKind
s
.
SourceText
,
service
,
documentObject
.
Text
,
WellKnownSynchronizationKind
.
SourceText
,
(
v
,
k
,
s
)
=>
SolutionAsset
.
Create
(
s
.
CreateChecksum
(
v
,
CancellationToken
.
None
),
v
,
s
));
}
internal
static
async
Task
<
T
>
VerifyAssetSerializationAsync
<
T
>(
ISolutionSynchronizationService
service
,
Checksum
checksum
,
WellKnownSynchronizationKind
s
kind
,
Func
<
T
,
WellKnownSynchronizationKind
s
,
Serializer
,
RemotableData
>
assetGetter
)
WellKnownSynchronizationKind
kind
,
Func
<
T
,
WellKnownSynchronizationKind
,
Serializer
,
RemotableData
>
assetGetter
)
{
// re-create asset from object
var
syncService
=
(
SolutionSynchronizationServiceFactory
.
Service
)
service
;
...
...
@@ -206,20 +206,20 @@ internal static void ChecksumWithChildrenEqual(ChecksumWithChildren checksums1,
int
expectedAdditionalDocumentCount
)
{
VerifyChecksumInService
(
snapshotService
,
projectObject
.
Checksum
,
projectObject
.
GetWellKnownSynchronizationKind
());
VerifyChecksumInService
(
snapshotService
,
projectObject
.
Info
,
WellKnownSynchronizationKind
s
.
ProjectAttributes
);
VerifyChecksumInService
(
snapshotService
,
projectObject
.
CompilationOptions
,
WellKnownSynchronizationKind
s
.
CompilationOptions
);
VerifyChecksumInService
(
snapshotService
,
projectObject
.
ParseOptions
,
WellKnownSynchronizationKind
s
.
ParseOptions
);
VerifyChecksumInService
(
snapshotService
,
projectObject
.
Info
,
WellKnownSynchronizationKind
.
ProjectAttributes
);
VerifyChecksumInService
(
snapshotService
,
projectObject
.
CompilationOptions
,
WellKnownSynchronizationKind
.
CompilationOptions
);
VerifyChecksumInService
(
snapshotService
,
projectObject
.
ParseOptions
,
WellKnownSynchronizationKind
.
ParseOptions
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
Documents
.
ToDocumentObjects
(
snapshotService
),
expectedDocumentCount
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
ProjectReferences
,
expectedProjectReferenceCount
,
WellKnownSynchronizationKind
s
.
ProjectReference
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
MetadataReferences
,
expectedMetadataReferenceCount
,
WellKnownSynchronizationKind
s
.
MetadataReference
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
AnalyzerReferences
,
expectedAnalyzerReferenceCount
,
WellKnownSynchronizationKind
s
.
AnalyzerReference
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
ProjectReferences
,
expectedProjectReferenceCount
,
WellKnownSynchronizationKind
.
ProjectReference
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
MetadataReferences
,
expectedMetadataReferenceCount
,
WellKnownSynchronizationKind
.
MetadataReference
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
AnalyzerReferences
,
expectedAnalyzerReferenceCount
,
WellKnownSynchronizationKind
.
AnalyzerReference
);
VerifyCollectionInService
(
snapshotService
,
projectObject
.
AdditionalDocuments
.
ToDocumentObjects
(
snapshotService
),
expectedAdditionalDocumentCount
);
}
internal
static
void
VerifyCollectionInService
(
ISolutionSynchronizationService
snapshotService
,
ChecksumCollection
checksums
,
int
expectedCount
,
WellKnownSynchronizationKind
s
expectedItemKind
)
internal
static
void
VerifyCollectionInService
(
ISolutionSynchronizationService
snapshotService
,
ChecksumCollection
checksums
,
int
expectedCount
,
WellKnownSynchronizationKind
expectedItemKind
)
{
VerifyChecksumInService
(
snapshotService
,
checksums
.
Checksum
,
checksums
.
GetWellKnownSynchronizationKind
());
Assert
.
Equal
(
checksums
.
Count
,
expectedCount
);
...
...
@@ -244,8 +244,8 @@ internal static void VerifyCollectionInService(ISolutionSynchronizationService s
internal
static
void
VerifySnapshotInService
(
ISolutionSynchronizationService
snapshotService
,
DocumentStateChecksums
documentObject
)
{
VerifyChecksumInService
(
snapshotService
,
documentObject
.
Checksum
,
documentObject
.
GetWellKnownSynchronizationKind
());
VerifyChecksumInService
(
snapshotService
,
documentObject
.
Info
,
WellKnownSynchronizationKind
s
.
DocumentAttributes
);
VerifyChecksumInService
(
snapshotService
,
documentObject
.
Text
,
WellKnownSynchronizationKind
s
.
SourceText
);
VerifyChecksumInService
(
snapshotService
,
documentObject
.
Info
,
WellKnownSynchronizationKind
.
DocumentAttributes
);
VerifyChecksumInService
(
snapshotService
,
documentObject
.
Text
,
WellKnownSynchronizationKind
.
SourceText
);
}
internal
static
void
VerifySynchronizationObjectInService
<
T
>(
ISolutionSynchronizationService
snapshotService
,
T
syncObject
)
where
T
:
RemotableData
...
...
@@ -253,7 +253,7 @@ internal static void VerifySnapshotInService(ISolutionSynchronizationService sna
VerifyChecksumInService
(
snapshotService
,
syncObject
.
Checksum
,
syncObject
.
Kind
);
}
internal
static
void
VerifyChecksumInService
(
ISolutionSynchronizationService
snapshotService
,
Checksum
checksum
,
WellKnownSynchronizationKind
s
kind
)
internal
static
void
VerifyChecksumInService
(
ISolutionSynchronizationService
snapshotService
,
Checksum
checksum
,
WellKnownSynchronizationKind
kind
)
{
Assert
.
NotNull
(
checksum
);
var
otherObject
=
snapshotService
.
GetRemotableData
(
checksum
,
CancellationToken
.
None
);
...
...
@@ -266,7 +266,7 @@ internal static void VerifyChecksumInService(ISolutionSynchronizationService sna
ChecksumEqual
(
checksumObject1
.
Checksum
,
checksumObject1
.
Kind
,
checksumObject2
.
Checksum
,
checksumObject2
.
Kind
);
}
internal
static
void
ChecksumEqual
(
Checksum
checksum1
,
WellKnownSynchronizationKind
s
kind1
,
Checksum
checksum2
,
WellKnownSynchronizationKinds
kind2
)
internal
static
void
ChecksumEqual
(
Checksum
checksum1
,
WellKnownSynchronizationKind
kind1
,
Checksum
checksum2
,
WellKnownSynchronizationKind
kind2
)
{
Assert
.
Equal
(
checksum1
,
checksum2
);
Assert
.
Equal
(
kind1
,
kind2
);
...
...
src/Workspaces/CoreTest/Execution/SnapshotSerializationTests.cs
浏览文件 @
3ffbbd83
...
...
@@ -42,7 +42,7 @@ public async Task CreateSolutionSnapshotId_Empty()
VerifySynchronizationObjectInService
(
snapshotService
,
solutionSyncObject
);
var
solutionObject
=
await
snapshotService
.
GetValueAsync
<
SolutionStateChecksums
>(
checksum
).
ConfigureAwait
(
false
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
s
.
SolutionAttributes
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
.
SolutionAttributes
);
var
projectsSyncObject
=
snapshotService
.
GetRemotableData
(
solutionObject
.
Projects
.
Checksum
,
CancellationToken
.
None
);
VerifySynchronizationObjectInService
(
snapshotService
,
projectsSyncObject
);
...
...
@@ -78,7 +78,7 @@ public async Task CreateSolutionSnapshotId_Project()
var
solutionObject
=
await
snapshotService
.
GetValueAsync
<
SolutionStateChecksums
>(
checksum
).
ConfigureAwait
(
false
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
s
.
SolutionAttributes
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
.
SolutionAttributes
);
var
projectSyncObject
=
snapshotService
.
GetRemotableData
(
solutionObject
.
Projects
.
Checksum
,
CancellationToken
.
None
);
VerifySynchronizationObjectInService
(
snapshotService
,
projectSyncObject
);
...
...
@@ -114,8 +114,8 @@ public async Task CreateSolutionSnapshotId()
var
solutionObject
=
await
snapshotService
.
GetValueAsync
<
SolutionStateChecksums
>(
syncObject
.
Checksum
).
ConfigureAwait
(
false
);
VerifySynchronizationObjectInService
(
snapshotService
,
syncObject
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
s
.
SolutionAttributes
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Projects
.
Checksum
,
WellKnownSynchronizationKind
s
.
Projects
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
.
SolutionAttributes
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Projects
.
Checksum
,
WellKnownSynchronizationKind
.
Projects
);
Assert
.
Equal
(
solutionObject
.
Projects
.
Count
,
1
);
VerifySnapshotInService
(
snapshotService
,
solutionObject
.
Projects
.
ToProjectObjects
(
snapshotService
)[
0
],
1
,
0
,
0
,
0
,
0
);
...
...
@@ -151,8 +151,8 @@ public async Task CreateSolutionSnapshotId_Full()
var
solutionObject
=
await
snapshotService
.
GetValueAsync
<
SolutionStateChecksums
>(
syncObject
.
Checksum
).
ConfigureAwait
(
false
);
VerifySynchronizationObjectInService
(
snapshotService
,
syncObject
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
s
.
SolutionAttributes
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Projects
.
Checksum
,
WellKnownSynchronizationKind
s
.
Projects
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Info
,
WellKnownSynchronizationKind
.
SolutionAttributes
);
VerifyChecksumInService
(
snapshotService
,
solutionObject
.
Projects
.
Checksum
,
WellKnownSynchronizationKind
.
Projects
);
Assert
.
Equal
(
solutionObject
.
Projects
.
Count
,
2
);
...
...
src/Workspaces/Remote/Core/Services/AssetService.cs
浏览文件 @
3ffbbd83
...
...
@@ -29,7 +29,7 @@ public AssetService(int sessionId, AssetStorage assetStorage)
_assetStorage
=
assetStorage
;
}
public
T
Deserialize
<
T
>(
WellKnownSynchronizationKind
s
kind
,
ObjectReader
reader
,
CancellationToken
cancellationToken
)
public
T
Deserialize
<
T
>(
WellKnownSynchronizationKind
kind
,
ObjectReader
reader
,
CancellationToken
cancellationToken
)
{
return
s_serializer
.
Deserialize
<
T
>(
kind
,
reader
,
cancellationToken
);
}
...
...
src/Workspaces/Remote/ServiceHub/Services/SnapshotService.JsonRpcAssetSource.cs
浏览文件 @
3ffbbd83
...
...
@@ -73,7 +73,7 @@ private class JsonRpcAssetSource : AssetSource
var
responseChecksum
=
Checksum
.
ReadFrom
(
reader
);
Contract
.
ThrowIfFalse
(
checksums
.
Contains
(
responseChecksum
));
var
kind
=
(
WellKnownSynchronizationKind
s
)
reader
.
ReadInt32
();
var
kind
=
(
WellKnownSynchronizationKind
)
reader
.
ReadInt32
();
// in service hub, cancellation means simply closed stream
var
@object
=
_owner
.
RoslynServices
.
AssetService
.
Deserialize
<
object
>(
kind
,
reader
,
cancellationToken
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录