Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
04ca6dcd
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
04ca6dcd
编写于
9月 25, 2013
作者:
H
Huon Wilson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
std: Replace CloneableTuple with Tuple, which takes self by-val.
The old behaviour of `foo.n0()` is replaced by `foo.n0_ref().clone()`.
上级
6ed338ca
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
104 addition
and
102 deletion
+104
-102
src/libstd/prelude.rs
src/libstd/prelude.rs
+4
-4
src/libstd/tuple.rs
src/libstd/tuple.rs
+100
-98
未找到文件。
src/libstd/prelude.rs
浏览文件 @
04ca6dcd
...
...
@@ -72,10 +72,10 @@
pub
use
to_bytes
::
IterBytes
;
pub
use
to_str
::{
ToStr
,
ToStrConsume
};
pub
use
tuple
::{
CopyableTuple
,
ImmutableTuple
};
pub
use
tuple
::{
Cloneable
Tuple1
,
ImmutableTuple1
};
pub
use
tuple
::{
CloneableTuple2
,
CloneableTuple3
,
CloneableTuple4
,
Cloneable
Tuple5
};
pub
use
tuple
::{
CloneableTuple6
,
CloneableTuple7
,
CloneableTuple8
,
Cloneable
Tuple9
};
pub
use
tuple
::{
CloneableTuple10
,
CloneableTuple11
,
Cloneable
Tuple12
};
pub
use
tuple
::{
Tuple1
,
ImmutableTuple1
};
pub
use
tuple
::{
Tuple2
,
Tuple3
,
Tuple4
,
Tuple5
};
pub
use
tuple
::{
Tuple6
,
Tuple7
,
Tuple8
,
Tuple9
};
pub
use
tuple
::{
Tuple10
,
Tuple11
,
Tuple12
};
pub
use
tuple
::{
ImmutableTuple2
,
ImmutableTuple3
,
ImmutableTuple4
,
ImmutableTuple5
};
pub
use
tuple
::{
ImmutableTuple6
,
ImmutableTuple7
,
ImmutableTuple8
,
ImmutableTuple9
};
pub
use
tuple
::{
ImmutableTuple10
,
ImmutableTuple11
,
ImmutableTuple12
};
...
...
src/libstd/tuple.rs
浏览文件 @
04ca6dcd
...
...
@@ -80,9 +80,9 @@ fn second_ref<'a>(&'a self) -> &'a U {
macro_rules!
tuple_impls
{
(
$
(
(
$
cloneabl
e_trait:ident
,
$immutable_trait:ident
)
{
(
$
mov
e_trait:ident
,
$immutable_trait:ident
)
{
$
((
$get_fn:ident
,
$get_ref_fn:ident
)
->
$T:ident
{
$
get
_pattern:pat
=>
$ret:expr
$
move_pattern:pat
,
$ref
_pattern:pat
=>
$ret:expr
})
+
}
)
+
)
=>
{
...
...
@@ -93,15 +93,16 @@ pub mod inner {
#[cfg(not(test))]
use
num
::
Zero
;
$
(
pub
trait
$
cloneabl
e_trait
<
$
(
$T
),
+>
{
$
(
fn
$get_fn
(
&
self
)
->
$T
;)
+
pub
trait
$
mov
e_trait
<
$
(
$T
),
+>
{
$
(
fn
$get_fn
(
self
)
->
$T
;)
+
}
impl
<
$
(
$T
:Clone
),
+>
$cloneabl
e_trait
<
$
(
$T
),
+>
for
(
$
(
$T
,)
+
)
{
impl
<
$
(
$T
),
+>
$mov
e_trait
<
$
(
$T
),
+>
for
(
$
(
$T
,)
+
)
{
$
(
#[inline]
fn
$get_fn
(
&
self
)
->
$T
{
self
.
$get_ref_fn
()
.clone
()
fn
$get_fn
(
self
)
->
$T
{
let
$move_pattern
=
self
;
$ret
}
)
+
}
...
...
@@ -114,7 +115,8 @@ impl<$($T),+> $immutable_trait<$($T),+> for ($($T,)+) {
$
(
#[inline]
fn
$get_ref_fn
<
'a
>
(
&
'a
self
)
->
&
'a
$T
{
match
*
self
{
$get_pattern
=>
$ret
}
let
$ref_pattern
=
*
self
;
$ret
}
)
+
}
...
...
@@ -221,118 +223,118 @@ fn is_zero(&self) -> bool {
tuple_impls!
{
(
Cloneable
Tuple1
,
ImmutableTuple1
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,)
=>
a
}
(
Tuple1
,
ImmutableTuple1
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,),
(
ref
a
,)
=>
a
}
}
(
Cloneable
Tuple2
,
ImmutableTuple2
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
)
=>
b
}
(
Tuple2
,
ImmutableTuple2
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
),
(
ref
a
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
),
(
_
,
ref
b
)
=>
b
}
}
(
Cloneable
Tuple3
,
ImmutableTuple3
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
)
=>
c
}
(
Tuple3
,
ImmutableTuple3
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
),
(
ref
a
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
),
(
_
,
ref
b
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
),
(
_
,
_
,
ref
c
)
=>
c
}
}
(
Cloneable
Tuple4
,
ImmutableTuple4
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
)
=>
d
}
(
Tuple4
,
ImmutableTuple4
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
),
(
_
,
_
,
ref
c
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
),
(
_
,
_
,
_
,
ref
d
)
=>
d
}
}
(
Cloneable
Tuple5
,
ImmutableTuple5
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
)
=>
e
}
(
Tuple5
,
ImmutableTuple5
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
),
(
_
,
_
,
_
,
_
,
ref
e
)
=>
e
}
}
(
Cloneable
Tuple6
,
ImmutableTuple6
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
ref
f
)
=>
f
}
(
Tuple6
,
ImmutableTuple6
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
,
_
),
(
_
,
_
,
_
,
_
,
ref
e
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
f
),
(
_
,
_
,
_
,
_
,
_
,
ref
f
)
=>
f
}
}
(
Cloneable
Tuple7
,
ImmutableTuple7
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
)
=>
g
}
(
Tuple7
,
ImmutableTuple7
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
,
_
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
,
_
,
_
),
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
f
,
_
),
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
g
),
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
)
=>
g
}
}
(
Cloneable
Tuple8
,
ImmutableTuple8
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
)
=>
h
}
(
Tuple8
,
ImmutableTuple8
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
f
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
g
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
h
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
)
=>
h
}
}
(
Cloneable
Tuple9
,
ImmutableTuple9
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
)
=>
i
}
(
Tuple9
,
ImmutableTuple9
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
f
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
g
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
h
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
i
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
)
=>
i
}
}
(
Cloneable
Tuple10
,
ImmutableTuple10
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
,
_
)
=>
i
}
(
n9
,
n9_ref
)
->
J
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
j
)
=>
j
}
(
Tuple10
,
ImmutableTuple10
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
f
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
g
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
h
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
i
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
,
_
)
=>
i
}
(
n9
,
n9_ref
)
->
J
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
j
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
j
)
=>
j
}
}
(
Cloneable
Tuple11
,
ImmutableTuple11
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
,
_
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
,
_
,
_
)
=>
i
}
(
n9
,
n9_ref
)
->
J
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
j
,
_
)
=>
j
}
(
n10
,
n10_ref
)
->
K
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
k
)
=>
k
}
(
Tuple11
,
ImmutableTuple11
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
f
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
g
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
h
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
,
_
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
i
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
,
_
,
_
)
=>
i
}
(
n9
,
n9_ref
)
->
J
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
j
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
j
,
_
)
=>
j
}
(
n10
,
n10_ref
)
->
K
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
k
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
k
)
=>
k
}
}
(
Cloneable
Tuple12
,
ImmutableTuple12
)
{
(
n0
,
n0_ref
)
->
A
{
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
,
_
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
,
_
,
_
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
,
_
,
_
,
_
)
=>
i
}
(
n9
,
n9_ref
)
->
J
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
j
,
_
,
_
)
=>
j
}
(
n10
,
n10_ref
)
->
K
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
k
,
_
)
=>
k
}
(
n11
,
n11_ref
)
->
L
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
l
)
=>
l
}
(
Tuple12
,
ImmutableTuple12
)
{
(
n0
,
n0_ref
)
->
A
{
(
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
ref
a
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
a
}
(
n1
,
n1_ref
)
->
B
{
(
_
,
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
ref
b
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
b
}
(
n2
,
n2_ref
)
->
C
{
(
_
,
_
,
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
ref
c
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
c
}
(
n3
,
n3_ref
)
->
D
{
(
_
,
_
,
_
,
d
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
ref
d
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
d
}
(
n4
,
n4_ref
)
->
E
{
(
_
,
_
,
_
,
_
,
e
,
_
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
ref
e
,
_
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
e
}
(
n5
,
n5_ref
)
->
F
{
(
_
,
_
,
_
,
_
,
_
,
f
,
_
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
ref
f
,
_
,
_
,
_
,
_
,
_
,
_
)
=>
f
}
(
n6
,
n6_ref
)
->
G
{
(
_
,
_
,
_
,
_
,
_
,
_
,
g
,
_
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
ref
g
,
_
,
_
,
_
,
_
,
_
)
=>
g
}
(
n7
,
n7_ref
)
->
H
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
h
,
_
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
h
,
_
,
_
,
_
,
_
)
=>
h
}
(
n8
,
n8_ref
)
->
I
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
i
,
_
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
i
,
_
,
_
,
_
)
=>
i
}
(
n9
,
n9_ref
)
->
J
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
j
,
_
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
j
,
_
,
_
)
=>
j
}
(
n10
,
n10_ref
)
->
K
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
k
,
_
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
k
,
_
)
=>
k
}
(
n11
,
n11_ref
)
->
L
{
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
l
),
(
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
_
,
ref
l
)
=>
l
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录