Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
caa4ee76
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,发现更多精彩内容 >>
未验证
提交
caa4ee76
编写于
3月 23, 2020
作者:
T
Tomáš Matoušek
提交者:
GitHub
3月 23, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add WhereAsArray with generic argument (#42682)
* Add WhereAsArray with generic argument. * Feedback
上级
4efbe40d
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
52 addition
and
27 deletion
+52
-27
src/Compilers/CSharp/Portable/Binder/Binder_Crefs.cs
src/Compilers/CSharp/Portable/Binder/Binder_Crefs.cs
+2
-2
src/Compilers/CSharp/Portable/Binder/DecisionDagBuilder.cs
src/Compilers/CSharp/Portable/Binder/DecisionDagBuilder.cs
+1
-1
src/Compilers/CSharp/Portable/Binder/Imports.cs
src/Compilers/CSharp/Portable/Binder/Imports.cs
+1
-1
src/Compilers/CSharp/Portable/Compilation/CSharpSemanticModel.cs
...pilers/CSharp/Portable/Compilation/CSharpSemanticModel.cs
+3
-3
src/Compilers/CSharp/Portable/Symbols/ErrorTypeSymbol.cs
src/Compilers/CSharp/Portable/Symbols/ErrorTypeSymbol.cs
+1
-1
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PENamedTypeSymbol.cs
.../CSharp/Portable/Symbols/Metadata/PE/PENamedTypeSymbol.cs
+1
-1
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PENamespaceSymbol.cs
.../CSharp/Portable/Symbols/Metadata/PE/PENamespaceSymbol.cs
+1
-1
src/Compilers/CSharp/Portable/Symbols/NamespaceOrTypeSymbol.cs
...ompilers/CSharp/Portable/Symbols/NamespaceOrTypeSymbol.cs
+1
-1
src/Compilers/CSharp/Portable/Symbols/ReferenceManager.cs
src/Compilers/CSharp/Portable/Symbols/ReferenceManager.cs
+3
-1
src/Compilers/CSharp/Portable/Symbols/Source/SourceMemberContainerSymbol.cs
...rp/Portable/Symbols/Source/SourceMemberContainerSymbol.cs
+1
-1
src/Compilers/CSharp/Portable/Symbols/Source/SourceNamespaceSymbol.cs
...s/CSharp/Portable/Symbols/Source/SourceNamespaceSymbol.cs
+1
-1
src/Compilers/CSharp/Portable/Symbols/SubstitutedNamedTypeSymbol.cs
...ers/CSharp/Portable/Symbols/SubstitutedNamedTypeSymbol.cs
+1
-1
src/Compilers/Core/CodeAnalysisTest/Collections/ImmutableArrayExtensionsTests.cs
...AnalysisTest/Collections/ImmutableArrayExtensionsTests.cs
+10
-0
src/Compilers/Core/Portable/Collections/ImmutableArrayExtensions.cs
...ers/Core/Portable/Collections/ImmutableArrayExtensions.cs
+14
-3
src/Compilers/VisualBasic/Portable/Symbols/Metadata/PE/PENamedTypeSymbol.vb
...alBasic/Portable/Symbols/Metadata/PE/PENamedTypeSymbol.vb
+1
-1
src/Compilers/VisualBasic/Portable/Symbols/Metadata/PE/PENamespaceSymbol.vb
...alBasic/Portable/Symbols/Metadata/PE/PENamespaceSymbol.vb
+1
-1
src/Compilers/VisualBasic/Portable/Symbols/NamespaceOrTypeSymbol.vb
...ers/VisualBasic/Portable/Symbols/NamespaceOrTypeSymbol.vb
+1
-1
src/Compilers/VisualBasic/Portable/Symbols/ReferenceManager.vb
...ompilers/VisualBasic/Portable/Symbols/ReferenceManager.vb
+3
-1
src/Compilers/VisualBasic/Portable/Symbols/Source/SourceMemberContainerTypeSymbol.vb
...ortable/Symbols/Source/SourceMemberContainerTypeSymbol.vb
+1
-1
src/Compilers/VisualBasic/Portable/Symbols/Tuples/TupleTypeSymbol.vb
...rs/VisualBasic/Portable/Symbols/Tuples/TupleTypeSymbol.vb
+1
-1
src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Rewriters/CapturedVariableRewriter.cs
.../ExpressionCompiler/Rewriters/CapturedVariableRewriter.cs
+1
-1
src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Symbols/EENamedTypeSymbol.cs
...rp/Source/ExpressionCompiler/Symbols/EENamedTypeSymbol.cs
+1
-1
src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/Symbols/EENamedTypeSymbol.vb
...ic/Source/ExpressionCompiler/Symbols/EENamedTypeSymbol.vb
+1
-1
未找到文件。
src/Compilers/CSharp/Portable/Binder/Binder_Crefs.cs
浏览文件 @
caa4ee76
...
...
@@ -278,8 +278,8 @@ private ImmutableArray<Symbol> BindConversionOperatorMemberCref(ConversionOperat
TypeSymbol
returnType
=
BindCrefParameterOrReturnType
(
syntax
.
Type
,
syntax
,
diagnostics
);
// Filter out methods with the wrong return type, since overload resolution won't catch these.
sortedSymbols
=
sortedSymbols
.
WhereAsArray
(
symbol
=>
symbol
.
Kind
!=
SymbolKind
.
Method
||
TypeSymbol
.
Equals
(((
MethodSymbol
)
symbol
).
ReturnType
,
returnType
,
TypeCompareKind
.
ConsiderEverything2
));
sortedSymbols
=
sortedSymbols
.
WhereAsArray
(
(
symbol
,
returnType
)
=>
symbol
.
Kind
!=
SymbolKind
.
Method
||
TypeSymbol
.
Equals
(((
MethodSymbol
)
symbol
).
ReturnType
,
returnType
,
TypeCompareKind
.
ConsiderEverything2
)
,
returnType
);
if
(!
sortedSymbols
.
Any
())
{
...
...
src/Compilers/CSharp/Portable/Binder/DecisionDagBuilder.cs
浏览文件 @
caa4ee76
...
...
@@ -1126,7 +1126,7 @@ private static RemainingTestsForCase RemoveEvaluation(RemainingTestsForCase c, B
{
return
new
RemainingTestsForCase
(
Index
:
c
.
Index
,
Syntax
:
c
.
Syntax
,
RemainingTests
:
c
.
RemainingTests
.
WhereAsArray
(
d
=>
!(
d
is
BoundDagEvaluation
e2
)
||
e2
!=
e
),
RemainingTests
:
c
.
RemainingTests
.
WhereAsArray
(
(
d
,
e
)
=>
!(
d
is
BoundDagEvaluation
e2
)
||
e2
!=
e
,
e
),
Bindings
:
c
.
Bindings
,
WhenClause
:
c
.
WhenClause
,
CaseLabel
:
c
.
CaseLabel
);
}
...
...
src/Compilers/CSharp/Portable/Binder/Imports.cs
浏览文件 @
caa4ee76
...
...
@@ -459,7 +459,7 @@ private static ImmutableArray<AliasAndExternAliasDirective> ConcatExternAliases(
var
replacedExternAliases
=
PooledHashSet
<
string
>.
GetInstance
();
replacedExternAliases
.
AddAll
(
externs2
.
Select
(
e
=>
e
.
Alias
.
Name
));
return
externs1
.
WhereAsArray
(
e
=>
!
replacedExternAliases
.
Contains
(
e
.
Alias
.
Name
)
).
AddRange
(
externs2
);
return
externs1
.
WhereAsArray
(
(
e
,
replacedExternAliases
)
=>
!
replacedExternAliases
.
Contains
(
e
.
Alias
.
Name
),
replacedExternAliases
).
AddRange
(
externs2
);
}
private
static
ImmutableArray
<
AliasAndExternAliasDirective
>
BuildExternAliases
(
...
...
src/Compilers/CSharp/Portable/Compilation/CSharpSemanticModel.cs
浏览文件 @
caa4ee76
...
...
@@ -3970,7 +3970,7 @@ private static ImmutableArray<MethodSymbol> FilterOverriddenOrHiddenMethods(Immu
}
}
return
methods
.
WhereAsArray
(
m
=>
!
hiddenSymbols
.
Contains
(
m
)
);
return
methods
.
WhereAsArray
(
(
m
,
hiddenSymbols
)
=>
!
hiddenSymbols
.
Contains
(
m
),
hiddenSymbols
);
}
// Get the symbols and possible method group associated with a method group bound node, as
...
...
@@ -4075,7 +4075,7 @@ private static ImmutableArray<MethodSymbol> FilterOverriddenOrHiddenMethods(Immu
// If the bad expression has symbol(s) from this method group, it better indicates any problems.
ImmutableArray
<
Symbol
>
myMethodGroup
=
methodGroup
;
symbols
=
((
BoundBadExpression
)
boundNodeForSyntacticParent
).
Symbols
.
WhereAsArray
(
sym
=>
myMethodGroup
.
Contains
(
sym
)
);
symbols
=
((
BoundBadExpression
)
boundNodeForSyntacticParent
).
Symbols
.
WhereAsArray
(
(
sym
,
myMethodGroup
)
=>
myMethodGroup
.
Contains
(
sym
),
myMethodGroup
);
if
(
symbols
.
Any
())
{
resultKind
=
((
BoundBadExpression
)
boundNodeForSyntacticParent
).
ResultKind
;
...
...
@@ -4176,7 +4176,7 @@ private static ImmutableArray<MethodSymbol> FilterOverriddenOrHiddenMethods(Immu
// If the bad expression has symbol(s) from this property group, it better indicates any problems.
ImmutableArray
<
Symbol
>
myPropertyGroup
=
propertyGroup
;
symbols
=
((
BoundBadExpression
)
boundNodeForSyntacticParent
).
Symbols
.
WhereAsArray
(
sym
=>
myPropertyGroup
.
Contains
(
sym
)
);
symbols
=
((
BoundBadExpression
)
boundNodeForSyntacticParent
).
Symbols
.
WhereAsArray
(
(
sym
,
myPropertyGroup
)
=>
myPropertyGroup
.
Contains
(
sym
),
myPropertyGroup
);
if
(
symbols
.
Any
())
{
resultKind
=
((
BoundBadExpression
)
boundNodeForSyntacticParent
).
ResultKind
;
...
...
src/Compilers/CSharp/Portable/Symbols/ErrorTypeSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -158,7 +158,7 @@ public override ImmutableArray<Symbol> GetMembers()
/// no members with this name, returns an empty ImmutableArray. Never returns Null.</returns>
public
override
ImmutableArray
<
Symbol
>
GetMembers
(
string
name
)
{
return
GetMembers
().
WhereAsArray
(
m
=>
m
.
Name
==
name
);
return
GetMembers
().
WhereAsArray
(
(
m
,
name
)
=>
m
.
Name
==
name
,
name
);
}
internal
sealed
override
IEnumerable
<
FieldSymbol
>
GetFieldsToEmit
()
...
...
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PENamedTypeSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -1474,7 +1474,7 @@ public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(string name)
public
override
ImmutableArray
<
NamedTypeSymbol
>
GetTypeMembers
(
string
name
,
int
arity
)
{
return
GetTypeMembers
(
name
).
WhereAsArray
(
type
=>
type
.
Arity
==
arity
);
return
GetTypeMembers
(
name
).
WhereAsArray
(
(
type
,
arity
)
=>
type
.
Arity
==
arity
,
arity
);
}
public
override
ImmutableArray
<
Location
>
Locations
...
...
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PENamespaceSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -132,7 +132,7 @@ public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(string nam
public
sealed
override
ImmutableArray
<
NamedTypeSymbol
>
GetTypeMembers
(
string
name
,
int
arity
)
{
return
GetTypeMembers
(
name
).
WhereAsArray
(
type
=>
type
.
Arity
==
arity
);
return
GetTypeMembers
(
name
).
WhereAsArray
(
(
type
,
arity
)
=>
type
.
Arity
==
arity
,
arity
);
}
public
sealed
override
ImmutableArray
<
Location
>
Locations
...
...
src/Compilers/CSharp/Portable/Symbols/NamespaceOrTypeSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -165,7 +165,7 @@ public virtual ImmutableArray<NamedTypeSymbol> GetTypeMembers(string name, int a
{
// default implementation does a post-filter. We can override this if its a performance burden, but
// experience is that it won't be.
return
GetTypeMembers
(
name
).
WhereAsArray
(
t
=>
t
.
Arity
==
arity
);
return
GetTypeMembers
(
name
).
WhereAsArray
(
(
t
,
arity
)
=>
t
.
Arity
==
arity
,
arity
);
}
/// <summary>
...
...
src/Compilers/CSharp/Portable/Symbols/ReferenceManager.cs
浏览文件 @
caa4ee76
...
...
@@ -270,7 +270,9 @@ public PEAssemblySymbol CreatePEAssemblyForAssemblyMetadata(AssemblyMetadata met
var
assemblySymbol
=
new
PEAssemblySymbol
(
assembly
,
DocumentationProvider
.
Default
,
isLinked
:
false
,
importOptions
:
importOptions
);
var
unifiedAssemblies
=
this
.
UnifiedAssemblies
.
WhereAsArray
(
unified
=>
referencedAssembliesByIdentity
.
Contains
(
unified
.
OriginalReference
,
allowHigherVersion
:
false
));
var
unifiedAssemblies
=
this
.
UnifiedAssemblies
.
WhereAsArray
(
(
unified
,
referencedAssembliesByIdentity
)
=>
referencedAssembliesByIdentity
.
Contains
(
unified
.
OriginalReference
,
allowHigherVersion
:
false
),
referencedAssembliesByIdentity
);
InitializeAssemblyReuseData
(
assemblySymbol
,
peReferences
,
unifiedAssemblies
);
if
(
assembly
.
ContainsNoPiaLocalTypes
())
...
...
src/Compilers/CSharp/Portable/Symbols/Source/SourceMemberContainerSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -1112,7 +1112,7 @@ public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(string name)
public
override
ImmutableArray
<
NamedTypeSymbol
>
GetTypeMembers
(
string
name
,
int
arity
)
{
return
GetTypeMembers
(
name
).
WhereAsArray
(
t
=>
t
.
Arity
==
arity
);
return
GetTypeMembers
(
name
).
WhereAsArray
(
(
t
,
arity
)
=>
t
.
Arity
==
arity
,
arity
);
}
private
Dictionary
<
string
,
ImmutableArray
<
NamedTypeSymbol
>>
GetTypeMembersDictionary
()
...
...
src/Compilers/CSharp/Portable/Symbols/Source/SourceNamespaceSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -179,7 +179,7 @@ public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(string name)
public
override
ImmutableArray
<
NamedTypeSymbol
>
GetTypeMembers
(
string
name
,
int
arity
)
{
return
GetTypeMembers
(
name
).
WhereAsArray
(
s
=>
s
.
Arity
==
arity
);
return
GetTypeMembers
(
name
).
WhereAsArray
(
(
s
,
arity
)
=>
s
.
Arity
==
arity
,
arity
);
}
internal
override
ModuleSymbol
ContainingModule
...
...
src/Compilers/CSharp/Portable/Symbols/SubstitutedNamedTypeSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -286,7 +286,7 @@ private ImmutableArray<Symbol> GetMembersWorker(string name)
{
if
(
IsTupleType
)
{
var
result
=
GetMembers
().
WhereAsArray
(
m
=>
m
.
Name
==
name
);
var
result
=
GetMembers
().
WhereAsArray
(
(
m
,
name
)
=>
m
.
Name
==
name
,
name
);
cacheResult
(
result
);
return
result
;
}
...
...
src/Compilers/Core/CodeAnalysisTest/Collections/ImmutableArrayExtensionsTests.cs
浏览文件 @
caa4ee76
...
...
@@ -453,6 +453,16 @@ public void WhereAsArray()
Assert
.
True
(
a
.
WhereAsArray
(
i
=>
i
%
2
==
1
).
SequenceEqual
(
ImmutableArray
.
Create
<
int
>(
1
,
3
,
5
)));
}
[
Fact
]
public
void
WhereAsArray_WithArg
()
{
var
x
=
new
C
();
Assert
.
Same
(
x
,
ImmutableArray
.
Create
<
object
>(
x
).
WhereAsArray
((
o
,
arg
)
=>
o
==
arg
,
x
)[
0
]);
var
a
=
ImmutableArray
.
Create
(
0
,
1
,
2
,
3
,
4
,
5
);
AssertEx
.
Equal
(
new
[]
{
3
,
4
,
5
},
a
.
WhereAsArray
((
i
,
j
)
=>
i
>
j
,
2
));
}
private
class
C
{
}
...
...
src/Compilers/Core/Portable/Collections/ImmutableArrayExtensions.cs
浏览文件 @
caa4ee76
...
...
@@ -259,13 +259,23 @@ public static ImmutableArray<byte> ToImmutable(this MemoryStream stream)
/// <summary>
/// Creates a new immutable array based on filtered elements by the predicate. The array must not be null.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="array">The array to process</param>
/// <param name="predicate">The delegate that defines the conditions of the element to search for.</param>
/// <returns></returns>
public
static
ImmutableArray
<
T
>
WhereAsArray
<
T
>(
this
ImmutableArray
<
T
>
array
,
Func
<
T
,
bool
>
predicate
)
=>
WhereAsArrayImpl
<
T
,
object
?>(
array
,
predicate
,
predicateWithArg
:
null
,
arg
:
null
);
/// <summary>
/// Creates a new immutable array based on filtered elements by the predicate. The array must not be null.
/// </summary>
/// <param name="array">The array to process</param>
/// <param name="predicate">The delegate that defines the conditions of the element to search for.</param>
public
static
ImmutableArray
<
T
>
WhereAsArray
<
T
,
TArg
>(
this
ImmutableArray
<
T
>
array
,
Func
<
T
,
TArg
,
bool
>
predicate
,
TArg
arg
)
=>
WhereAsArrayImpl
(
array
,
predicateWithoutArg
:
null
,
predicate
,
arg
);
private
static
ImmutableArray
<
T
>
WhereAsArrayImpl
<
T
,
TArg
>(
ImmutableArray
<
T
>
array
,
Func
<
T
,
bool
>?
predicateWithoutArg
,
Func
<
T
,
TArg
,
bool
>?
predicateWithArg
,
TArg
arg
)
{
Debug
.
Assert
(!
array
.
IsDefault
);
Debug
.
Assert
(
predicateWithArg
!=
null
^
predicateWithoutArg
!=
null
);
ArrayBuilder
<
T
>?
builder
=
null
;
bool
none
=
true
;
...
...
@@ -275,7 +285,8 @@ public static ImmutableArray<T> WhereAsArray<T>(this ImmutableArray<T> array, Fu
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
var
a
=
array
[
i
];
if
(
predicate
(
a
))
if
((
predicateWithoutArg
!=
null
)
?
predicateWithoutArg
(
a
)
:
predicateWithArg
!(
a
,
arg
))
{
none
=
false
;
if
(
all
)
...
...
src/Compilers/VisualBasic/Portable/Symbols/Metadata/PE/PENamedTypeSymbol.vb
浏览文件 @
caa4ee76
...
...
@@ -803,7 +803,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE
End
Function
Public
Overloads
Overrides
Function
GetTypeMembers
(
name
As
String
,
arity
As
Integer
)
As
ImmutableArray
(
Of
NamedTypeSymbol
)
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
type
)
type
.
Arity
=
arity
)
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
type
,
arity_
)
type
.
Arity
=
arity_
,
arity
)
End
Function
Public
Overrides
ReadOnly
Property
Locations
As
ImmutableArray
(
Of
Location
)
...
...
src/Compilers/VisualBasic/Portable/Symbols/Metadata/PE/PENamespaceSymbol.vb
浏览文件 @
caa4ee76
...
...
@@ -120,7 +120,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE
End
Function
Public
Overloads
Overrides
Function
GetTypeMembers
(
name
As
String
,
arity
As
Integer
)
As
ImmutableArray
(
Of
NamedTypeSymbol
)
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
type
)
type
.
Arity
=
arity
)
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
type
,
arity_
)
type
.
Arity
=
arity_
,
arity
)
End
Function
Public
NotOverridable
Overrides
ReadOnly
Property
Locations
As
ImmutableArray
(
Of
Location
)
...
...
src/Compilers/VisualBasic/Portable/Symbols/NamespaceOrTypeSymbol.vb
浏览文件 @
caa4ee76
...
...
@@ -112,7 +112,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Public
Overridable
Function
GetTypeMembers
(
name
As
String
,
arity
As
Integer
)
As
ImmutableArray
(
Of
NamedTypeSymbol
)
' default implementation does a post-filter. We can override this if its a performance burden, but
' experience is that it won't be.
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
t
)
t
.
Arity
=
arity
)
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
t
ype
,
arity_
)
type
.
Arity
=
arity_
,
arity
)
End
Function
' Only the compiler can create new instances.
...
...
src/Compilers/VisualBasic/Portable/Symbols/ReferenceManager.vb
浏览文件 @
caa4ee76
...
...
@@ -227,7 +227,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Dim
assemblySymbol
=
New
PEAssemblySymbol
(
assembly
,
DocumentationProvider
.
Default
,
isLinked
:
=
False
,
importOptions
:
=
importOptions
)
Dim
unifiedAssemblies
=
Me
.
UnifiedAssemblies
.
WhereAsArray
(
Function
(
unified
)
referencedAssembliesByIdentity
.
Contains
(
unified
.
OriginalReference
,
allowHigherVersion
:
=
False
))
Dim
unifiedAssemblies
=
Me
.
UnifiedAssemblies
.
WhereAsArray
(
Function
(
unified
,
refAsmByIdentity
)
refAsmByIdentity
.
Contains
(
unified
.
OriginalReference
,
allowHigherVersion
:
=
False
),
referencedAssembliesByIdentity
)
InitializeAssemblyReuseData
(
assemblySymbol
,
peReferences
,
unifiedAssemblies
)
If
assembly
.
ContainsNoPiaLocalTypes
()
Then
...
...
src/Compilers/VisualBasic/Portable/Symbols/Source/SourceMemberContainerTypeSymbol.vb
浏览文件 @
caa4ee76
...
...
@@ -1649,7 +1649,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End
Function
Public
Overrides
Function
GetTypeMembers
(
name
As
String
,
arity
As
Integer
)
As
ImmutableArray
(
Of
NamedTypeSymbol
)
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
t
)
t
.
Arity
=
arity
)
Return
GetTypeMembers
(
name
).
WhereAsArray
(
Function
(
t
,
arity_
)
t
.
Arity
=
arity_
,
arity
)
End
Function
Friend
Overrides
ReadOnly
Property
DefaultPropertyName
As
String
...
...
src/Compilers/VisualBasic/Portable/Symbols/Tuples/TupleTypeSymbol.vb
浏览文件 @
caa4ee76
...
...
@@ -942,7 +942,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End
Function
Public
Overrides
Function
GetMembers
(
name
As
String
)
As
ImmutableArray
(
Of
Symbol
)
Return
Me
.
GetMembers
().
WhereAsArray
(
Function
(
m
As
Symbol
)
IdentifierComparison
.
Equals
(
m
.
Name
,
name
)
)
Return
Me
.
GetMembers
().
WhereAsArray
(
Function
(
m
ember
,
name_
)
IdentifierComparison
.
Equals
(
member
.
Name
,
name_
),
name
)
End
Function
Public
Overrides
Function
GetTypeMembers
()
As
ImmutableArray
(
Of
NamedTypeSymbol
)
...
...
src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Rewriters/CapturedVariableRewriter.cs
浏览文件 @
caa4ee76
...
...
@@ -43,7 +43,7 @@ internal sealed class CapturedVariableRewriter : BoundTreeRewriterWithStackGuard
public
override
BoundNode
VisitBlock
(
BoundBlock
node
)
{
var
rewrittenLocals
=
node
.
Locals
.
WhereAsArray
(
local
=>
local
.
IsCompilerGenerated
||
local
.
Name
==
null
||
this
.
GetVariable
(
local
.
Name
)
==
null
);
var
rewrittenLocals
=
node
.
Locals
.
WhereAsArray
(
(
local
,
rewriter
)
=>
local
.
IsCompilerGenerated
||
local
.
Name
==
null
||
rewriter
.
GetVariable
(
local
.
Name
)
==
null
,
this
);
var
rewrittenLocalFunctions
=
node
.
LocalFunctions
;
var
rewrittenStatements
=
VisitList
(
node
.
Statements
);
return
node
.
Update
(
rewrittenLocals
,
rewrittenLocalFunctions
,
rewrittenStatements
);
...
...
src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Symbols/EENamedTypeSymbol.cs
浏览文件 @
caa4ee76
...
...
@@ -172,7 +172,7 @@ public override ImmutableArray<Symbol> GetMembers(string name)
// Should not be requesting generated members
// by name other than constructors.
Debug
.
Assert
((
name
==
WellKnownMemberNames
.
InstanceConstructorName
)
||
(
name
==
WellKnownMemberNames
.
StaticConstructorName
));
return
this
.
GetMembers
().
WhereAsArray
(
m
=>
m
.
Name
==
name
);
return
this
.
GetMembers
().
WhereAsArray
(
(
m
,
name
)
=>
m
.
Name
==
name
,
name
);
}
public
override
ImmutableArray
<
NamedTypeSymbol
>
GetTypeMembers
()
...
...
src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/Symbols/EENamedTypeSymbol.vb
浏览文件 @
caa4ee76
...
...
@@ -170,7 +170,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator
Public
Overrides
Function
GetMembers
(
name
As
String
)
As
ImmutableArray
(
Of
Symbol
)
' Should not be requesting generated members by name other than constructors.
Debug
.
Assert
(
name
=
WellKnownMemberNames
.
InstanceConstructorName
OrElse
name
=
WellKnownMemberNames
.
StaticConstructorName
)
Return
GetMembers
().
WhereAsArray
(
Function
(
m
)
m
.
Name
=
name
)
Return
GetMembers
().
WhereAsArray
(
Function
(
m
ember
,
name_
)
member
.
Name
=
name_
,
name
)
End
Function
Public
Overrides
Function
GetTypeMembers
()
As
ImmutableArray
(
Of
NamedTypeSymbol
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录