Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
1c0c2af3
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
1c0c2af3
编写于
1月 12, 2017
作者:
N
Niko Matsakis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
merge TypeckItemBody and Tables depnodes
上级
01195df2
变更
31
隐藏空白更改
内联
并排
Showing
31 changed file
with
113 addition
and
114 deletion
+113
-114
src/librustc/dep_graph/README.md
src/librustc/dep_graph/README.md
+15
-13
src/librustc/dep_graph/dep_node.rs
src/librustc/dep_graph/dep_node.rs
+0
-3
src/librustc_incremental/persist/dirty_clean.rs
src/librustc_incremental/persist/dirty_clean.rs
+3
-3
src/librustc_incremental/persist/preds.rs
src/librustc_incremental/persist/preds.rs
+1
-1
src/librustc_typeck/check/mod.rs
src/librustc_typeck/check/mod.rs
+2
-2
src/test/compile-fail/dep-graph-assoc-type-trans.rs
src/test/compile-fail/dep-graph-assoc-type-trans.rs
+1
-1
src/test/compile-fail/dep-graph-caller-callee.rs
src/test/compile-fail/dep-graph-caller-callee.rs
+2
-2
src/test/compile-fail/dep-graph-trait-impl-two-traits-same-method.rs
...mpile-fail/dep-graph-trait-impl-two-traits-same-method.rs
+2
-2
src/test/compile-fail/dep-graph-trait-impl-two-traits.rs
src/test/compile-fail/dep-graph-trait-impl-two-traits.rs
+2
-2
src/test/compile-fail/dep-graph-trait-impl.rs
src/test/compile-fail/dep-graph-trait-impl.rs
+5
-5
src/test/incremental/add_private_fn_at_krate_root_cc/struct_point.rs
...cremental/add_private_fn_at_krate_root_cc/struct_point.rs
+5
-5
src/test/incremental/callee_caller_cross_crate/b.rs
src/test/incremental/callee_caller_cross_crate/b.rs
+2
-2
src/test/incremental/change_add_field/struct_point.rs
src/test/incremental/change_add_field/struct_point.rs
+7
-7
src/test/incremental/change_crate_order/main.rs
src/test/incremental/change_crate_order/main.rs
+1
-1
src/test/incremental/change_private_fn/struct_point.rs
src/test/incremental/change_private_fn/struct_point.rs
+5
-5
src/test/incremental/change_private_fn_cc/struct_point.rs
src/test/incremental/change_private_fn_cc/struct_point.rs
+5
-5
src/test/incremental/change_private_impl_method/struct_point.rs
...st/incremental/change_private_impl_method/struct_point.rs
+5
-5
src/test/incremental/change_private_impl_method_cc/struct_point.rs
...incremental/change_private_impl_method_cc/struct_point.rs
+5
-5
src/test/incremental/change_pub_inherent_method_body/struct_point.rs
...cremental/change_pub_inherent_method_body/struct_point.rs
+5
-5
src/test/incremental/change_pub_inherent_method_sig/struct_point.rs
...ncremental/change_pub_inherent_method_sig/struct_point.rs
+5
-5
src/test/incremental/dirty_clean.rs
src/test/incremental/dirty_clean.rs
+4
-4
src/test/incremental/hello_world.rs
src/test/incremental/hello_world.rs
+2
-2
src/test/incremental/rlib_cross_crate/b.rs
src/test/incremental/rlib_cross_crate/b.rs
+4
-4
src/test/incremental/string_constant.rs
src/test/incremental/string_constant.rs
+3
-3
src/test/incremental/struct_add_field.rs
src/test/incremental/struct_add_field.rs
+3
-3
src/test/incremental/struct_change_field_name.rs
src/test/incremental/struct_change_field_name.rs
+3
-3
src/test/incremental/struct_change_field_type.rs
src/test/incremental/struct_change_field_type.rs
+3
-3
src/test/incremental/struct_change_field_type_cross_crate/b.rs
...est/incremental/struct_change_field_type_cross_crate/b.rs
+3
-3
src/test/incremental/struct_change_nothing.rs
src/test/incremental/struct_change_nothing.rs
+3
-3
src/test/incremental/struct_remove_field.rs
src/test/incremental/struct_remove_field.rs
+3
-3
src/test/incremental/type_alias_cross_crate/b.rs
src/test/incremental/type_alias_cross_crate/b.rs
+4
-4
未找到文件。
src/librustc/dep_graph/README.md
浏览文件 @
1c0c2af3
...
...
@@ -326,15 +326,15 @@ The idea is that you can annotate a test like:
#[rustc_if_this_changed]
fn
foo
()
{
}
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
fn
bar
()
{
foo
();
}
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR no path
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR no path
fn
baz
()
{
}
```
This will check whether there is a path in the dependency graph from
`Hir(foo)`
to
`T
ypeckItemBody
(bar)`
. An error is reported for each
`Hir(foo)`
to
`T
ables
(bar)`
. An error is reported for each
`#[rustc_then_this_would_need]`
annotation that indicates whether a
path exists.
`//~ ERROR`
annotations can then be used to test if a
path is found (as demonstrated above).
...
...
@@ -371,27 +371,27 @@ A node is considered to match a filter if all of those strings appear in its
label. So, for example:
```
RUST_DEP_GRAPH_FILTER='-> T
ypeckItemBody
'
RUST_DEP_GRAPH_FILTER='-> T
ables
'
```
would select the predecessors of all
`T
ypeckItemBody
`
nodes. Usually though you
want the
`T
ypeckItemBody
`
node for some particular fn, so you might write:
would select the predecessors of all
`T
ables
`
nodes. Usually though you
want the
`T
ables
`
node for some particular fn, so you might write:
```
RUST_DEP_GRAPH_FILTER='-> T
ypeckItemBody
& bar'
RUST_DEP_GRAPH_FILTER='-> T
ables
& bar'
```
This will select only the
`T
ypeckItemBody
`
nodes for fns with
`bar`
in their name.
This will select only the
`T
ables
`
nodes for fns with
`bar`
in their name.
Perhaps you are finding that when you change
`foo`
you need to re-type-check
`bar`
,
but you don't think you should have to. In that case, you might do:
```
RUST_DEP_GRAPH_FILTER='Hir&foo -> T
ypeckItemBody
& bar'
RUST_DEP_GRAPH_FILTER='Hir&foo -> T
ables
& bar'
```
This will dump out all the nodes that lead from
`Hir(foo)`
to
`T
ypeckItemBody
(bar)`
, from which you can (hopefully) see the source
`T
ables
(bar)`
, from which you can (hopefully) see the source
of the erroneous edge.
#### Tracking down incorrect edges
...
...
@@ -417,8 +417,8 @@ dep-graph as described in the previous section and open `dep-graph.txt`
to see something like:
Hir(foo) -> Collect(bar)
Collect(bar) -> T
ypeckItemBody
(bar)
Collect(bar) -> T
ables
(bar)
That first edge looks suspicious to you. So you set
`RUST_FORBID_DEP_GRAPH_EDGE`
to
`Hir&foo -> Collect&bar`
, re-run, and
then observe the backtrace. Voila, bug fixed!
...
...
@@ -440,4 +440,6 @@ To achieve this, the HIR map will detect if the def-id originates in
an inlined node and add a dependency to a suitable
`MetaData`
node
instead. If you are reading a HIR node and are not sure if it may be
inlined or not, you can use
`tcx.map.read(node_id)`
and it will detect
whether the node is inlined or not and do the right thing.
whether the node is inlined or not and do the right thing. You can
also use
`tcx.map.is_inlined_def_id()`
and
`tcx.map.is_inlined_node_id()`
to test.
src/librustc/dep_graph/dep_node.rs
浏览文件 @
1c0c2af3
...
...
@@ -78,7 +78,6 @@ pub enum DepNode<D: Clone + Debug> {
Variance
,
WfCheck
(
D
),
TypeckItemType
(
D
),
TypeckItemBody
(
D
),
Dropck
,
DropckImpl
(
D
),
UnusedTraitCheck
,
...
...
@@ -158,7 +157,6 @@ pub fn from_label_string(label: &str, data: D) -> Result<DepNode<D>, ()> {
HirBody
,
TransCrateItem
,
TypeckItemType
,
TypeckItemBody
,
AssociatedItems
,
ItemSignature
,
AssociatedItemDefIds
,
...
...
@@ -216,7 +214,6 @@ pub fn map_def<E, OP>(&self, mut op: OP) -> Option<DepNode<E>>
CoherenceOrphanCheck
(
ref
d
)
=>
op
(
d
)
.map
(
CoherenceOrphanCheck
),
WfCheck
(
ref
d
)
=>
op
(
d
)
.map
(
WfCheck
),
TypeckItemType
(
ref
d
)
=>
op
(
d
)
.map
(
TypeckItemType
),
TypeckItemBody
(
ref
d
)
=>
op
(
d
)
.map
(
TypeckItemBody
),
DropckImpl
(
ref
d
)
=>
op
(
d
)
.map
(
DropckImpl
),
CheckConst
(
ref
d
)
=>
op
(
d
)
.map
(
CheckConst
),
IntrinsicCheck
(
ref
d
)
=>
op
(
d
)
.map
(
IntrinsicCheck
),
...
...
src/librustc_incremental/persist/dirty_clean.rs
浏览文件 @
1c0c2af3
...
...
@@ -14,11 +14,11 @@
//! we will check that a suitable node for that item either appears
//! or does not appear in the dep-graph, as appropriate:
//!
//! - `#[rustc_dirty(label="T
ypeckItemBody
", cfg="rev2")]` if we are
//! - `#[rustc_dirty(label="T
ables
", cfg="rev2")]` if we are
//! in `#[cfg(rev2)]`, then there MUST NOT be a node
//! `DepNode::T
ypeckItemBody
(X)` where `X` is the def-id of the
//! `DepNode::T
ables
(X)` where `X` is the def-id of the
//! current node.
//! - `#[rustc_clean(label="T
ypeckItemBody
", cfg="rev2")]` same as above,
//! - `#[rustc_clean(label="T
ables
", cfg="rev2")]` same as above,
//! except that the node MUST exist.
//!
//! Errors are reported if we are in the suitable configuration but
...
...
src/librustc_incremental/persist/preds.rs
浏览文件 @
1c0c2af3
...
...
@@ -56,7 +56,7 @@ pub fn new(query: &'q DepGraphQuery<DefId>, hcx: &mut HashContext) -> Self {
// if -Z query-dep-graph is passed, save more extended data
// to enable better unit testing
DepNode
::
T
ypeckItemBody
(
_
)
|
DepNode
::
T
ables
(
_
)
|
DepNode
::
TransCrateItem
(
_
)
=>
tcx
.sess.opts.debugging_opts.query_dep_graph
,
_
=>
false
,
...
...
src/librustc_typeck/check/mod.rs
浏览文件 @
1c0c2af3
...
...
@@ -628,14 +628,14 @@ pub fn check_item_types(ccx: &CrateCtxt) -> CompileResult {
pub
fn
check_item_bodies
(
ccx
:
&
CrateCtxt
)
->
CompileResult
{
ccx
.tcx.sess
.track_errors
(||
{
let
mut
visit
=
CheckItemBodiesVisitor
{
ccx
:
ccx
};
ccx
.tcx
.visit_all_item_likes_in_krate
(
DepNode
::
T
ypeckItemBody
,
&
mut
visit
);
ccx
.tcx
.visit_all_item_likes_in_krate
(
DepNode
::
T
ables
,
&
mut
visit
);
// Process deferred obligations, now that all functions
// bodies have been fully inferred.
for
(
&
item_id
,
obligations
)
in
ccx
.deferred_obligations
.borrow
()
.iter
()
{
// Use the same DepNode as for the body of the original function/item.
let
def_id
=
ccx
.tcx.map
.local_def_id
(
item_id
);
let
_
task
=
ccx
.tcx.dep_graph
.in_task
(
DepNode
::
T
ypeckItemBody
(
def_id
));
let
_
task
=
ccx
.tcx.dep_graph
.in_task
(
DepNode
::
T
ables
(
def_id
));
let
param_env
=
ParameterEnvironment
::
for_item
(
ccx
.tcx
,
item_id
);
ccx
.tcx
.infer_ctxt
(
param_env
,
Reveal
::
NotSpecializable
)
.enter
(|
infcx
|
{
...
...
src/test/compile-fail/dep-graph-assoc-type-trans.rs
浏览文件 @
1c0c2af3
...
...
@@ -35,7 +35,7 @@ mod x {
mod
y
{
use
Foo
;
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR OK
pub
fn
use_char_assoc
()
{
// Careful here: in the representation, <char as Foo>::T gets
...
...
src/test/compile-fail/dep-graph-caller-callee.rs
浏览文件 @
1c0c2af3
...
...
@@ -27,7 +27,7 @@ mod y {
use
x
;
// These dependencies SHOULD exist:
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR OK
pub
fn
y
()
{
x
::
x
();
...
...
@@ -39,7 +39,7 @@ mod z {
// These are expected to yield errors, because changes to `x`
// affect the BODY of `y`, but not its signature.
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR no path
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR no path
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR no path
pub
fn
z
()
{
y
::
y
();
...
...
src/test/compile-fail/dep-graph-trait-impl-two-traits-same-method.rs
浏览文件 @
1c0c2af3
...
...
@@ -39,7 +39,7 @@ impl Bar for char { }
mod
y
{
use
{
Foo
,
Bar
};
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
pub
fn
with_char
()
{
char
::
method
(
'a'
);
}
...
...
@@ -48,7 +48,7 @@ pub fn with_char() {
mod
z
{
use
y
;
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR no path
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR no path
pub
fn
z
()
{
y
::
with_char
();
}
...
...
src/test/compile-fail/dep-graph-trait-impl-two-traits.rs
浏览文件 @
1c0c2af3
...
...
@@ -38,7 +38,7 @@ impl Bar for char { }
mod
y
{
use
{
Foo
,
Bar
};
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR no path
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR no path
pub
fn
call_bar
()
{
char
::
bar
(
'a'
);
}
...
...
@@ -47,7 +47,7 @@ pub fn call_bar() {
mod
z
{
use
y
;
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR no path
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR no path
pub
fn
z
()
{
y
::
call_bar
();
}
...
...
src/test/compile-fail/dep-graph-trait-impl.rs
浏览文件 @
1c0c2af3
...
...
@@ -34,25 +34,25 @@ impl Foo for u32 { }
mod
y
{
use
Foo
;
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR OK
pub
fn
with_char
()
{
char
::
method
(
'a'
);
}
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR OK
pub
fn
take_foo_with_char
()
{
take_foo
::
<
char
>
(
'a'
);
}
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR OK
pub
fn
with_u32
()
{
u32
::
method
(
22
);
}
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR OK
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR OK
pub
fn
take_foo_with_u32
()
{
take_foo
::
<
u32
>
(
22
);
...
...
@@ -66,7 +66,7 @@ mod z {
// These are expected to yield errors, because changes to `x`
// affect the BODY of `y`, but not its signature.
#[rustc_then_this_would_need(T
ypeckItemBody
)]
//~ ERROR no path
#[rustc_then_this_would_need(T
ables
)]
//~ ERROR no path
#[rustc_then_this_would_need(TransCrateItem)]
//~ ERROR no path
pub
fn
z
()
{
y
::
with_char
();
...
...
src/test/incremental/add_private_fn_at_krate_root_cc/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -32,7 +32,7 @@
mod
fn_calls_methods_in_same_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.distance_from_origin
();
...
...
@@ -43,7 +43,7 @@ pub fn check() {
mod
fn_calls_free_fn
{
use
point
::{
self
,
Point
};
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
point
::
distance_squared
(
&
x
);
...
...
@@ -54,7 +54,7 @@ pub fn check() {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
()
->
Point
{
Point
{
x
:
2.0
,
y
:
2.0
}
}
...
...
@@ -64,7 +64,7 @@ pub fn make_origin() -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -74,7 +74,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/callee_caller_cross_crate/b.rs
浏览文件 @
1c0c2af3
...
...
@@ -16,12 +16,12 @@
extern
crate
a
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
call_function0
()
{
a
::
function0
(
77
);
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
call_function1
()
{
a
::
function1
(
77
);
}
...
...
src/test/incremental/change_add_field/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -79,7 +79,7 @@ pub fn x(&self) -> f32 {
mod
fn_with_type_in_sig
{
use
point
::
Point
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
boop
(
p
:
Option
<&
Point
>
)
->
f32
{
p
.map
(|
p
|
p
.total
())
.unwrap_or
(
0.0
)
}
...
...
@@ -95,7 +95,7 @@ pub fn boop(p: Option<&Point>) -> f32 {
mod
call_fn_with_type_in_sig
{
use
fn_with_type_in_sig
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
bip
()
->
f32
{
fn_with_type_in_sig
::
boop
(
None
)
}
...
...
@@ -111,7 +111,7 @@ pub fn bip() -> f32 {
mod
fn_with_type_in_body
{
use
point
::
Point
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
boop
()
->
f32
{
Point
::
origin
()
.total
()
}
...
...
@@ -124,7 +124,7 @@ pub fn boop() -> f32 {
mod
call_fn_with_type_in_body
{
use
fn_with_type_in_body
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
bip
()
->
f32
{
fn_with_type_in_body
::
boop
()
}
...
...
@@ -134,7 +134,7 @@ pub fn bip() -> f32 {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
(
p
:
Point
)
->
Point
{
Point
{
..
p
}
}
...
...
@@ -144,7 +144,7 @@ pub fn make_origin(p: Point) -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -154,7 +154,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/change_crate_order/main.rs
浏览文件 @
1c0c2af3
...
...
@@ -28,7 +28,7 @@
use
a
::
A
;
use
b
::
B
;
//? #[rustc_clean(label="T
ypeckItemBody
", cfg="rpass2")]
//? #[rustc_clean(label="T
ables
", cfg="rpass2")]
pub
fn
main
()
{
A
+
B
;
}
src/test/incremental/change_private_fn/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -59,7 +59,7 @@ pub fn translate(&mut self, x: f32, y: f32) {
mod
fn_calls_methods_in_same_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.distance_from_origin
();
...
...
@@ -70,7 +70,7 @@ pub fn check() {
mod
fn_calls_methods_in_another_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
mut
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.translate
(
3.0
,
3.0
);
...
...
@@ -81,7 +81,7 @@ pub fn check() {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
()
->
Point
{
Point
{
x
:
2.0
,
y
:
2.0
}
}
...
...
@@ -91,7 +91,7 @@ pub fn make_origin() -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -101,7 +101,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/change_private_fn_cc/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -31,7 +31,7 @@
mod
fn_calls_methods_in_same_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.distance_from_origin
();
...
...
@@ -42,7 +42,7 @@ pub fn check() {
mod
fn_calls_methods_in_another_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
mut
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.translate
(
3.0
,
3.0
);
...
...
@@ -53,7 +53,7 @@ pub fn check() {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
()
->
Point
{
Point
{
x
:
2.0
,
y
:
2.0
}
}
...
...
@@ -63,7 +63,7 @@ pub fn make_origin() -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -73,7 +73,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/change_private_impl_method/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -59,7 +59,7 @@ pub fn translate(&mut self, x: f32, y: f32) {
mod
fn_calls_methods_in_same_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.distance_from_origin
();
...
...
@@ -70,7 +70,7 @@ pub fn check() {
mod
fn_calls_methods_in_another_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
mut
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.translate
(
3.0
,
3.0
);
...
...
@@ -81,7 +81,7 @@ pub fn check() {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
()
->
Point
{
Point
{
x
:
2.0
,
y
:
2.0
}
}
...
...
@@ -91,7 +91,7 @@ pub fn make_origin() -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -101,7 +101,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/change_private_impl_method_cc/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -32,7 +32,7 @@
mod
fn_calls_methods_in_same_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.distance_from_origin
();
...
...
@@ -43,7 +43,7 @@ pub fn check() {
mod
fn_calls_methods_in_another_impl
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
dirty
()
{
let
mut
x
=
Point
{
x
:
2.0
,
y
:
2.0
};
x
.translate
(
3.0
,
3.0
);
...
...
@@ -54,7 +54,7 @@ pub fn dirty() {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
()
->
Point
{
Point
{
x
:
2.0
,
y
:
2.0
}
}
...
...
@@ -64,7 +64,7 @@ pub fn make_origin() -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -74,7 +74,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/change_pub_inherent_method_body/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -50,7 +50,7 @@ pub fn x(&self) -> f32 {
mod
fn_calls_changed_method
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
p
=
Point
{
x
:
2.0
,
y
:
2.0
};
p
.distance_from_origin
();
...
...
@@ -61,7 +61,7 @@ pub fn check() {
mod
fn_calls_another_method
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
p
=
Point
{
x
:
2.0
,
y
:
2.0
};
p
.x
();
...
...
@@ -72,7 +72,7 @@ pub fn check() {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
()
->
Point
{
Point
{
x
:
2.0
,
y
:
2.0
}
}
...
...
@@ -82,7 +82,7 @@ pub fn make_origin() -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -92,7 +92,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/change_pub_inherent_method_sig/struct_point.rs
浏览文件 @
1c0c2af3
...
...
@@ -61,7 +61,7 @@ pub fn x(&self) -> f32 {
mod
fn_calls_changed_method
{
use
point
::
Point
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
p
=
Point
{
x
:
2.0
,
y
:
2.0
};
p
.distance_from_point
(
None
);
...
...
@@ -72,7 +72,7 @@ pub fn check() {
mod
fn_calls_another_method
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
check
()
{
let
p
=
Point
{
x
:
2.0
,
y
:
2.0
};
p
.x
();
...
...
@@ -83,7 +83,7 @@ pub fn check() {
mod
fn_make_struct
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
make_origin
()
->
Point
{
Point
{
x
:
2.0
,
y
:
2.0
}
}
...
...
@@ -93,7 +93,7 @@ pub fn make_origin() -> Point {
mod
fn_read_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
get_x
(
p
:
Point
)
->
f32
{
p
.x
}
...
...
@@ -103,7 +103,7 @@ pub fn get_x(p: Point) -> f32 {
mod
fn_write_field
{
use
point
::
Point
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
inc_x
(
p
:
&
mut
Point
)
{
p
.x
+=
1.0
;
}
...
...
src/test/incremental/dirty_clean.rs
浏览文件 @
1c0c2af3
...
...
@@ -35,20 +35,20 @@ pub fn x() -> u32 {
mod
y
{
use
x
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"cfail2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"cfail2"
)]
#[rustc_clean(label=
"TransCrateItem"
,
cfg=
"cfail2"
)]
pub
fn
y
()
{
//[cfail2]~^ ERROR `T
ypeckItemBody
("y::y")` not found in dep graph, but should be clean
//[cfail2]~^ ERROR `T
ables
("y::y")` not found in dep graph, but should be clean
//[cfail2]~| ERROR `TransCrateItem("y::y")` not found in dep graph, but should be clean
x
::
x
();
}
}
mod
z
{
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"cfail2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"cfail2"
)]
#[rustc_dirty(label=
"TransCrateItem"
,
cfg=
"cfail2"
)]
pub
fn
z
()
{
//[cfail2]~^ ERROR `T
ypeckItemBody
("z::z")` found in dep graph, but should be dirty
//[cfail2]~^ ERROR `T
ables
("z::z")` found in dep graph, but should be dirty
//[cfail2]~| ERROR `TransCrateItem("z::z")` found in dep graph, but should be dirty
}
}
src/test/incremental/hello_world.rs
浏览文件 @
1c0c2af3
...
...
@@ -31,7 +31,7 @@ pub fn xxxx() -> i32 {
mod
y
{
use
x
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
yyyy
()
{
x
::
xxxx
();
}
...
...
@@ -40,7 +40,7 @@ pub fn yyyy() {
mod
z
{
use
y
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
z
()
{
y
::
yyyy
();
}
...
...
src/test/incremental/rlib_cross_crate/b.rs
浏览文件 @
1c0c2af3
...
...
@@ -22,15 +22,15 @@
extern
crate
a
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass3"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass3"
)]
pub
fn
use_X
()
->
u32
{
let
x
:
a
::
X
=
22
;
x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass3"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass3"
)]
pub
fn
use_Y
()
{
let
x
:
a
::
Y
=
'c'
;
}
...
...
src/test/incremental/string_constant.rs
浏览文件 @
1c0c2af3
...
...
@@ -27,7 +27,7 @@ pub fn x() {
}
#[cfg(rpass2)]
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"TransCrateItem"
,
cfg=
"rpass2"
)]
pub
fn
x
()
{
println!
(
"{}"
,
"2"
);
...
...
@@ -37,7 +37,7 @@ pub fn x() {
mod
y
{
use
x
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"TransCrateItem"
,
cfg=
"rpass2"
)]
pub
fn
y
()
{
x
::
x
();
...
...
@@ -47,7 +47,7 @@ pub fn y() {
mod
z
{
use
y
;
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"TransCrateItem"
,
cfg=
"rpass2"
)]
pub
fn
z
()
{
y
::
y
();
...
...
src/test/incremental/struct_add_field.rs
浏览文件 @
1c0c2af3
...
...
@@ -31,17 +31,17 @@ pub struct Y {
pub
y
:
char
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_X
(
x
:
X
)
->
u32
{
x
.x
as
u32
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_EmbedX
(
embed
:
EmbedX
)
->
u32
{
embed
.x.x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_Y
()
{
let
x
:
Y
=
Y
{
y
:
'c'
};
}
...
...
src/test/incremental/struct_change_field_name.rs
浏览文件 @
1c0c2af3
...
...
@@ -34,7 +34,7 @@ pub struct Y {
pub
y
:
char
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"cfail2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"cfail2"
)]
pub
fn
use_X
()
->
u32
{
let
x
:
X
=
X
{
x
:
22
};
//[cfail2]~^ ERROR struct `X` has no field named `x`
...
...
@@ -42,13 +42,13 @@ pub fn use_X() -> u32 {
//[cfail2]~^ ERROR no field `x` on type `X`
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"cfail2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"cfail2"
)]
pub
fn
use_EmbedX
(
embed
:
EmbedX
)
->
u32
{
embed
.x.x
as
u32
//[cfail2]~^ ERROR no field `x` on type `X`
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"cfail2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"cfail2"
)]
pub
fn
use_Y
()
{
let
x
:
Y
=
Y
{
y
:
'c'
};
}
...
...
src/test/incremental/struct_change_field_type.rs
浏览文件 @
1c0c2af3
...
...
@@ -34,19 +34,19 @@ pub struct Y {
pub
y
:
char
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_X
()
->
u32
{
let
x
:
X
=
X
{
x
:
22
};
x
.x
as
u32
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_EmbedX
(
x
:
EmbedX
)
->
u32
{
let
x
:
X
=
X
{
x
:
22
};
x
.x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_Y
()
{
let
x
:
Y
=
Y
{
y
:
'c'
};
}
...
...
src/test/incremental/struct_change_field_type_cross_crate/b.rs
浏览文件 @
1c0c2af3
...
...
@@ -18,18 +18,18 @@
use
a
::
*
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_X
()
->
u32
{
let
x
:
X
=
X
{
x
:
22
};
x
.x
as
u32
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_EmbedX
(
embed
:
EmbedX
)
->
u32
{
embed
.x.x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_Y
()
{
let
x
:
Y
=
Y
{
y
:
'c'
};
}
...
...
src/test/incremental/struct_change_nothing.rs
浏览文件 @
1c0c2af3
...
...
@@ -34,19 +34,19 @@ pub struct Y {
pub
y
:
char
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_X
()
->
u32
{
let
x
:
X
=
X
{
x
:
22
};
x
.x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_EmbedX
(
x
:
EmbedX
)
->
u32
{
let
x
:
X
=
X
{
x
:
22
};
x
.x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_Y
()
{
let
x
:
Y
=
Y
{
y
:
'c'
};
}
...
...
src/test/incremental/struct_remove_field.rs
浏览文件 @
1c0c2af3
...
...
@@ -35,17 +35,17 @@ pub struct Y {
pub
y
:
char
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_X
(
x
:
X
)
->
u32
{
x
.x
as
u32
}
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_EmbedX
(
embed
:
EmbedX
)
->
u32
{
embed
.x.x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
pub
fn
use_Y
()
{
let
x
:
Y
=
Y
{
y
:
'c'
};
}
...
...
src/test/incremental/type_alias_cross_crate/b.rs
浏览文件 @
1c0c2af3
...
...
@@ -16,15 +16,15 @@
extern
crate
a
;
#[rustc_dirty(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass3"
)]
#[rustc_dirty(label=
"T
ables
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass3"
)]
pub
fn
use_X
()
->
u32
{
let
x
:
a
::
X
=
22
;
x
as
u32
}
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ypeckItemBody
"
,
cfg=
"rpass3"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass2"
)]
#[rustc_clean(label=
"T
ables
"
,
cfg=
"rpass3"
)]
pub
fn
use_Y
()
{
let
x
:
a
::
Y
=
'c'
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录