Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
f31cb792
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,发现更多精彩内容 >>
提交
f31cb792
编写于
7月 14, 2016
作者:
C
CyrusNajmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support doc comments for symbols declared off an anonymous type.
上级
ee44aee1
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
175 addition
and
4 deletion
+175
-4
src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs
...ompilers/CSharp/Portable/Compilation/CSharpCompilation.cs
+14
-0
src/Compilers/Core/Portable/Compilation/Compilation.cs
src/Compilers/Core/Portable/Compilation/Compilation.cs
+25
-0
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
+2
-1
src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb
...isualBasic/Portable/Compilation/VisualBasicCompilation.vb
+18
-0
src/Compilers/VisualBasic/Portable/Symbols/AnonymousTypes/AnonymousTypeDescriptor.vb
...ortable/Symbols/AnonymousTypes/AnonymousTypeDescriptor.vb
+3
-3
src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb
...Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb
+24
-0
src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests.vb
.../IntelliSense/VisualBasicCompletionCommandHandlerTests.vb
+23
-0
src/Workspaces/Core/Portable/SymbolId/SymbolKey.AnonymousTypeSymbolKey.cs
...ore/Portable/SymbolId/SymbolKey.AnonymousTypeSymbolKey.cs
+57
-0
src/Workspaces/Core/Portable/SymbolId/SymbolKey.SymbolKeyReader.cs
...paces/Core/Portable/SymbolId/SymbolKey.SymbolKeyReader.cs
+2
-0
src/Workspaces/Core/Portable/SymbolId/SymbolKey.SymbolKeyWriter.cs
...paces/Core/Portable/SymbolId/SymbolKey.SymbolKeyWriter.cs
+6
-0
src/Workspaces/Core/Portable/Workspaces.csproj
src/Workspaces/Core/Portable/Workspaces.csproj
+1
-0
未找到文件。
src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs
浏览文件 @
f31cb792
...
@@ -2835,6 +2835,20 @@ protected override INamedTypeSymbol CommonCreateTupleTypeSymbol(INamedTypeSymbol
...
@@ -2835,6 +2835,20 @@ protected override INamedTypeSymbol CommonCreateTupleTypeSymbol(INamedTypeSymbol
return
TupleTypeSymbol
.
Create
(
csharpUnderlyingTuple
,
elementNames
);
return
TupleTypeSymbol
.
Create
(
csharpUnderlyingTuple
,
elementNames
);
}
}
protected
override
INamedTypeSymbol
CommonCreateAnonymousTypeSymbol
(
ImmutableArray
<
ITypeSymbol
>
memberTypes
,
ImmutableArray
<
string
>
memberNames
)
{
for
(
int
i
=
0
,
n
=
memberTypes
.
Length
;
i
<
n
;
i
++)
{
memberTypes
[
i
].
EnsureCSharpSymbolOrNull
<
ITypeSymbol
,
TypeSymbol
>(
$"
{
nameof
(
memberTypes
)}
[
{
i
}
]"
);
}
var
fields
=
memberTypes
.
Select
((
t
,
i
)
=>
new
AnonymousTypeField
(
memberNames
[
i
],
Location
.
None
,
(
TypeSymbol
)
t
)).
ToImmutableArray
();
var
descriptor
=
new
AnonymousTypeDescriptor
(
fields
,
Location
.
None
);
return
this
.
AnonymousTypeManager
.
ConstructAnonymousTypeSymbol
(
descriptor
);
}
protected
override
ITypeSymbol
CommonDynamicType
protected
override
ITypeSymbol
CommonDynamicType
{
{
get
{
return
DynamicType
;
}
get
{
return
DynamicType
;
}
...
...
src/Compilers/Core/Portable/Compilation/Compilation.cs
浏览文件 @
f31cb792
...
@@ -851,6 +851,31 @@ public INamedTypeSymbol CreateTupleTypeSymbol(INamedTypeSymbol underlyingType, I
...
@@ -851,6 +851,31 @@ public INamedTypeSymbol CreateTupleTypeSymbol(INamedTypeSymbol underlyingType, I
protected
abstract
INamedTypeSymbol
CommonCreateTupleTypeSymbol
(
INamedTypeSymbol
underlyingType
,
ImmutableArray
<
string
>
elementNames
);
protected
abstract
INamedTypeSymbol
CommonCreateTupleTypeSymbol
(
INamedTypeSymbol
underlyingType
,
ImmutableArray
<
string
>
elementNames
);
/// <summary>
/// Returns a new anonymous type symbol with the given member types member names.
/// </summary>
public
INamedTypeSymbol
CreateAnonymousTypeSymbol
(
ImmutableArray
<
ITypeSymbol
>
memberTypes
,
ImmutableArray
<
string
>
memberNames
)
{
if
(
memberTypes
.
Length
!=
memberNames
.
Length
)
{
throw
new
ArgumentException
(
$"
{
nameof
(
memberTypes
)}
and
{
nameof
(
memberNames
)}
must have the same length."
);
}
for
(
int
i
=
0
,
n
=
memberTypes
.
Length
;
i
<
n
;
i
++)
{
if
(
memberTypes
[
i
]
==
null
)
{
throw
new
ArgumentNullException
(
$"
{
nameof
(
memberTypes
)}
[
{
i
}
]"
);
}
}
return
CommonCreateAnonymousTypeSymbol
(
memberTypes
,
memberNames
);
}
protected
abstract
INamedTypeSymbol
CommonCreateAnonymousTypeSymbol
(
ImmutableArray
<
ITypeSymbol
>
memberTypes
,
ImmutableArray
<
string
>
memberNames
);
#
endregion
#
endregion
#
region
Diagnostics
#
region
Diagnostics
...
...
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
浏览文件 @
f31cb792
Microsoft.CodeAnalysis.Compilation.CreateAnonymousTypeSymbol(System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.ITypeSymbol> memberTypes, System.Collections.Immutable.ImmutableArray<string> memberNames) -> Microsoft.CodeAnalysis.INamedTypeSymbol
Microsoft.CodeAnalysis.Compilation.CreateTupleTypeSymbol(Microsoft.CodeAnalysis.INamedTypeSymbol underlyingType, System.Collections.Immutable.ImmutableArray<string> elementNames = default(System.Collections.Immutable.ImmutableArray<string>)) -> Microsoft.CodeAnalysis.INamedTypeSymbol
Microsoft.CodeAnalysis.Compilation.CreateTupleTypeSymbol(Microsoft.CodeAnalysis.INamedTypeSymbol underlyingType, System.Collections.Immutable.ImmutableArray<string> elementNames = default(System.Collections.Immutable.ImmutableArray<string>)) -> Microsoft.CodeAnalysis.INamedTypeSymbol
Microsoft.CodeAnalysis.Compilation.CreateTupleTypeSymbol(System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.ITypeSymbol> elementTypes, System.Collections.Immutable.ImmutableArray<string> elementNames = default(System.Collections.Immutable.ImmutableArray<string>)) -> Microsoft.CodeAnalysis.INamedTypeSymbol
Microsoft.CodeAnalysis.Compilation.CreateTupleTypeSymbol(System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.ITypeSymbol> elementTypes, System.Collections.Immutable.ImmutableArray<string> elementNames = default(System.Collections.Immutable.ImmutableArray<string>)) -> Microsoft.CodeAnalysis.INamedTypeSymbol
Microsoft.CodeAnalysis.Diagnostics.AnalysisContext.RegisterOperationAction(System.Action<Microsoft.CodeAnalysis.Diagnostics.OperationAnalysisContext> action, params Microsoft.CodeAnalysis.OperationKind[] operationKinds) -> void
Microsoft.CodeAnalysis.Diagnostics.AnalysisContext.RegisterOperationAction(System.Action<Microsoft.CodeAnalysis.Diagnostics.OperationAnalysisContext> action, params Microsoft.CodeAnalysis.OperationKind[] operationKinds) -> void
...
@@ -908,4 +909,4 @@ virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.Vi
...
@@ -908,4 +909,4 @@ virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.Vi
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitVariableDeclarationStatement(Microsoft.CodeAnalysis.Semantics.IVariableDeclarationStatement operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitVariableDeclarationStatement(Microsoft.CodeAnalysis.Semantics.IVariableDeclarationStatement operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitWhileUntilLoopStatement(Microsoft.CodeAnalysis.Semantics.IWhileUntilLoopStatement operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitWhileUntilLoopStatement(Microsoft.CodeAnalysis.Semantics.IWhileUntilLoopStatement operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitWithStatement(Microsoft.CodeAnalysis.Semantics.IWithStatement operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitWithStatement(Microsoft.CodeAnalysis.Semantics.IWithStatement operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitYieldBreakStatement(Microsoft.CodeAnalysis.Semantics.IReturnStatement operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Semantics.OperationVisitor<TArgument, TResult>.VisitYieldBreakStatement(Microsoft.CodeAnalysis.Semantics.IReturnStatement operation, TArgument argument) -> TResult
\ No newline at end of file
src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb
浏览文件 @
f31cb792
...
@@ -2605,6 +2605,24 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
...
@@ -2605,6 +2605,24 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Throw
New
NotSupportedException
(
VBResources
.
ThereAreNoPointerTypesInVB
)
Throw
New
NotSupportedException
(
VBResources
.
ThereAreNoPointerTypesInVB
)
End
Function
End
Function
Protected
Overrides
Function
CommonCreateAnonymousTypeSymbol
(
memberTypes
As
ImmutableArray
(
Of
ITypeSymbol
),
memberNames
As
ImmutableArray
(
Of
String
))
As
INamedTypeSymbol
Dim
index
=
0
For
Each
t
In
memberTypes
t
.
EnsureVbSymbolOrNothing
(
Of
TypeSymbol
)(
$
"{NameOf(memberTypes)}({index})"
)
index
=
index
+
1
Next
Dim
fields
=
memberTypes
.
Select
(
Function
(
t
,
i
)
New
AnonymousTypeField
(
memberNames
(
i
),
DirectCast
(
t
,
TypeSymbol
),
Location
.
None
)).
ToImmutableArray
()
Dim
descriptor
=
New
AnonymousTypeDescriptor
(
fields
,
Location
.
None
,
isImplicitlyDeclared
:
=
False
)
Return
Me
.
AnonymousTypeManager
.
ConstructAnonymousTypeSymbol
(
descriptor
)
End
Function
Protected
Overrides
ReadOnly
Property
CommonDynamicType
As
ITypeSymbol
Protected
Overrides
ReadOnly
Property
CommonDynamicType
As
ITypeSymbol
Get
Get
Throw
New
NotSupportedException
(
VBResources
.
ThereIsNoDynamicTypeInVB
)
Throw
New
NotSupportedException
(
VBResources
.
ThereIsNoDynamicTypeInVB
)
...
...
src/Compilers/VisualBasic/Portable/Symbols/AnonymousTypes/AnonymousTypeDescriptor.vb
浏览文件 @
f31cb792
...
@@ -47,10 +47,10 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
...
@@ -47,10 +47,10 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End
Get
End
Get
End
Property
End
Property
Public
Sub
New
(
fields
As
ImmutableArray
(
Of
AnonymousTypeField
),
_location
As
Location
,
_
isImplicitlyDeclared
As
Boolean
)
Public
Sub
New
(
fields
As
ImmutableArray
(
Of
AnonymousTypeField
),
location
As
Location
,
isImplicitlyDeclared
As
Boolean
)
Me
.
Fields
=
fields
Me
.
Fields
=
fields
Me
.
Location
=
_
location
Me
.
Location
=
location
Me
.
IsImplicitlyDeclared
=
_
isImplicitlyDeclared
Me
.
IsImplicitlyDeclared
=
isImplicitlyDeclared
Me
.
Key
=
ComputeKey
(
fields
,
Function
(
f
)
f
.
Name
,
Function
(
f
)
f
.
IsKey
)
Me
.
Key
=
ComputeKey
(
fields
,
Function
(
f
)
f
.
Name
,
Function
(
f
)
f
.
IsKey
)
End
Sub
End
Sub
...
...
src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb
浏览文件 @
f31cb792
...
@@ -1859,5 +1859,29 @@ class Program
...
@@ -1859,5 +1859,29 @@ class Program
Await
state
.
AssertSelectedCompletionItem
(
"value"
,
isHardSelected
:
=
True
).
ConfigureAwait
(
True
)
Await
state
.
AssertSelectedCompletionItem
(
"value"
,
isHardSelected
:
=
True
).
ConfigureAwait
(
True
)
End
Using
End
Using
End
Function
End
Function
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
<
WorkItem
(
12530
,
"https://github.com/dotnet/roslyn/issues/12530"
)
>
Public
Async
Function
TestAnonymousTypeDescription
()
As
Task
Using
state
=
TestState
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
using
System
.
Linq
;
class
Program
{
static
void
Main
(
string
[]
args
)
{
new
[]
{
new
{
x
=
1
}
}.
ToArr
$$
}
}
]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendInvokeCompletionList
()
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
description
:
=
"(extension) 'a[] System.Collections.Generic.IEnumerable<'a>.ToArray<'a>()
Anonymous Types:
'a is new { int x }"
)
End
Using
End
Function
End
Class
End
Class
End
Namespace
End
Namespace
src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests.vb
浏览文件 @
f31cb792
...
@@ -2432,5 +2432,28 @@ End Class]]></Document>)
...
@@ -2432,5 +2432,28 @@ End Class]]></Document>)
Await
state
.
AssertSelectedCompletionItem
(
"value"
,
isHardSelected
:
=
False
,
isSoftSelected
:
=
True
).
ConfigureAwait
(
True
)
Await
state
.
AssertSelectedCompletionItem
(
"value"
,
isHardSelected
:
=
False
,
isSoftSelected
:
=
True
).
ConfigureAwait
(
True
)
End
Using
End
Using
End
Function
End
Function
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
<
WorkItem
(
12530
,
"https://github.com/dotnet/roslyn/issues/12530"
)
>
Public
Async
Function
TestAnonymousTypeDescription
()
As
Task
Using
state
=
TestState
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Imports
System.Linq
Public
Class
Class1
Sub
Method
()
Dim
x
=
{
New
With
{.
x
=
1
}}.
ToArr
$$
End
Sub
End
Class
]]
></
Document
>
)
state
.
SendInvokeCompletionList
()
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
description
:
=
"<Extension> Function IEnumerable(Of 'a).ToArray() As 'a()
Anonymous Types:
'a is New With { .x As Integer }"
)
End
Using
End
Function
End
Class
End
Class
End
Namespace
End
Namespace
\ No newline at end of file
src/Workspaces/Core/Portable/SymbolId/SymbolKey.AnonymousTypeSymbolKey.cs
0 → 100644
浏览文件 @
f31cb792
// 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
System
;
using
System.Collections.Immutable
;
using
System.Diagnostics
;
using
System.Linq
;
namespace
Microsoft.CodeAnalysis
{
internal
partial
struct
SymbolKey
{
private
static
class
AnonymousTypeSymbolKey
{
public
static
void
Create
(
INamedTypeSymbol
symbol
,
SymbolKeyWriter
visitor
)
{
Debug
.
Assert
(
symbol
.
IsAnonymousType
);
var
properties
=
symbol
.
GetMembers
().
OfType
<
IPropertySymbol
>().
ToArray
();
var
propertyTypes
=
properties
.
Select
(
p
=>
p
.
Type
).
ToImmutableArray
();
var
propertyNames
=
properties
.
Select
(
p
=>
p
.
Name
).
ToImmutableArray
();
visitor
.
WriteSymbolKeyArray
(
propertyTypes
);
visitor
.
WriteStringArray
(
propertyNames
);
}
public
static
int
GetHashCode
(
GetHashCodeReader
reader
)
{
// The hash of the underlying type is good enough, we don't need to include names.
var
symbolKeyHashCode
=
reader
.
ReadSymbolKeyArrayHashCode
();
var
elementNames
=
reader
.
ReadStringArray
();
return
symbolKeyHashCode
;
}
public
static
SymbolKeyResolution
Resolve
(
SymbolKeyReader
reader
)
{
var
propertyTypeSymbols
=
reader
.
ReadSymbolKeyArray
();
var
propertyTypes
=
propertyTypeSymbols
.
Select
(
r
=>
GetFirstSymbol
<
ITypeSymbol
>(
r
)).
ToImmutableArray
();
var
propertyNames
=
reader
.
ReadStringArray
();
if
(
propertyTypes
.
Length
==
propertyNames
.
Length
)
{
try
{
var
anonymousType
=
reader
.
Compilation
.
CreateAnonymousTypeSymbol
(
propertyTypes
,
propertyNames
);
return
new
SymbolKeyResolution
(
anonymousType
);
}
catch
(
ArgumentException
)
{
}
}
return
new
SymbolKeyResolution
(
reader
.
Compilation
.
ObjectType
);
}
}
}
}
\ No newline at end of file
src/Workspaces/Core/Portable/SymbolId/SymbolKey.SymbolKeyReader.cs
浏览文件 @
f31cb792
...
@@ -365,6 +365,7 @@ protected override int ReadWorker(SymbolKeyType type)
...
@@ -365,6 +365,7 @@ protected override int ReadWorker(SymbolKeyType type)
case
SymbolKeyType
.
Event
:
return
EventSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
Event
:
return
EventSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
ReducedExtensionMethod
:
return
ReducedExtensionMethodSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
ReducedExtensionMethod
:
return
ReducedExtensionMethodSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
TypeParameter
:
return
TypeParameterSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
TypeParameter
:
return
TypeParameterSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
AnonymousType
:
return
AnonymousTypeSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
TypeParameterOrdinal
:
return
TypeParameterOrdinalSymbolKey
.
GetHashCode
(
this
);
case
SymbolKeyType
.
TypeParameterOrdinal
:
return
TypeParameterOrdinalSymbolKey
.
GetHashCode
(
this
);
}
}
...
@@ -520,6 +521,7 @@ protected override SymbolKeyResolution ReadWorker(SymbolKeyType type)
...
@@ -520,6 +521,7 @@ protected override SymbolKeyResolution ReadWorker(SymbolKeyType type)
case
SymbolKeyType
.
Event
:
return
EventSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
Event
:
return
EventSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
ReducedExtensionMethod
:
return
ReducedExtensionMethodSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
ReducedExtensionMethod
:
return
ReducedExtensionMethodSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
TypeParameter
:
return
TypeParameterSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
TypeParameter
:
return
TypeParameterSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
AnonymousType
:
return
AnonymousTypeSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
TypeParameterOrdinal
:
return
TypeParameterOrdinalSymbolKey
.
Resolve
(
this
);
case
SymbolKeyType
.
TypeParameterOrdinal
:
return
TypeParameterOrdinalSymbolKey
.
Resolve
(
this
);
}
}
...
...
src/Workspaces/Core/Portable/SymbolId/SymbolKey.SymbolKeyWriter.cs
浏览文件 @
f31cb792
...
@@ -33,6 +33,7 @@ private enum SymbolKeyType
...
@@ -33,6 +33,7 @@ private enum SymbolKeyType
Event
=
'V'
,
Event
=
'V'
,
ReducedExtensionMethod
=
'X'
,
ReducedExtensionMethod
=
'X'
,
TypeParameter
=
'Y'
,
TypeParameter
=
'Y'
,
AnonymousType
=
'Z'
,
// Not to be confused with ArrayType. This indicates an array of elements in the stream.
// Not to be confused with ArrayType. This indicates an array of elements in the stream.
Array
=
'%'
,
Array
=
'%'
,
...
@@ -334,6 +335,11 @@ public override object VisitNamedType(INamedTypeSymbol namedTypeSymbol)
...
@@ -334,6 +335,11 @@ public override object VisitNamedType(INamedTypeSymbol namedTypeSymbol)
WriteType
(
SymbolKeyType
.
TupleType
);
WriteType
(
SymbolKeyType
.
TupleType
);
TupleTypeSymbolKey
.
Create
(
namedTypeSymbol
,
this
);
TupleTypeSymbolKey
.
Create
(
namedTypeSymbol
,
this
);
}
}
else
if
(
namedTypeSymbol
.
IsAnonymousType
)
{
WriteType
(
SymbolKeyType
.
AnonymousType
);
AnonymousTypeSymbolKey
.
Create
(
namedTypeSymbol
,
this
);
}
else
else
{
{
WriteType
(
SymbolKeyType
.
NamedType
);
WriteType
(
SymbolKeyType
.
NamedType
);
...
...
src/Workspaces/Core/Portable/Workspaces.csproj
浏览文件 @
f31cb792
...
@@ -435,6 +435,7 @@
...
@@ -435,6 +435,7 @@
<Compile
Include=
"SymbolId\SymbolKey.ComparisonOptions.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.ComparisonOptions.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.SymbolKeyComparer.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.SymbolKeyComparer.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.PropertySymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.PropertySymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.AnonymousTypeSymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.TypeParameterOrdinalSymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.TypeParameterOrdinalSymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.TypeParameterSymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.TypeParameterSymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.ErrorTypeSymbolKey.cs"
/>
<Compile
Include=
"SymbolId\SymbolKey.ErrorTypeSymbolKey.cs"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录