Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
85aa2b1a
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,发现更多精彩内容 >>
未验证
提交
85aa2b1a
编写于
8月 10, 2020
作者:
F
Fredric Silberberg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Minor PR feedback:
* Clarify tests. * Remove a redundant condition.
上级
687083d6
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
8 addition
and
17 deletion
+8
-17
src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs
...ompilers/CSharp/Portable/Compilation/CSharpCompilation.cs
+1
-1
src/Compilers/CSharp/Test/Symbol/Symbols/FunctionPointerTypeSymbolTests.cs
...arp/Test/Symbol/Symbols/FunctionPointerTypeSymbolTests.cs
+6
-2
src/Compilers/Core/Portable/Collections/ImmutableArrayExtensions.cs
...ers/Core/Portable/Collections/ImmutableArrayExtensions.cs
+0
-13
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayMiscellaneousOptions.cs
...rtable/SymbolDisplay/SymbolDisplayMiscellaneousOptions.cs
+1
-1
未找到文件。
src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs
浏览文件 @
85aa2b1a
...
...
@@ -3334,7 +3334,7 @@ static CustomModifier getCustomModifierForType(INamedTypeSymbol type, CSharpComp
}
var
internalType
=
type
.
EnsureCSharpSymbolOrNull
(
$"
{
nameof
(
callingConventionTypes
)}
[
{
index
}
]"
);
if
(!
FunctionPointerTypeSymbol
.
IsCallingConventionModifier
(
internalType
)
||
@this
.
Assembly
.
CorLibrary
!=
internalType
.
ContainingAssembly
.
CorLibrary
)
if
(!
FunctionPointerTypeSymbol
.
IsCallingConventionModifier
(
internalType
)
||
@this
.
Assembly
.
CorLibrary
!=
internalType
.
ContainingAssembly
)
{
throw
new
ArgumentException
(
string
.
Format
(
CSharpResources
.
CallingConventionTypeIsInvalid
,
type
.
ToDisplayString
()));
}
...
...
src/Compilers/CSharp/Test/Symbol/Symbols/FunctionPointerTypeSymbolTests.cs
浏览文件 @
85aa2b1a
...
...
@@ -1655,6 +1655,10 @@ public void PublicApi_CallingConventions_Modopts()
AssertEx
.
Equal
(
"delegate* unmanaged[Cdecl, Stdcall]<System.String modopt(System.Runtime.CompilerServices.CallConvCdecl) modopt(System.Runtime.CompilerServices.CallConvStdcall)>"
,
ptr
.
ToTestDisplayString
());
ptr
=
comp
.
CreateFunctionPointerTypeSymbol
(
@string
,
returnRefKind
:
RefKind
.
RefReadOnly
,
parameterTypes
:
ImmutableArray
<
ITypeSymbol
>.
Empty
,
parameterRefKinds
:
ImmutableArray
<
RefKind
>.
Empty
,
SignatureCallingConvention
.
Unmanaged
,
ImmutableArray
.
Create
(
cdeclType
,
stdcallType
)!);
AssertEx
.
Equal
(
"delegate* unmanaged[Cdecl, Stdcall]<ref readonly modopt(System.Runtime.CompilerServices.CallConvCdecl) modopt(System.Runtime.CompilerServices.CallConvStdcall) modreq(System.Runtime.InteropServices.InAttribute) System.String>"
,
ptr
.
ToTestDisplayString
());
ptr
=
comp
.
CreateFunctionPointerTypeSymbol
(
@string
,
returnRefKind
:
RefKind
.
None
,
parameterTypes
:
ImmutableArray
<
ITypeSymbol
>.
Empty
,
parameterRefKinds
:
ImmutableArray
<
RefKind
>.
Empty
,
SignatureCallingConvention
.
Unmanaged
,
ImmutableArray
.
Create
(
cdeclType
)!);
AssertEx
.
Equal
(
"delegate* unmanaged[Cdecl]<System.String modopt(System.Runtime.CompilerServices.CallConvCdecl)>"
,
ptr
.
ToTestDisplayString
());
Assert
.
Equal
(
SignatureCallingConvention
.
Unmanaged
,
ptr
.
Signature
.
CallingConvention
);
}
[
Fact
]
...
...
@@ -1959,11 +1963,11 @@ public static class RuntimeFeature
}
"
,
options
:
TestOptions
.
UnsafeReleaseDll
,
parseOptions
:
TestOptions
.
RegularPreview
);
var
mainComp
=
CreateCompilation
(
""
,
references
:
new
[]
{
otherCorLib
.
ToMetadataReference
()
}
);
var
mainComp
=
CreateCompilation
(
""
);
var
returnType
=
mainComp
.
GetSpecialType
(
SpecialType
.
System_String
).
GetPublicSymbol
();
var
testConvention
=
otherCorLib
.
GetTypeByMetadataName
(
"System.Runtime.CompilerServices.CallConvTest"
);
Assert
.
NotNull
(
testConvention
);
Assert
.
True
((
object
)
testConvention
!.
ContainingAssembly
.
CorLibrary
!=
mainComp
.
Assembly
.
CorLibrary
);
Assert
.
NotSame
(
testConvention
!.
ContainingAssembly
.
CorLibrary
,
mainComp
.
Assembly
.
CorLibrary
);
Assert
.
True
(
FunctionPointerTypeSymbol
.
IsCallingConventionModifier
(
testConvention
));
Assert
.
Throws
<
ArgumentException
>(()
=>
mainComp
.
CreateFunctionPointerTypeSymbol
(
...
...
src/Compilers/Core/Portable/Collections/ImmutableArrayExtensions.cs
浏览文件 @
85aa2b1a
...
...
@@ -140,19 +140,6 @@ public static ImmutableArray<byte> ToImmutable(this MemoryStream stream)
return
ImmutableArray
.
CreateRange
(
items
,
map
);
}
/// <summary>
/// Maps an immutable array to another immutable array, passing the current index.
/// </summary>
/// <typeparam name="TItem"></typeparam>
/// <typeparam name="TResult"></typeparam>
/// <param name="items">The sequence to map</param>
/// <param name="map">The mapping delegate</param>
/// <returns>If the items's length is 0, this will return an empty immutable array.</returns>
public
static
ImmutableArray
<
TResult
>
SelectAsArray
<
TItem
,
TResult
>(
this
ImmutableArray
<
TItem
>
items
,
Func
<
TItem
,
int
,
TResult
>
map
)
{
return
items
.
SelectAsArray
((
item
,
i
,
mapper
)
=>
mapper
(
item
,
i
),
map
);
}
/// <summary>
/// Maps an immutable array to another immutable array.
/// </summary>
...
...
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayMiscellaneousOptions.cs
浏览文件 @
85aa2b1a
...
...
@@ -76,7 +76,7 @@ public enum SymbolDisplayMiscellaneousOptions
IncludeNotNullableReferenceTypeModifier
=
1
<<
8
,
/// <summary>
///
Explicitly put `managed` as the calling convention for
function pointer types.
///
Use the `managed` keyword for managed
function pointer types.
/// </summary>
UseExplicitManagedCallingConventionSpecifier
=
1
<<
9
,
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录