Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bingbingbingbing
mono
提交
9a7ff171
M
mono
项目概览
bingbingbingbing
/
mono
与 Fork 源项目一致
从无法访问的项目Fork
通知
35
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mono
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9a7ff171
编写于
10月 01, 2010
作者:
M
Marek Safar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ref/out arguments are always of static type
上级
29281b99
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
144 addition
and
41 deletion
+144
-41
mcs/mcs/argument.cs
mcs/mcs/argument.cs
+4
-0
mcs/tests/dtest-003.cs
mcs/tests/dtest-003.cs
+17
-0
mcs/tests/dtest-034.cs
mcs/tests/dtest-034.cs
+28
-0
mcs/tests/ver-il-dmcs.xml
mcs/tests/ver-il-dmcs.xml
+95
-41
未找到文件。
mcs/mcs/argument.cs
浏览文件 @
9a7ff171
...
...
@@ -244,9 +244,13 @@ namespace Mono.CSharp
}
else
if
(
a
.
ArgType
==
Argument
.
AType
.
Ref
)
{
info_flags
=
new
Binary
(
Binary
.
Operator
.
BitwiseOr
,
info_flags
,
new
MemberAccess
(
new
MemberAccess
(
binder
,
info_flags_enum
,
loc
),
"IsRef"
,
loc
),
loc
);
info_flags
=
new
Binary
(
Binary
.
Operator
.
BitwiseOr
,
info_flags
,
new
MemberAccess
(
new
MemberAccess
(
binder
,
info_flags_enum
,
loc
),
"UseCompileTimeType"
,
loc
),
loc
);
}
else
if
(
a
.
ArgType
==
Argument
.
AType
.
Out
)
{
info_flags
=
new
Binary
(
Binary
.
Operator
.
BitwiseOr
,
info_flags
,
new
MemberAccess
(
new
MemberAccess
(
binder
,
info_flags_enum
,
loc
),
"IsOut"
,
loc
),
loc
);
info_flags
=
new
Binary
(
Binary
.
Operator
.
BitwiseOr
,
info_flags
,
new
MemberAccess
(
new
MemberAccess
(
binder
,
info_flags_enum
,
loc
),
"UseCompileTimeType"
,
loc
),
loc
);
}
else
if
(
a
.
ArgType
==
Argument
.
AType
.
DynamicTypeName
)
{
info_flags
=
new
Binary
(
Binary
.
Operator
.
BitwiseOr
,
info_flags
,
new
MemberAccess
(
new
MemberAccess
(
binder
,
info_flags_enum
,
loc
),
"IsStaticType"
,
loc
),
loc
);
...
...
mcs/tests/dtest-003.cs
浏览文件 @
9a7ff171
...
...
@@ -1022,6 +1022,23 @@ class Tester : DynamicObjectMock
d
.
Max
<
dynamic
>
();
}
void
InvokeMember_8
(
dynamic
d
,
DynamicObjectMock
mock
)
{
mock
.
InvokeMemberOperation
=
(
binder
,
args
)
=>
{
Assert
(
binder
.
CallInfo
,
new
CallInfo
(
1
,
new
string
[
0
]),
"CallInfo"
);
AssertArgument
(
binder
,
new
[]
{
CSharpArgumentInfo
.
Create
(
CSharpArgumentInfoFlags
.
None
,
null
),
CSharpArgumentInfo
.
Create
(
CSharpArgumentInfoFlags
.
IsRef
|
CSharpArgumentInfoFlags
.
UseCompileTimeType
,
null
)
},
"ArgumentInfo"
);
Assert
(
binder
.
IgnoreCase
,
false
,
"IgnoreCase"
);
Assert
((
IList
<
object
>)
args
,
new
object
[]
{
9
},
"args"
);
};
dynamic
i
=
9
;
d
.
Max
(
ref
i
);
}
void
SetIndex_1
(
dynamic
d
,
DynamicObjectMock
mock
)
{
mock
.
SetIndexOperation
=
(
binder
,
args
,
value
)
=>
{
...
...
mcs/tests/dtest-034.cs
0 → 100644
浏览文件 @
9a7ff171
public
class
C
{
public
void
M
<
U
,
V
>
(
out
U
u
,
ref
V
v
)
{
u
=
default
(
U
);
}
}
public
class
Test
{
public
static
int
Main
()
{
dynamic
u
=
"s"
;
dynamic
v
=
5
;
dynamic
c
=
new
C
();
c
.
M
(
out
u
,
ref
v
);
if
(
v
!=
5
)
return
1
;
if
(
u
!=
null
)
return
2
;
return
0
;
}
}
mcs/tests/ver-il-dmcs.xml
浏览文件 @
9a7ff171
...
...
@@ -574,15 +574,6 @@
<method name="Void <InvokeMember_7>m__39(System.Dynamic.InvokeMemberBinder, System.Object[])">
<size>90</size>
</method>
<method name="Void <SetIndex_1>m__3A(System.Dynamic.SetIndexBinder, System.Object[], System.Object)">
<size>124</size>
</method>
<method name="Void <SetIndex_2>m__3B(System.Dynamic.SetIndexBinder, System.Object[], System.Object)">
<size>139</size>
</method>
<method name="Void <SetMember_1>m__3D(System.Dynamic.SetMemberBinder, System.Object)">
<size>101</size>
</method>
</type>
<type name="Tester+<InvokeMember_2>c__AnonStorey3">
<method name="Void <>m__35(System.Dynamic.InvokeMemberBinder, System.Object[])">
...
...
@@ -594,11 +585,6 @@
<size>119</size>
</method>
</type>
<type name="Tester+<SetIndex_3>c__AnonStorey5">
<method name="Void <>m__3C(System.Dynamic.SetIndexBinder, System.Object[], System.Object)">
<size>119</size>
</method>
</type>
<type name="Tester+<InvokeMember_3>c__DynamicSite30+Container0">
<method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)">
<size>0</size>
...
...
@@ -622,83 +608,115 @@
<method name="System.Object <GetMember_1>m__2D(System.Dynamic.GetMemberBinder)">
<size>67</size>
</method>
<method name="Void <SetMember_2>m__3F(System.Dynamic.BinaryOperationBinder, System.Object)">
</type>
<type name="Tester+<SetMember_2>c__AnonStorey6">
<method name="Void .ctor()">
<size>7</size>
</method>
</type>
<type name="Tester">
<method name="Void InvokeMember_8(System.Object, DynamicObjectMock)">
<size>140</size>
</method>
<method name="Void <InvokeMember_8>m__3A(System.Dynamic.InvokeMemberBinder, System.Object[])">
<size>111</size>
</method>
<method name="Void <SetIndex_1>m__3B(System.Dynamic.SetIndexBinder, System.Object[], System.Object)">
<size>124</size>
</method>
<method name="Void <SetIndex_2>m__3C(System.Dynamic.SetIndexBinder, System.Object[], System.Object)">
<size>139</size>
</method>
<method name="Void <SetMember_1>m__3E(System.Dynamic.SetMemberBinder, System.Object)">
<size>101</size>
</method>
<method name="Void <SetMember_2>m__40(System.Dynamic.BinaryOperationBinder, System.Object)">
<size>68</size>
</method>
<method name="Void <SetMember_2>m__4
0
(System.Dynamic.SetMemberBinder, System.Object)">
<method name="Void <SetMember_2>m__4
1
(System.Dynamic.SetMemberBinder, System.Object)">
<size>76</size>
</method>
<method name="System.Object <UnaryPlus_1>m__4
1
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryPlus_1>m__4
2
(System.Dynamic.UnaryOperationBinder)">
<size>47</size>
</method>
<method name="System.Object <UnaryMinus_1>m__4
2
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryMinus_1>m__4
3
(System.Dynamic.UnaryOperationBinder)">
<size>47</size>
</method>
<method name="System.Object <UnaryNot_1>m__4
3
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryNot_1>m__4
4
(System.Dynamic.UnaryOperationBinder)">
<size>47</size>
</method>
<method name="System.Object <UnaryOnesComplement_1>m__4
4
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryOnesComplement_1>m__4
5
(System.Dynamic.UnaryOperationBinder)">
<size>47</size>
</method>
<method name="System.Object <UnaryDecrement_1>m__4
5
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryDecrement_1>m__4
6
(System.Dynamic.UnaryOperationBinder)">
<size>47</size>
</method>
<method name="System.Object <UnaryDecrement_2>m__4
6
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryDecrement_2>m__4
7
(System.Dynamic.UnaryOperationBinder)">
<size>51</size>
</method>
<method name="System.Object <UnaryIncrement_1>m__4
7
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryIncrement_1>m__4
8
(System.Dynamic.UnaryOperationBinder)">
<size>47</size>
</method>
<method name="System.Object <UnaryIncrement_2>m__4
8
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryIncrement_2>m__4
9
(System.Dynamic.UnaryOperationBinder)">
<size>51</size>
</method>
<method name="System.Object <UnaryIsFalse_1>m__4
9
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryIsFalse_1>m__4
A
(System.Dynamic.UnaryOperationBinder)">
<size>52</size>
</method>
<method name="Void <UnaryIsFalse_1>m__4
A
(System.Dynamic.BinaryOperationBinder, System.Object)">
<method name="Void <UnaryIsFalse_1>m__4
B
(System.Dynamic.BinaryOperationBinder, System.Object)">
<size>68</size>
</method>
<method name="System.Object <UnaryIsFalse_2>m__4
B
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryIsFalse_2>m__4
C
(System.Dynamic.UnaryOperationBinder)">
<size>52</size>
</method>
<method name="Void <UnaryIsFalse_2>m__4
C
(System.Dynamic.BinaryOperationBinder, System.Object)">
<method name="Void <UnaryIsFalse_2>m__4
D
(System.Dynamic.BinaryOperationBinder, System.Object)">
<size>68</size>
</method>
<method name="System.Object <UnaryIsFalse_3>m__4
D
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryIsFalse_3>m__4
E
(System.Dynamic.UnaryOperationBinder)">
<size>52</size>
</method>
<method name="Void <UnaryIsFalse_3>m__4
E
(System.Dynamic.BinaryOperationBinder, System.Object)">
<method name="Void <UnaryIsFalse_3>m__4
F
(System.Dynamic.BinaryOperationBinder, System.Object)">
<size>67</size>
</method>
<method name="System.Object <UnaryIsTrue_1>m__
4F
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryIsTrue_1>m__
50
(System.Dynamic.UnaryOperationBinder)">
<size>52</size>
</method>
<method name="System.Object <UnaryIsTrue_2>m__5
0
(System.Dynamic.UnaryOperationBinder)">
<method name="System.Object <UnaryIsTrue_2>m__5
1
(System.Dynamic.UnaryOperationBinder)">
<size>52</size>
</method>
<method name="Void <UnaryIsTrue_2>m__5
1
(System.Dynamic.BinaryOperationBinder, System.Object)">
<method name="Void <UnaryIsTrue_2>m__5
2
(System.Dynamic.BinaryOperationBinder, System.Object)">
<size>68</size>
</method>
<method name="Boolean <Main>m__5
2
(System.Reflection.MethodInfo)">
<method name="Boolean <Main>m__5
3
(System.Reflection.MethodInfo)">
<size>12</size>
</method>
<method name="System.String <Main>m__5
3
(System.Reflection.MethodInfo)">
<method name="System.String <Main>m__5
4
(System.Reflection.MethodInfo)">
<size>7</size>
</method>
<method name="Boolean <Main>m__5
4
(System.Reflection.MethodInfo)">
<method name="Boolean <Main>m__5
5
(System.Reflection.MethodInfo)">
<size>7</size>
</method>
<method name="Boolean <Main>m__5
5
(Boolean)">
<method name="Boolean <Main>m__5
6
(Boolean)">
<size>5</size>
</method>
</type>
<type name="Tester+<InvokeMember_8>c__DynamicSite35+Container0">
<method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef)">
<size>0</size>
</method>
<method name="Void .ctor(Object, IntPtr)">
<size>0</size>
</method>
</type>
<type name="Tester+<SetIndex_3>c__AnonStorey5">
<method name="Void <>m__3D(System.Dynamic.SetIndexBinder, System.Object[], System.Object)">
<size>119</size>
</method>
</type>
<type name="Tester+<SetMember_2>c__AnonStorey6">
<method name="System.Object <>m__3
E
(System.Dynamic.GetMemberBinder)">
<method name="System.Object <>m__3
F
(System.Dynamic.GetMemberBinder)">
<size>72</size>
</method>
<method name="Void .ctor()">
<size>7</size>
</method>
</type>
</test>
<test name="dtest-004.cs">
...
...
@@ -2199,6 +2217,32 @@
</method>
</type>
</test>
<test name="dtest-034.cs">
<type name="C">
<method name="Void M[U,V](U ByRef, V ByRef)">
<size>16</size>
</method>
<method name="Void .ctor()">
<size>7</size>
</method>
</type>
<type name="Test">
<method name="Int32 Main()">
<size>464</size>
</method>
<method name="Void .ctor()">
<size>7</size>
</method>
</type>
<type name="Test+<Main>c__DynamicSite0+Container0">
<method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef, System.Object ByRef)">
<size>0</size>
</method>
<method name="Void .ctor(Object, IntPtr)">
<size>0</size>
</method>
</type>
</test>
<test name="dtest-collectioninit-01.cs">
<type name="Test">
<method name="Int32 Main()">
...
...
@@ -6724,6 +6768,16 @@
</method>
</type>
</test>
<test name="gtest-165.cs">
<type name="C">
<method name="Int32 Main()">
<size>27</size>
</method>
<method name="Void .ctor()">
<size>7</size>
</method>
</type>
</test>
<test name="gtest-166.cs">
<type name="C">
<method name="Void .ctor()">
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录